ds_put_char(string, '\n');
}
+static void
+ofp_print_table_status_message(struct ds *string, const struct ofp_header *oh)
+{
+ struct ofputil_table_status ts;
+ enum ofperr error;
+
+ error = ofputil_decode_table_status(oh, &ts);
+ if (error) {
+ ofp_print_error(string, error);
+ return;
+ }
+
+ if (ts.reason == OFPTR_VACANCY_DOWN) {
+ ds_put_format(string, " reason=VACANCY_DOWN");
+ } else if (ts.reason == OFPTR_VACANCY_UP) {
+ ds_put_format(string, " reason=VACANCY_UP");
+ }
+
+ ds_put_format(string, "\ntable_desc:-");
+ ofp_print_table_desc(string, &ts.desc);
+}
+
static void
ofp_print_queue_get_config_request(struct ds *string,
const struct ofp_header *oh)
ofp_print_requestforward(string, oh);
break;
+ case OFPTYPE_TABLE_STATUS:
+ ofp_print_table_status_message(string, oh);
+ break;
+
case OFPTYPE_METER_STATS_REQUEST:
case OFPTYPE_METER_CONFIG_STATS_REQUEST:
ofp_print_stats(string, oh);