diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ofp-parse.c | 4 | ||||
-rw-r--r-- | lib/ofp-print.c | 4 | ||||
-rw-r--r-- | lib/ofp-util.c | 7 |
3 files changed, 14 insertions, 1 deletions
diff --git a/lib/ofp-parse.c b/lib/ofp-parse.c index 71c5cdfe7..4af6d9ba2 100644 --- a/lib/ofp-parse.c +++ b/lib/ofp-parse.c @@ -1380,6 +1380,10 @@ parse_ofp_group_mod_str__(struct ofputil_group_mod *gm, uint16_t command, fields = F_GROUP_TYPE | F_BUCKETS; break; + case OFPGC11_ADD_OR_MOD: + fields = F_GROUP_TYPE | F_BUCKETS; + break; + case OFPGC15_INSERT_BUCKET: fields = F_BUCKETS | F_COMMAND_BUCKET_ID; *usable_protocols &= OFPUTIL_P_OF15_UP; diff --git a/lib/ofp-print.c b/lib/ofp-print.c index 5747ec68f..919c95d64 100644 --- a/lib/ofp-print.c +++ b/lib/ofp-print.c @@ -2703,6 +2703,10 @@ ofp_print_group_mod__(struct ds *s, enum ofp_version ofp_version, ds_put_cstr(s, "MOD"); break; + case OFPGC11_ADD_OR_MOD: + ds_put_cstr(s, "ADD_OR_MOD"); + break; + case OFPGC11_DELETE: ds_put_cstr(s, "DEL"); break; diff --git a/lib/ofp-util.c b/lib/ofp-util.c index cc9f5e0ec..2b214ea3b 100644 --- a/lib/ofp-util.c +++ b/lib/ofp-util.c @@ -8896,6 +8896,7 @@ parse_group_prop_ntr_selection_method(struct ofpbuf *payload, switch (group_cmd) { case OFPGC15_ADD: case OFPGC15_MODIFY: + case OFPGC15_ADD_OR_MOD: break; case OFPGC15_DELETE: case OFPGC15_INSERT_BUCKET: @@ -9224,6 +9225,7 @@ bad_group_cmd(enum ofp15_group_mod_command cmd) switch (cmd) { case OFPGC15_ADD: case OFPGC15_MODIFY: + case OFPGC15_ADD_OR_MOD: case OFPGC15_DELETE: version = "1.1"; opt_version = "11"; @@ -9245,6 +9247,7 @@ bad_group_cmd(enum ofp15_group_mod_command cmd) break; case OFPGC15_MODIFY: + case OFPGC15_ADD_OR_MOD: cmd_str = "mod-group"; break; @@ -9284,7 +9287,7 @@ ofputil_encode_group_mod(enum ofp_version ofp_version, case OFP12_VERSION: case OFP13_VERSION: case OFP14_VERSION: - if (gm->command > OFPGC11_DELETE) { + if (gm->command > OFPGC11_DELETE && gm->command != OFPGC11_ADD_OR_MOD) { bad_group_cmd(gm->command); } return ofputil_encode_ofp11_group_mod(ofp_version, gm); @@ -9355,6 +9358,7 @@ ofputil_pull_ofp15_group_mod(struct ofpbuf *msg, enum ofp_version ofp_version, case OFPGC11_ADD: case OFPGC11_MODIFY: + case OFPGC11_ADD_OR_MOD: case OFPGC11_DELETE: default: if (gm->command_bucket_id == OFPG15_BUCKET_ALL) { @@ -9433,6 +9437,7 @@ ofputil_decode_group_mod(const struct ofp_header *oh, switch (gm->command) { case OFPGC11_ADD: case OFPGC11_MODIFY: + case OFPGC11_ADD_OR_MOD: case OFPGC11_DELETE: case OFPGC15_INSERT_BUCKET: break; |