ds_put_format(string, "\n %s:\n", i == 0 ? "master" : "slave");
for (type = 0; type < OAM_N_TYPES; type++) {
- switch (type) {
- case OAM_PACKET_IN:
- ds_put_cstr(string, " PACKET_IN:");
- break;
-
- case OAM_PORT_STATUS:
- ds_put_cstr(string, " PORT_STATUS:");
- break;
-
- case OAM_FLOW_REMOVED:
- ds_put_cstr(string, " FLOW_REMOVED:");
- break;
-
- case OAM_ROLE_STATUS:
- ds_put_cstr(string, " ROLE_STATUS:");
- break;
-
- case OAM_TABLE_STATUS:
- ds_put_cstr(string, " TABLE_STATUS:");
- break;
-
- case OAM_REQUESTFORWARD:
- ds_put_cstr(string, " REQUESTFORWARD:");
- break;
- }
+ ds_put_format(string, "%16s:",
+ ofputil_async_msg_type_to_string(type));
for (j = 0; j < 32; j++) {
if (role[i][type] & (1u << j)) {
}
}
+const char *
+ofputil_async_msg_type_to_string(enum ofputil_async_msg_type type)
+{
+ switch (type) {
+ case OAM_PACKET_IN: return "PACKET_IN";
+ case OAM_PORT_STATUS: return "PORT_STATUS";
+ case OAM_FLOW_REMOVED: return "FLOW_REMOVED";
+ case OAM_ROLE_STATUS: return "ROLE_STATUS";
+ case OAM_TABLE_STATUS: return "TABLE_STATUS";
+ case OAM_REQUESTFORWARD: return "REQUESTFORWARD";
+
+ case OAM_N_TYPES:
+ default:
+ OVS_NOT_REACHED();
+ }
+}
+
/* Decodes the OpenFlow "set async config" request and "get async config
* reply" message in '*oh' into an abstract form in 'master' and 'slave'.
*
OAM_REQUESTFORWARD, /* OFPT_REQUESTFORWARD. */
OAM_N_TYPES
};
+const char *ofputil_async_msg_type_to_string(enum ofputil_async_msg_type);
enum ofperr ofputil_decode_set_async_config(const struct ofp_header *,
uint32_t master[OAM_N_TYPES],