"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

Reply via email to