summaryrefslogtreecommitdiff
path: root/lib/ofp-print.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ofp-print.c')
-rw-r--r--lib/ofp-print.c32
1 files changed, 26 insertions, 6 deletions
diff --git a/lib/ofp-print.c b/lib/ofp-print.c
index b7c9a2641..cec074f1e 100644
--- a/lib/ofp-print.c
+++ b/lib/ofp-print.c
@@ -2156,8 +2156,8 @@ ofp_print_bucket_id(struct ds *s, const char *label, uint32_t bucket_id,
static void
ofp_print_group(struct ds *s, uint32_t group_id, uint8_t type,
- struct ovs_list *p_buckets, enum ofp_version ofp_version,
- bool suppress_type)
+ struct ovs_list *p_buckets, struct ofputil_group_props *props,
+ enum ofp_version ofp_version, bool suppress_type)
{
struct ofputil_bucket *bucket;
@@ -2169,6 +2169,26 @@ ofp_print_group(struct ds *s, uint32_t group_id, uint8_t type,
ds_put_format(s, ",type=%s", type_str[type > 4 ? 4 : type]);
}
+ if (props->selection_method[0]) {
+ size_t mark, start;
+
+ ds_put_format(s, ",selection_method=%s,", props->selection_method);
+ if (props->selection_method_param) {
+ ds_put_format(s, "selection_method_param=%"PRIu64",",
+ props->selection_method_param);
+ }
+
+ /* Allow rewinding to immediately before the trailing ',' */
+ mark = s->length - 1;
+
+ ds_put_cstr(s, "fields=");
+ start = s->length;
+ oxm_format_field_array(s, &props->fields);
+ if (s->length == start) {
+ ds_truncate(s, mark);
+ }
+ }
+
if (!p_buckets) {
return;
}
@@ -2226,8 +2246,8 @@ ofp_print_group_desc(struct ds *s, const struct ofp_header *oh)
ds_put_char(s, '\n');
ds_put_char(s, ' ');
- ofp_print_group(s, gd.group_id, gd.type, &gd.buckets, oh->version,
- false);
+ ofp_print_group(s, gd.group_id, gd.type, &gd.buckets, &gd.props,
+ oh->version, false);
ofputil_bucket_list_destroy(&gd.buckets);
}
}
@@ -2380,8 +2400,8 @@ ofp_print_group_mod(struct ds *s, const struct ofp_header *oh)
gm.command_bucket_id, oh->version);
}
- ofp_print_group(s, gm.group_id, gm.type, &gm.buckets, oh->version,
- bucket_command);
+ ofp_print_group(s, gm.group_id, gm.type, &gm.buckets, &gm.props,
+ oh->version, bucket_command);
ofputil_bucket_list_destroy(&gm.buckets);
}