"dev" <dev-boun...@openvswitch.org> wrote on 06/19/2016 12:24:11 PM:
> From: Ben Pfaff <b...@ovn.org> > To: dev@openvswitch.org > Cc: Ben Pfaff <b...@ovn.org> > Date: 06/19/2016 12:24 PM > Subject: [ovs-dev] [PATCH] FAQ: Describe how to use "learn" as a primitive. > Sent by: "dev" <dev-boun...@openvswitch.org> > > Signed-off-by: Ben Pfaff <b...@ovn.org> > --- > FAQ.md | 42 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 42 insertions(+) > > diff --git a/FAQ.md b/FAQ.md > index df6f225..2babb8f 100644 > --- a/FAQ.md > +++ b/FAQ.md > @@ -2029,6 +2029,47 @@ A: OpenFlow actions are executed in the order > specified. Thus, the > > ovs-ofctl add-flow br0 dl_vlan=123,actions=mod_vlan_vid:456,output:1 > > +### Q: The "learn" action can't learn the action I want, can you improve it? > + > +A: By itself, the "learn" action can only put two kinds of actions > + into the flows that it creates: "load" and "output" actions. If > + "learn" is used in isolation, these are severe limits. > + > + Howver, "learn" is not meant to be used in isolation. It is a Typo: However > + primitive meant to be used together with other Open vSwitch > + features to accomplish a task. Its existing features are enough to Typo: I think this "Its" should be "It's" because it is a possessive. > + accomplish most tasks. > + > + Here is an outline of a typical pipeline structure that allows for > + versatile behavior using "learn": > + > + - Flows in table A contain a "learn" action, that populates flows > + in table L, that use a "load" action to populate register R > + with information about what was learned. > + > + - Flows in table B contain two sequential resubmit actions: one > + to table L and another one to table B+1. > + > + - Flows in table B+1 match on register R and act differently > + depending on what the flows in table L loaded into it. > + > + This approach can be used to implement many "learn"-based features. > + For example: > + > + - Resubmit to a table selected based on learned information, e.g. see: > + http://openvswitch.org/pipermail/discuss/2016-June/021694.html > + > + - MAC learning in the middle of a pipeline, as described in > + [Tutorial.md]. > + > + - TCP state based firewalling, by learning outgoing connections > + based on SYN packets and matching them up with incoming > + packets. > + > + - At least some of the features described in T. A. Hoff, > + "Extending Open vSwitch to Facilitate Creation of Stateful SDN > + Applications". > + > > Development > ----------- > @@ -2095,3 +2136,4 @@ http://openvswitch.org/ > [INSTALL.md]:INSTALL.md > [OPENFLOW-1.1+.md]:OPENFLOW-1.1+.md > [INSTALL.DPDK.md]:INSTALL.DPDK.md > +[Tutorial.md]:tutorial/Tutorial.md > -- > 2.1.3 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev Once the two potential typos are fixed... Acked-by: Ryan Moats <rmo...@us.ibm.com> _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev