diff options
| author | Donald Sharp <sharpd@nvidia.com> | 2021-04-23 21:31:11 -0400 | 
|---|---|---|
| committer | Donald Sharp <sharpd@nvidia.com> | 2021-05-12 07:33:08 -0400 | 
| commit | db1fcc98dadd679de004c3468b3af8494a122e60 (patch) | |
| tree | f11a6b508a9a26c4c75280aea4b3c6583732f41e | |
| parent | ebd1a47c95dfc3b769c67db3c4872be52c898ba6 (diff) | |
bgpd: reduce cut-n-paste of bgp_zebra_announce_default for install
This bit of code was cut-n-pasted all over the place:
               if (!bpa->installed && !bpa->install_in_progress) {
                       bgp_send_pbr_rule_action(bpa, NULL, true);
                       bgp_zebra_announce_default(bgp, nh,
                                                  bpa->afi,
                                                  bpa->table_id, true);
               }
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
| -rw-r--r-- | bgpd/bgp_pbr.c | 24 | 
1 files changed, 13 insertions, 11 deletions
diff --git a/bgpd/bgp_pbr.c b/bgpd/bgp_pbr.c index e2e094d0bd..27d868afa1 100644 --- a/bgpd/bgp_pbr.c +++ b/bgpd/bgp_pbr.c @@ -1082,6 +1082,15 @@ static void bgp_pbr_bpa_remove(struct bgp_pbr_action *bpa)  	}  } +static void bgp_pbr_bpa_add(struct bgp_pbr_action *bpa) +{ +	if (!bpa->installed && !bpa->install_in_progress) { +		bgp_send_pbr_rule_action(bpa, NULL, true); +		bgp_zebra_announce_default(bpa->bgp, &bpa->nh, bpa->afi, +					   bpa->table_id, true); +	} +} +  static void bgp_pbr_action_free(void *arg)  {  	struct bgp_pbr_action *bpa = arg; @@ -2356,12 +2365,9 @@ static void bgp_pbr_policyroute_add_to_zebra_unit(struct bgp *bgp,  				return;  			}  		} -		if (!bpa->installed && !bpa->install_in_progress) { -			bgp_send_pbr_rule_action(bpa, NULL, true); -			bgp_zebra_announce_default(bgp, nh, -						   bpa->afi, -						   bpa->table_id, true); -		} + +		bgp_pbr_bpa_add(bpa); +  		/* ip rule add */  		if (bpr && !bpr->installed)  			bgp_send_pbr_rule_action(bpa, bpr, true); @@ -2529,11 +2535,7 @@ static void bgp_pbr_policyroute_add_to_zebra_unit(struct bgp *bgp,  	 * it will be suppressed subsequently  	 */  	/* ip rule add */ -	if (!bpa->installed && !bpa->install_in_progress) { -		bgp_send_pbr_rule_action(bpa, NULL, true); -		bgp_zebra_announce_default(bgp, nh, -					   bpa->afi, bpa->table_id, true); -	} +	bgp_pbr_bpa_add(bpa);  	/* ipset create */  	if (!bpm->installed)  | 
