============================================== #opendaylight-group-policy: Usecase discussion ============================================== Meeting started by alagalah at 20:02:46 UTC. The full logs are available at http://meetings.opendaylight.org/opendaylight-group-policy/2014/usecase_discussion/opendaylight-group-policy-usecase_discussion.2014-07-21-20.02.log.html . Meeting summary --------------- * Traffic steering use cases (alagalah, 20:03:45) * dvorkin shares code showing the service chain of consumer and provider (alagalah, 20:08:27) * LINK: https://lists.opendaylight.org/pipermail/groupbasedpolicy-dev/2014-July/000367.html example of sketch of service chaining (tbachman, 20:09:52) * mickey_spiegel asks why we need to distinguish between provider connection and service connection (tbachman, 20:10:06) * dvorkinista says that there are some cases where there are more than a single input (tbachman, 20:10:21) * mickey_spiegel asks for an example of input (tbachman, 20:10:28) * dvorkinista says input is a consumer and output is a provider (tbachman, 20:10:36) * depending on the differen consumer, they can be processed differently (tbachman, 20:10:55) * consumer is the beginniing of the chain (tbachman, 20:11:04) * sanjay asks to see an example (tbachman, 20:11:56) * dvorkinista goes over example provided in the email (tbachman, 20:12:06) * the consumer-connector is basically a terminator (tbachman, 20:12:36) * the chain is expressed in terms of coming towards the provider (tbachman, 20:13:17) * mickey_spiegel asks if it’s bi-directional, why do you need a provider-connector? (tbachman, 20:14:06) * dvorkinista says the last stage of the chain is the one that’s facing the provider. (tbachman, 20:14:47) * the first stage of the chain faces the consumer and the last stage of the chain is the one facing the provider (tbachman, 20:16:25) * mickey_spiegel asks why we need two in statements at each hop to support this (tbachman, 20:16:38) * dvorkinista says these are needed for direct return (tbachman, 20:16:46) * mickey_spiegel asks how you can figure out direction (tbachman, 20:19:27) * dvorkinista says the only way you can figure out direction is through configuration of a logical function, which currently isn’t being done (tbachman, 20:19:57) * the chain itself as a function is bi-directional (tbachman, 20:21:24) * but within the chain, there is flexibility (tbachman, 20:21:32) * mickey_spiegel asks if we want to do more than forward and backward (tbachman, 20:21:46) * dvorkinista says you can have more if you want (tbachman, 20:21:55) * mickey_spiegel says that the way the direction works right now, it’s kind of confusing (tbachman, 20:23:16) * dvorkinista says that for this time around, we’re not talking about configuration (tbachman, 20:23:38) * mickey_spiegel asks what “in prov-side” means (tbachman, 20:24:26) * dvorkinista says he’s trying to keep it at a logical level. Think of it as a logical uni-directional construct (tbachman, 20:24:46) * clarification requested on line 71 (next cons-conn cons) (tbachman, 20:25:24) * dvorkinista says it can talk to the load balancer or talk to the consumer connector (tbachman, 20:25:40) * where the “cons” is just a name (tbachman, 20:25:59) * says that this is not configuring the firewall, but configuring the direction within the network (tbachman, 20:26:50) * it just says “go back to the consumer" (tbachman, 20:27:00) * dvorkinista re-emphasizes this is not configuration, but just plumbing (tbachman, 20:28:00) * mickey_spiegel says right now there are two next statements. How do we know which one to use (tbachman, 20:30:45) * dvorkinista says that’s just configuration of the function (tbachman, 20:31:04) * hemanth, sanjay, and mickey_spiegel all prefer “back” to use of next (tbachman, 20:31:58) * dvorkinista says you can use that if you prefer, as it makes no difference to the renderer (tbachman, 20:32:22) * mickey_spiegel asks if coupling of in and next the way to answer the question of which one to use? (tbachman, 20:33:33) * dvorkinista modifies to have two seperate cases, scoped by the side it came in on (tbachman, 20:34:33) * “in consumer-side => next cool-slb/cons-side" (tbachman, 20:34:47) * “in prov-side => next cons-conn cons" (tbachman, 20:34:59) * sanjay says that cases where there are multiple interfaces that it can go out on, you can have multiple next statements (tbachman, 20:35:44) * dvorkinista provides an l3 example (tbachman, 20:38:02) * mickey_spiegel asks how you can have multiple nexts on one interface (tbachman, 20:41:03) * dvorkinista says that each next is an interface (tbachman, 20:41:13) * mickey_spiegel says we need something as a handle — sometimes its interface, sometimes its next (tbachman, 20:46:17) * dvorkinista says he’s already identified two types of interfaces — input and output (tbachman, 20:46:31) * sanjay asks whether the next selection should be part of the intent (tbachman, 20:47:02) * dvorkinista says there is no way to express this here, b/c we’re not configuring the firewall itself. (tbachman, 20:47:50) * This language is just for specifying the plumbing (tbachman, 20:48:20) * mickey_spiegel says that when a packet comes out from the service, we need to express the next thing/function to use (tbachman, 20:48:50) * and that something has to come from the packet (tbachman, 20:49:00) * We're kind of trapped in details. What I get so far is the proposal is that the entire service chain be built so that it can be inserted betweeen EPGs like other contracts. We are arguing about how to build the service chain data structures, but should maybe first ask if this does a good job of solving the problem, as opposed to e.g. make the virtual (dlenrow, 20:49:08) * mickey_spiegel asks if we can use one abstraction for that. (tbachman, 20:49:10) * dvorkinista emphasizes we’re talking about the plumbing aspects of the service chain (tbachman, 20:50:40) * and next we’d talk about the configuration (tbachman, 20:50:47) * this discussion is focused on just the plumbing (tbachman, 20:50:55) * seems like this is not abstract enough. Surely theres a high level concept of a chain that can allow us to build them declaratively without such a complex, redundant description of how each VF ties bidirectionally to the others. If we model these as Endpoints (things that can be reached over the network) building chain gets really simple (dlenrow, 20:52:35) * dvorkinsta says that there are two use cases here (tbachman, 20:53:59) * one is where there is an explicitly desired SFC (tbachman, 20:54:10) * the second is the provider SFC that’s inserted transparently (tbachman, 20:54:19) * dvorkinista says lets first discuss the former use case (tbachman, 20:54:32) * tbachman notes that dvorkinista is pretty good at ASCII art ;) (tbachman, 20:56:02) * mickey_spiegel asks if there’s a difference between a function connector and logical interface (tbachman, 21:01:47) * dvorkinista says that interfaces are symantically overloaded and mean something (tbachman, 21:02:04) * The connector here identifies the input into a function (tbachman, 21:02:42) * That’s how you get in to the function, and therefore the chain (tbachman, 21:02:54) * mickey_spiegel asks if line inputs and connectors are 1-to-1 (tbachman, 21:04:07) * dvorkinista says no — you can have others (tbachman, 21:04:21) * dvorkinista draws an example of multiple lines to a single connector (tbachman, 21:04:40) * dlenrow asks if a load balancer is different enough worth treating differently (tbachman, 21:07:06) * dvorkinista notes that lines come out of the function, not the connectors (tbachman, 21:08:27) * the lines go in to a connector (tbachman, 21:08:33) * mickey_spiegel says that connector is just an abstraction and giving a name to it. (tbachman, 21:08:49) * sanjay asks if we can have input and output connectors, each having an input, an output, or bi-dir (tbachman, 21:13:16) * dvorkinista asks what happens when you try to specify next (tbachman, 21:13:36) * mickey_spiegel says it comes down to “what is a connector" (tbachman, 21:14:52) * dvorkinista then draws up a model with a single connector, with multiple next statements underneath it (tbachman, 21:15:43) * mickey_spiegel says he wants connectors with next’s that specify what they connect to (tbachman, 21:16:09) * mickey_spiegel says this way is an abstraction around x (tbachman, 21:16:49) * dvorkinista says in this case, connector doesn’t do anything (tbachman, 21:16:58) * mickey_spiegel says it gives you a point where you can do something once you get to the discussion on configuration (tbachman, 21:17:18) * sanjay says that connectors are vertices and nexts are links (tbachman, 21:17:40) * mickey_spiegel asks if there is some operational model that maps connectors to somting (tbachman, 21:20:42) * How do we use this. Assume there is a good way to describe the service chain. (suspend syntax argument for now). What does it look like to add SC1 between Sales EPG and the Internet EPG and add SC2 between finance EPG and special server EPG? (dlenrow, 21:23:48) * mickey_spiegel says if you look at the openstack model, there’s the same question of the port (tbachman, 21:24:23) * sanjay says that it’s about context — each connector provides a context (tbachman, 21:24:44) * dlenrow says that it’s worth taking a step back at this point (tbachman, 21:26:10) * dvorkinista says there’s a fundamental question of do we want an interface ,and what we want to call it. (tbachman, 21:26:50) * dlenrow says independent of that, ther’es the question of what it looks like when you bring in EPGs and specific instances of virtual functions into the picture (tbachman, 21:27:19) * mickey_spiegel says that this is a good point, b/c you get into this by associating to groups (tbachman, 21:27:52) * dvorkinista says we shouldn’t confuse how things behave on the wire vs. what the traffic is subjected to (tbachman, 21:28:24) * (i.e. what kinds of things can communicate and how they communicate vs. what operations are perfomed on the traffic) (tbachman, 21:28:54) * dvorkinista says that the next/prev provides a context, and the rest of it is the configuration of the appliance (tbachman, 21:30:52) * dvorkinista says you can treat an SLB as something that has its own contract, but its implicit (tbachman, 21:39:53) * mickey_spiegel says this kind of seems like you’re hopping contracts (tbachman, 21:41:36) * dvorkinista says that this is correct (tbachman, 21:41:42) * ACTION: dvorkinista will look into providing the slides (tbachman, 21:44:33) * we’ll think about the connector description and how that’s used (tbachman, 21:45:01) * ACTION: dvorkinista wil send the slides to sanjay, who will upload them to the wiki (tbachman, 21:45:37) * ACTION: mickey_spiegel will put syntax of the SFC with the connector definition and the behavior of a LB with VIPs and contracts applied onto Friday’s agenda (tbachman, 21:46:10) Meeting ended at 21:46:54 UTC. People present (lines said) --------------------------- * tbachman (102) * alagalah (10) * odl_meetbot (6) * dlenrow (4) * hemanthravi (4) * dconde (0) Generated by `MeetBot`_ 0.1.4