Looks good to me. Thanks for doing this. Ethan
On Mon, Mar 26, 2012 at 15:13, Ben Pfaff <b...@nicira.com> wrote: > Signed-off-by: Ben Pfaff <b...@nicira.com> > --- > Justin, the paragraph near the end that starts out "However, unlike > OpenFlow 1.1, ..." seems to correctly document OVS behavior, but it > also seems pretty wrong. Should we fix it? > > Thanks, > > Ben. > > DESIGN | 65 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 files changed, 65 insertions(+), 0 deletions(-) > > diff --git a/DESIGN b/DESIGN > index ec29e39..1384ad8 100644 > --- a/DESIGN > +++ b/DESIGN > @@ -146,6 +146,71 @@ sends flow_removed message --- --- --- % > % > receive the generated messages.) > > > +Flow Cookies > +============ > + > +OpenFlow 1.0 and later versions have the concept of a "flow cookie", > +which is a 64-bit integer value attached to each flow. The treatment > +of the flow cookie has varied greatly across OpenFlow versions, > +however. > + > +In OpenFlow 1.0: > + > + - OFPFC_ADD set the cookie in the flow that it added. > + > + - OFPFC_MODIFY and OFPFC_MODIFY_STRICT updated the cookie for > + the flow or flows that it modified. > + > + - OFPST_FLOW messages included the flow cookie. > + > + - OFPT_FLOW_REMOVED messages reported the cookie of the flow > + that was removed. > + > +OpenFlow 1.1 made the following changes: > + > + - Flow mod operations OFPFC_MODIFY, OFPFC_MODIFY_STRICT, > + OFPFC_DELETE, and OFPFC_DELETE_STRICT, plus flow stats > + requests and aggregate stats requests, gained the ability to > + match on flow cookies with an arbitrary mask. > + > + - OFPFC_MODIFY and OFPFC_MODIFY_STRICT were changed to add a > + new flow, in the case of no match, only if the flow table > + modification operation did not match on the cookie field. > + (In OpenFlow 1.0, modify operations always added a new flow > + when there was no match.) > + > + - OFPFC_MODIFY and OFPFC_MODIFY_STRICT no longer updated flow > + cookies. > + > +OpenFlow 1.2 made the following changes: > + > + - OFPC_MODIFY and OFPFC_MODIFY_STRICT were changed to never > + add a new flow, regardless of whether the flow cookie was > + used for matching. > + > +Open vSwitch support for OpenFlow 1.0 implements the OpenFlow 1.0 > +behavior with the following extensions: > + > + - An NXM extension field NXM_NX_COOKIE(_W) allows the NXM > + versions of OFPFC_MODIFY, OFPFC_MODIFY_STRICT, OFPFC_DELETE, > + and OFPFC_DELETE_STRICT flow_mods, plus flow stats requests > + and aggregate stats requests, to match on flow cookies with > + arbitrary masks. This is much like the equivalent OpenFlow > + 1.1 feature. > + > + - However, unlike OpenFlow 1.1, OFPC_MODIFY and > + OFPFC_MODIFY_STRICT, regardless of whether there was a match > + based on a cookie or not, always a add new flow if there is > + no match, and they always update the cookies of flows that > + they do match. > + > + - NXT_PACKET_IN (the Nicira extended version of > + OFPT_PACKET_IN) reports the cookie of the rule that > + generated the packet, or all-1-bits if no rule generated the > + packet. (Older versions of OVS used all-0-bits instead of > + all-1-bits.) > + > + > Multiple Table Support > ====================== > > -- > 1.7.2.5 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev