diff options
author | Alexandru Copot <alex.mihai.c@gmail.com> | 2014-05-02 09:54:27 +0300 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2014-05-02 09:41:33 -0700 |
commit | 777af88d50b8271a8cc8f0a79d17022944481506 (patch) | |
tree | 3f6d419d949582706c3771a9d33dfe5be521c998 /include/openflow/openflow-1.4.h | |
parent | 17a40d3404df4aa6393dd126cb6f0ae99b72031a (diff) | |
download | openvswitch-777af88d50b8271a8cc8f0a79d17022944481506.tar.gz |
Add basic implementation for OpenFlow 1.4 bundles
This is only the communication part of the bundles functionality.
The actual message pre-validation and commits are not implemented.
We also enable OF1.4 for all the tests.
Signed-off-by: Alexandru Copot <alex.mihai.c@gmail.com>
Cc: Daniel Baluta <dbaluta@ixiacom.com>
[blp@nicira.com made ofputil_decode_bundle_add() more obviously correct]
Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'include/openflow/openflow-1.4.h')
-rw-r--r-- | include/openflow/openflow-1.4.h | 31 |
1 files changed, 10 insertions, 21 deletions
diff --git a/include/openflow/openflow-1.4.h b/include/openflow/openflow-1.4.h index 6efa3b9e9..cf83c61fc 100644 --- a/include/openflow/openflow-1.4.h +++ b/include/openflow/openflow-1.4.h @@ -171,31 +171,20 @@ enum ofp14_bundle_flags { OFPBF_ORDERED = 1 << 1, /* Execute in specified order. */ }; -/* Message structure for ONF_ET_BUNDLE_CONTROL. */ +/* Message structure for OFPT_BUNDLE_CONTROL and OFPT_BUNDLE_ADD_MESSAGE. */ struct ofp14_bundle_ctrl_msg { ovs_be32 bundle_id; /* Identify the bundle. */ - ovs_be16 type; /* OFPBCT_*. */ + ovs_be16 type; /* OFPT_BUNDLE_CONTROL: one of OFPBCT_*. + * OFPT_BUNDLE_ADD_MESSAGE: not used. */ ovs_be16 flags; /* Bitmap of OFPBF_* flags. */ - /* Bundle Property list. */ - /* struct ofp14_bundle_prop_header properties[0]; */ + /* Followed by: + * - For OFPT_BUNDLE_ADD_MESSAGE only, an encapsulated OpenFlow message, + * beginning with an ofp_header whose xid is identical to this message's + * outer xid. + * - For OFPT_BUNDLE_ADD_MESSAGE only, and only if at least one property is + * present, 0 to 7 bytes of padding to align on a 64-bit boundary. + * - Zero or more properties (see struct ofp14_bundle_prop_header). */ }; OFP_ASSERT(sizeof(struct ofp14_bundle_ctrl_msg) == 8); -/* Message structure for OFP_BUNDLE_ADD_MESSAGE. -* Adding a message in a bundle is done with. */ -struct ofp14_bundle_add_msg { - ovs_be32 bundle_id; /* Identify the bundle. */ - uint8_t pad[2]; /* Align to 64 bits. */ - ovs_be16 flags; /* Bitmap of ONF_BF_* flags. */ - - struct ofp_header message; /* Message added to the bundle. */ - - /* If there is one property or more, 'message' is followed by: - * - Exactly (message.length + 7)/8*8 - (message.length) (between 0 and 7) - * bytes of all-zero bytes */ - - /* Bundle Property list. */ - /* struct ofp14_bundle_prop_header properties[0]; */ -}; -OFP_ASSERT(sizeof(struct ofp14_bundle_add_msg) == 16); #endif /* openflow/openflow-1.4.h */ |