From: Ben Pfaff Date: Wed, 2 May 2012 21:23:28 +0000 (-0700) Subject: odp-util: Use switch for checking values of an enum. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=21ae82ffb3e3d1459055024c8a447365499a60f4;p=openvswitch odp-util: Use switch for checking values of an enum. The compiler warns when we forget to handle some value of an enum, whereas it won't for a sequence of 'if' statements. Signed-off-by: Ben Pfaff --- diff --git a/lib/odp-util.c b/lib/odp-util.c index fef42ba7..6fc34fe7 100644 --- a/lib/odp-util.c +++ b/lib/odp-util.c @@ -189,12 +189,16 @@ format_odp_userspace_action(struct ds *ds, const struct nlattr *attr) memcpy(&cookie, &userdata, sizeof cookie); - if (cookie.type == USER_ACTION_COOKIE_SFLOW) { + switch (cookie.type) { + case USER_ACTION_COOKIE_SFLOW: ds_put_format(ds, ",sFlow,n_output=%"PRIu8"," "vid=%"PRIu16",pcp=%"PRIu8",ifindex=%"PRIu32, cookie.n_output, vlan_tci_to_vid(cookie.vlan_tci), vlan_tci_to_pcp(cookie.vlan_tci), cookie.data); - } else { + break; + + case USER_ACTION_COOKIE_UNSPEC: + default: ds_put_format(ds, ",userdata=0x%"PRIx64, userdata); } } diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index e4bb4764..b8ea49a2 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -3026,13 +3026,18 @@ handle_userspace_upcall(struct ofproto_dpif *ofproto, return; } - if (cookie.type == USER_ACTION_COOKIE_SFLOW) { + switch (cookie.type) { + case USER_ACTION_COOKIE_SFLOW: if (ofproto->sflow) { dpif_sflow_received(ofproto->sflow, upcall->packet, &flow, &cookie); } - } else { + break; + + case USER_ACTION_COOKIE_UNSPEC: + default: VLOG_WARN_RL(&rl, "invalid user cookie : 0x%"PRIx64, upcall->userdata); + break; } }