diff options
| author | Ben Pfaff <blp@ovn.org> | 2018-05-09 17:03:56 -0700 |
|---|---|---|
| committer | Ben Pfaff <blp@ovn.org> | 2018-05-17 08:16:06 -0700 |
| commit | 7b809df9529d32f61e5b501366ae1f99ed84c9e5 (patch) | |
| tree | 67804f011bc4ccf93a2430f5cf9ef3afbf85495d /include | |
| parent | 720c104c93ecb3954890a4b25bf03af668026f63 (diff) | |
| download | openvswitch-7b809df9529d32f61e5b501366ae1f99ed84c9e5.tar.gz | |
Add OpenFlow extensions for group support in OpenFlow 1.0.
Signed-off-by: Ben Pfaff <blp@ovn.org>
Acked-by: Justin Pettit <jpettit@ovn.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/openflow/openflow-1.5.h | 3 | ||||
| -rw-r--r-- | include/openvswitch/ofp-errors.h | 54 | ||||
| -rw-r--r-- | include/openvswitch/ofp-msgs.h | 35 |
3 files changed, 57 insertions, 35 deletions
diff --git a/include/openflow/openflow-1.5.h b/include/openflow/openflow-1.5.h index d9b867cf2..c146052af 100644 --- a/include/openflow/openflow-1.5.h +++ b/include/openflow/openflow-1.5.h @@ -77,12 +77,11 @@ struct ofp15_bucket { 64-bit aligned. */ ovs_be16 action_array_len; /* Length of all actions in bytes. */ ovs_be32 bucket_id; /* Bucket Id used to identify bucket*/ - /* Followed by exactly len - 8 bytes of group bucket properties. */ /* Followed by: * - Exactly 'action_array_len' bytes containing an array of * struct ofp_action_*. * - Zero or more bytes of group bucket properties to fill out the - * overall length in header.length. */ + * overall length in 'len'. */ }; OFP_ASSERT(sizeof(struct ofp15_bucket) == 8); diff --git a/include/openvswitch/ofp-errors.h b/include/openvswitch/ofp-errors.h index 16feacb55..6e8e55ab4 100644 --- a/include/openvswitch/ofp-errors.h +++ b/include/openvswitch/ofp-errors.h @@ -254,7 +254,7 @@ enum ofperr { /* OF1.0+(2,8). Problem validating output queue. */ OFPERR_OFPBAC_BAD_QUEUE, - /* OF1.1+(2,9). Invalid group id in output action. */ + /* NX1.0(2,9), OF1.1+(2,9). Invalid group id in output action. */ OFPERR_OFPBAC_BAD_OUT_GROUP, /* NX1.0(1,522), OF1.1+(2,10). Action can't apply for this match or a @@ -460,63 +460,65 @@ enum ofperr { /* ## OFPET_GROUP_MOD_FAILED ## */ /* ## ---------------------- ## */ - /* OF1.1+(6,0). Group not added because a group ADD attempted to replace - * an already-present group. */ + /* NX1.0(6,0), OF1.1+(6,0). Group not added because a group ADD attempted + * to replace an already-present group. */ OFPERR_OFPGMFC_GROUP_EXISTS, - /* OF1.1+(6,1). Group not added because Group specified is invalid. */ + /* NX1.0(6,1), OF1.1+(6,1). Group not added because Group specified is + * invalid. */ OFPERR_OFPGMFC_INVALID_GROUP, - /* OF1.1+(6,2). Switch does not support unequal load sharing with select - * groups. */ + /* NX1.0(6,2), OF1.1+(6,2). Switch does not support unequal load sharing + * with select groups. */ OFPERR_OFPGMFC_WEIGHT_UNSUPPORTED, - /* OF1.1+(6,3). The group table is full. */ + /* NX1.0(6,3), OF1.1+(6,3). The group table is full. */ OFPERR_OFPGMFC_OUT_OF_GROUPS, - /* OF1.1+(6,4). The maximum number of action buckets for a group has been - * exceeded. */ + /* NX1.0(6,4), OF1.1+(6,4). The maximum number of action buckets for a + * group has been exceeded. */ OFPERR_OFPGMFC_OUT_OF_BUCKETS, - /* OF1.1+(6,5). Switch does not support groups that forward to groups. */ + /* NX1.0(6,5), OF1.1+(6,5). Switch does not support groups that forward to + * groups. */ OFPERR_OFPGMFC_CHAINING_UNSUPPORTED, - /* OF1.1+(6,6). This group cannot watch the watch_port or watch_group - * specified. */ + /* NX1.0(6,6), OF1.1+(6,6). This group cannot watch the watch_port or + * watch_group specified. */ OFPERR_OFPGMFC_WATCH_UNSUPPORTED, - /* OF1.1+(6,7). Group entry would cause a loop. */ + /* NX1.0(6,7), OF1.1+(6,7). Group entry would cause a loop. */ OFPERR_OFPGMFC_LOOP, - /* OF1.1+(6,8). Group not modified because a group MODIFY attempted to - * modify a non-existent group. */ + /* NX1.0(6,8), OF1.1+(6,8). Group not modified because a group MODIFY + * attempted to modify a non-existent group. */ OFPERR_OFPGMFC_UNKNOWN_GROUP, - /* OF1.2+(6,9). Group not deleted because another - group is forwarding to it. */ + /* NX1.0(6,9), OF1.2+(6,9). Group not deleted because another group is + * forwarding to it. */ OFPERR_OFPGMFC_CHAINED_GROUP, - /* OF1.2+(6,10). Unsupported or unknown group type. */ + /* NX1.0(6,10), OF1.2+(6,10). Unsupported or unknown group type. */ OFPERR_OFPGMFC_BAD_TYPE, - /* OF1.2+(6,11). Unsupported or unknown command. */ + /* NX1.0(6,11), OF1.2+(6,11). Unsupported or unknown command. */ OFPERR_OFPGMFC_BAD_COMMAND, - /* OF1.2+(6,12). Error in bucket. */ + /* NX1.0(6,12), OF1.2+(6,12). Error in bucket. */ OFPERR_OFPGMFC_BAD_BUCKET, - /* OF1.2+(6,13). Error in watch port/group. */ + /* NX1.0(6,13), OF1.2+(6,13). Error in watch port/group. */ OFPERR_OFPGMFC_BAD_WATCH, - /* OF1.2+(6,14). Permissions error. */ + /* NX1.0(6,14), OF1.2+(6,14). Permissions error. */ OFPERR_OFPGMFC_EPERM, - /* OF1.5+(6,15). Invalid bucket identifier used in - * INSERT BUCKET or REMOVE BUCKET command. */ + /* NX1.0(6,15), OF1.5+(6,15). Invalid bucket identifier used in INSERT + * BUCKET or REMOVE BUCKET command. */ OFPERR_OFPGMFC_UNKNOWN_BUCKET, - /* OF1.5+(6,16). Can't insert bucket because a bucket - * already exist with that bucket-id. */ + /* NX1.0(6,16), OF1.5+(6,16). Can't insert bucket because a bucket already + * exist with that bucket-id. */ OFPERR_OFPGMFC_BUCKET_EXISTS, /* ## --------------------- ## */ diff --git a/include/openvswitch/ofp-msgs.h b/include/openvswitch/ofp-msgs.h index ea2fa5bb0..f18027302 100644 --- a/include/openvswitch/ofp-msgs.h +++ b/include/openvswitch/ofp-msgs.h @@ -195,6 +195,8 @@ enum ofpraw { /* NXT 1.0+ (13): struct nx_flow_mod, uint8_t[8][]. */ OFPRAW_NXT_FLOW_MOD, + /* NXT 1.0 (31): struct ofp15_group_mod, uint8_t[8][]. */ + OFPRAW_NXT_GROUP_MOD, /* OFPT 1.1-1.4 (15): struct ofp11_group_mod, uint8_t[8][]. */ OFPRAW_OFPT11_GROUP_MOD, /* OFPT 1.5+ (15): struct ofp15_group_mod, uint8_t[8][]. */ @@ -367,25 +369,37 @@ enum ofpraw { /* OFPST 1.4+ (5): uint8_t[8][]. */ OFPRAW_OFPST14_QUEUE_REPLY, + /* NXST 1.0 (7): struct ofp11_group_stats_request. */ + OFPRAW_NXST_GROUP_REQUEST, /* OFPST 1.1+ (6): struct ofp11_group_stats_request. */ OFPRAW_OFPST11_GROUP_REQUEST, + /* NXST 1.0 (7): uint8_t[8][]. */ + OFPRAW_NXST_GROUP_REPLY, /* OFPST 1.1-1.2 (6): uint8_t[8][]. */ OFPRAW_OFPST11_GROUP_REPLY, /* OFPST 1.3+ (6): uint8_t[8][]. */ OFPRAW_OFPST13_GROUP_REPLY, + /* NXST 1.0 (8): struct ofp15_group_desc_request. */ + OFPRAW_NXST_GROUP_DESC_REQUEST, /* OFPST 1.1-1.4 (7): void. */ OFPRAW_OFPST11_GROUP_DESC_REQUEST, /* OFPST 1.5+ (7): struct ofp15_group_desc_request. */ OFPRAW_OFPST15_GROUP_DESC_REQUEST, + /* NXST 1.0 (8): uint8_t[8][]. */ + OFPRAW_NXST_GROUP_DESC_REPLY, /* OFPST 1.1+ (7): uint8_t[8][]. */ OFPRAW_OFPST11_GROUP_DESC_REPLY, + /* NXST 1.0-1.1 (9): void. */ + OFPRAW_NXST_GROUP_FEATURES_REQUEST, /* OFPST 1.2+ (8): void. */ OFPRAW_OFPST12_GROUP_FEATURES_REQUEST, + /* NXST 1.0-1.1 (9): struct ofp12_group_features_stats. */ + OFPRAW_NXST_GROUP_FEATURES_REPLY, /* OFPST 1.2+ (8): struct ofp12_group_features_stats. */ OFPRAW_OFPST12_GROUP_FEATURES_REPLY, @@ -583,7 +597,8 @@ enum ofptype { OFPTYPE_FLOW_MOD, /* OFPRAW_OFPT10_FLOW_MOD. * OFPRAW_OFPT11_FLOW_MOD. * OFPRAW_NXT_FLOW_MOD. */ - OFPTYPE_GROUP_MOD, /* OFPRAW_OFPT11_GROUP_MOD. + OFPTYPE_GROUP_MOD, /* OFPRAW_NXT_GROUP_MOD. + * OFPRAW_OFPT11_GROUP_MOD. * OFPRAW_OFPT15_GROUP_MOD. */ OFPTYPE_PORT_MOD, /* OFPRAW_OFPT10_PORT_MOD. * OFPRAW_OFPT11_PORT_MOD. @@ -677,19 +692,25 @@ enum ofptype { * OFPRAW_OFPST13_QUEUE_REPLY. * OFPRAW_OFPST14_QUEUE_REPLY. */ - OFPTYPE_GROUP_STATS_REQUEST, /* OFPRAW_OFPST11_GROUP_REQUEST. */ + OFPTYPE_GROUP_STATS_REQUEST, /* OFPRAW_NXST_GROUP_REQUEST. + * OFPRAW_OFPST11_GROUP_REQUEST. */ - OFPTYPE_GROUP_STATS_REPLY, /* OFPRAW_OFPST11_GROUP_REPLY. + OFPTYPE_GROUP_STATS_REPLY, /* OFPRAW_NXST_GROUP_REPLY. + * OFPRAW_OFPST11_GROUP_REPLY. * OFPRAW_OFPST13_GROUP_REPLY. */ - OFPTYPE_GROUP_DESC_STATS_REQUEST, /* OFPRAW_OFPST11_GROUP_DESC_REQUEST. + OFPTYPE_GROUP_DESC_STATS_REQUEST, /* OFPRAW_NXST_GROUP_DESC_REQUEST. + * OFPRAW_OFPST11_GROUP_DESC_REQUEST. * OFPRAW_OFPST15_GROUP_DESC_REQUEST. */ - OFPTYPE_GROUP_DESC_STATS_REPLY, /* OFPRAW_OFPST11_GROUP_DESC_REPLY. */ + OFPTYPE_GROUP_DESC_STATS_REPLY, /* OFPRAW_NXST_GROUP_DESC_REPLY. + * OFPRAW_OFPST11_GROUP_DESC_REPLY. */ - OFPTYPE_GROUP_FEATURES_STATS_REQUEST, /* OFPRAW_OFPST12_GROUP_FEATURES_REQUEST. */ + OFPTYPE_GROUP_FEATURES_STATS_REQUEST, /* OFPRAW_NXST_GROUP_FEATURES_REQUEST. + * OFPRAW_OFPST12_GROUP_FEATURES_REQUEST. */ - OFPTYPE_GROUP_FEATURES_STATS_REPLY, /* OFPRAW_OFPST12_GROUP_FEATURES_REPLY. */ + OFPTYPE_GROUP_FEATURES_STATS_REPLY, /* OFPRAW_NXST_GROUP_FEATURES_REPLY. + * OFPRAW_OFPST12_GROUP_FEATURES_REPLY. */ OFPTYPE_METER_STATS_REQUEST, /* OFPRAW_OFPST13_METER_REQUEST. */ |
