diff options
| author | Mark Stapp <mjs@labn.net> | 2023-11-17 08:40:58 -0500 | 
|---|---|---|
| committer | Mark Stapp <mjs@labn.net> | 2023-11-17 08:40:58 -0500 | 
| commit | bb3faf1b95ad877a4ce95caf17cf3f01b031fc1d (patch) | |
| tree | 3d9b1be5e33492bf23519e1072ac8e16e7490acd /zebra/zebra_mpls.c | |
| parent | f671c92857eaf554172339f93f6631afe77a6d28 (diff) | |
zebra: reduce number of switch statements with dplane opcodes
Replace several switch blocks that contain every dplane opcode
with simpler sets of if()s. In these cases the code only
uses a couple of opcodes.
Signed-off-by: Mark Stapp <mjs@labn.net>
Diffstat (limited to 'zebra/zebra_mpls.c')
| -rw-r--r-- | zebra/zebra_mpls.c | 72 | 
1 files changed, 6 insertions, 66 deletions
diff --git a/zebra/zebra_mpls.c b/zebra/zebra_mpls.c index c2e34faed6..7fca365468 100644 --- a/zebra/zebra_mpls.c +++ b/zebra/zebra_mpls.c @@ -1770,9 +1770,7 @@ void zebra_mpls_lsp_dplane_result(struct zebra_dplane_ctx *ctx)  	label = dplane_ctx_get_in_label(ctx); -	switch (op) { -	case DPLANE_OP_LSP_INSTALL: -	case DPLANE_OP_LSP_UPDATE: +	if (op == DPLANE_OP_LSP_INSTALL || op == DPLANE_OP_LSP_UPDATE) {  		/* Look for zebra LSP object */  		zvrf = zebra_vrf_lookup_by_id(VRF_DEFAULT);  		lsp_table = zvrf->lsp_table; @@ -1783,7 +1781,7 @@ void zebra_mpls_lsp_dplane_result(struct zebra_dplane_ctx *ctx)  			if (IS_ZEBRA_DEBUG_DPLANE)  				zlog_debug("LSP ctx %p: in-label %u not found",  					   ctx, dplane_ctx_get_in_label(ctx)); -			break; +			return;  		}  		/* TODO -- Confirm that this result is still 'current' */ @@ -1794,7 +1792,7 @@ void zebra_mpls_lsp_dplane_result(struct zebra_dplane_ctx *ctx)  			flog_warn(EC_ZEBRA_LSP_INSTALL_FAILURE,  				  "LSP Install Failure: in-label %u",  				  lsp->ile.in_label); -			break; +			return;  		}  		/* Update zebra object */ @@ -1815,74 +1813,16 @@ void zebra_mpls_lsp_dplane_result(struct zebra_dplane_ctx *ctx)  				      ? ZEBRA_SR_POLICY_LABEL_CREATED  				      : ZEBRA_SR_POLICY_LABEL_UPDATED;  		zebra_sr_policy_label_update(label, update_mode); -		break; - -	case DPLANE_OP_LSP_DELETE: +	} else if (op == DPLANE_OP_LSP_DELETE) {  		if (status != ZEBRA_DPLANE_REQUEST_SUCCESS) {  			flog_warn(EC_ZEBRA_LSP_DELETE_FAILURE,  				  "LSP Deletion Failure: in-label %u",  				  dplane_ctx_get_in_label(ctx)); -			break; +			return;  		}  		zebra_sr_policy_label_update(label,  					     ZEBRA_SR_POLICY_LABEL_REMOVED); -		break; - -	case DPLANE_OP_LSP_NOTIFY: -	case DPLANE_OP_NONE: -	case DPLANE_OP_ROUTE_INSTALL: -	case DPLANE_OP_ROUTE_UPDATE: -	case DPLANE_OP_ROUTE_DELETE: -	case DPLANE_OP_ROUTE_NOTIFY: -	case DPLANE_OP_NH_INSTALL: -	case DPLANE_OP_NH_UPDATE: -	case DPLANE_OP_NH_DELETE: -	case DPLANE_OP_PW_INSTALL: -	case DPLANE_OP_PW_UNINSTALL: -	case DPLANE_OP_SYS_ROUTE_ADD: -	case DPLANE_OP_SYS_ROUTE_DELETE: -	case DPLANE_OP_ADDR_INSTALL: -	case DPLANE_OP_ADDR_UNINSTALL: -	case DPLANE_OP_MAC_INSTALL: -	case DPLANE_OP_MAC_DELETE: -	case DPLANE_OP_NEIGH_INSTALL: -	case DPLANE_OP_NEIGH_UPDATE: -	case DPLANE_OP_NEIGH_DELETE: -	case DPLANE_OP_VTEP_ADD: -	case DPLANE_OP_VTEP_DELETE: -	case DPLANE_OP_RULE_ADD: -	case DPLANE_OP_RULE_DELETE: -	case DPLANE_OP_RULE_UPDATE: -	case DPLANE_OP_NEIGH_DISCOVER: -	case DPLANE_OP_BR_PORT_UPDATE: -	case DPLANE_OP_IPTABLE_ADD: -	case DPLANE_OP_IPTABLE_DELETE: -	case DPLANE_OP_IPSET_ADD: -	case DPLANE_OP_IPSET_DELETE: -	case DPLANE_OP_IPSET_ENTRY_ADD: -	case DPLANE_OP_IPSET_ENTRY_DELETE: -	case DPLANE_OP_NEIGH_IP_INSTALL: -	case DPLANE_OP_NEIGH_IP_DELETE: -	case DPLANE_OP_NEIGH_TABLE_UPDATE: -	case DPLANE_OP_GRE_SET: -	case DPLANE_OP_INTF_ADDR_ADD: -	case DPLANE_OP_INTF_ADDR_DEL: -	case DPLANE_OP_INTF_NETCONFIG: -	case DPLANE_OP_INTF_INSTALL: -	case DPLANE_OP_INTF_UPDATE: -	case DPLANE_OP_INTF_DELETE: -	case DPLANE_OP_TC_QDISC_INSTALL: -	case DPLANE_OP_TC_QDISC_UNINSTALL: -	case DPLANE_OP_TC_CLASS_ADD: -	case DPLANE_OP_TC_CLASS_DELETE: -	case DPLANE_OP_TC_CLASS_UPDATE: -	case DPLANE_OP_TC_FILTER_ADD: -	case DPLANE_OP_TC_FILTER_DELETE: -	case DPLANE_OP_TC_FILTER_UPDATE: -	case DPLANE_OP_STARTUP_STAGE: -		break; - -	} /* Switch */ +	}  }  /*  | 
