John McDowall <jmcdow...@paloaltonetworks.com> wrote on 06/28/2016 10:43:11 AM:
> From: John McDowall <jmcdow...@paloaltonetworks.com> > To: Ryan Moats/Omaha/IBM@IBMUS > Cc: "dev@openvswitch.org" <dev@openvswitch.org> > Date: 06/28/2016 10:43 AM > Subject: Re: [ovs-dev] SFC summary: ACL and Flow-Classifier > > Ryan, > > I think we are in agreement on the basic mechanism. I am just > struggling with the implementation details. > > A part of the issue maybe how I have constructed the rules. The FC/ > ACL rule has lower precedence than the rule for the ppg. > > The rule for the FC/ACL is: > > Match(FC) then Action(First InPort in Chain) > > The rule for the Port Chain is: > > Match(“FC" and "From Port Chain Outport") then Action(Next InPort in Chain) > > To make sure the rules fired in the right order I put both rules in > the same table and give them appropriate priorities – just the > shortest path to make something work. > > I am struggling with the “metadata” part that instructs the flow to > skip the rule in the ACL table. Is there some example code I can look at? > > Regards > > John When you dump the flow tables, look for occurrences of OXM_OF_METADATA and NXM_NX_REGx (where x=0-7). Actions set values, matches test against stored values. This is what I'm referring to when I talk about "metadata". Ryan > > From: Ryan Moats <rmo...@us.ibm.com> > Date: Monday, June 27, 2016 at 8:11 PM > To: John McDowall <jmcdow...@paloaltonetworks.com> > Cc: "dev@openvswitch.org" <dev@openvswitch.org> > Subject: Re: [ovs-dev] SFC summary: ACL and Flow-Classifier > > John McDowall <jmcdow...@paloaltonetworks.com> wrote on 06/27/2016 > 09:28:16 PM: > > > From: John McDowall <jmcdow...@paloaltonetworks.com> > > To: Ryan Moats/Omaha/IBM@IBMUS > > Cc: "dev@openvswitch.org" <dev@openvswitch.org> > > Date: 06/27/2016 09:28 PM > > Subject: Re: [ovs-dev] SFC summary: ACL and Flow-Classifier > > > > Previous thread contents are here: http://openvswitch.org/pipermail/ > > dev/2016-June/073836.html > > > > Ryan, > > > > The flow-classifier rules need to have a lower priority than the ppg > > rules as they steer the traffic into the chain. Therefore I could do > > this two ways: > > I can put the flow-classifier rules into the ACL table and insert > > them from their into the chain table, > > I can move the chain table before the ACL table. > > If either case the action would be to send the traffic to the first > > port pair input put of the first port-pair. This rule would then be > > fired in the chain table to steer traffic through the chain. > > > > Both seem a little “hacky” to me the first because it might set > > rules on flows that get modified before they hit the chain table, > > but the current ACL code sets both egress and ingress tables so > > there is precedent. > > > > The second approach is just bad as we could process a bunch of flows > > that are dropped in the ACL table. > > > > Thoughts? > > > > John > > I'll admit that I must be missing something because I just don't > understand where you are coming from here. I'm working from the > following assumptions: > > 1. The FCs steer traffic from outside the port chain into the first > PPG of the port chain in the ACL table of the ingress pipeline. > 2. Once I'm in the port chain, the current port I come in on steers > traffic to the next PPG of the port chain in the first table of > ingress pipeline (table 0) and makes sure we skip the FCs in the > ACL table (I admit I forgot this in previous emails). > 3. I select the output port for the next PPG in the chain > table of the ingress pipeline. > > Because I'm doing these in three different tables, I don't quite see > why I need to worry about priorities. > > As an exampke, consider a two PPG chain. A packet from vif1 > come into the switch and are processed normally until the ACL table. > If they match the FCs for the port chain, metadata is set to say > the packet needs to go to PPG1. In the chain table, the output port > of the first PPG is selected and the packets gets sent to that > output port by the normal mechanism. > > Now the packet comes back in from the input port of that first VNF. > Table 1 is programmed to set the metadata to show this packet needs > to go to the second PPG. It flows through the other tables > (skipping the FCs in the ACL table) until it reaches the chain table, > at which point the output port of the second PPG is selected and > the packet gets sent to that output port by the normal mechanism. > > Now the packet comes back in from the input port of the second VNF. > Table 1 is programmed to set the metadata to show this packet has > finished the port chain. It flows through the other tables > (again skipping the FCs in the ACL table) being sent to the dIP > on the packet. > > What am I missing? > > Ryan > > > > Because of the _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev