diff options
| author | Jafar Al-Gharaibeh <Jafaral@users.noreply.github.com> | 2021-07-27 15:09:29 -0500 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-27 15:09:29 -0500 | 
| commit | 213d980ff904a30565e1b5fcabafabe49143d35c (patch) | |
| tree | 4cb4bca4547575138df357487c701c3e6e3a37b3 /zebra/zebra_dplane.c | |
| parent | 42ac787226bc3b83aa75f6e2040b2808c72b23ec (diff) | |
| parent | 99ed46d964bc8634d5f73e48f2eae5feddac6fd6 (diff) | |
Merge pull request #9007 from donaldsharp/pbr_stuff
add ability to match on proto to pbr
Diffstat (limited to 'zebra/zebra_dplane.c')
| -rw-r--r-- | zebra/zebra_dplane.c | 16 | 
1 files changed, 16 insertions, 0 deletions
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c index 1217ed915a..2a30fc6eef 100644 --- a/zebra/zebra_dplane.c +++ b/zebra/zebra_dplane.c @@ -259,6 +259,7 @@ struct dplane_ctx_rule {  	uint8_t dsfield;  	struct prefix src_ip;  	struct prefix dst_ip; +	uint8_t ip_proto;  	char ifname[INTERFACE_NAMSIZ + 1];  }; @@ -1929,6 +1930,20 @@ uint32_t dplane_ctx_rule_get_old_fwmark(const struct zebra_dplane_ctx *ctx)  	return ctx->u.rule.old.fwmark;  } +uint8_t dplane_ctx_rule_get_ipproto(const struct zebra_dplane_ctx *ctx) +{ +	DPLANE_CTX_VALID(ctx); + +	return ctx->u.rule.new.ip_proto; +} + +uint8_t dplane_ctx_rule_get_old_ipproto(const struct zebra_dplane_ctx *ctx) +{ +	DPLANE_CTX_VALID(ctx); + +	return ctx->u.rule.old.ip_proto; +} +  uint8_t dplane_ctx_rule_get_dsfield(const struct zebra_dplane_ctx *ctx)  {  	DPLANE_CTX_VALID(ctx); @@ -2636,6 +2651,7 @@ static void dplane_ctx_rule_init_single(struct dplane_ctx_rule *dplane_rule,  	dplane_rule->filter_bm = rule->rule.filter.filter_bm;  	dplane_rule->fwmark = rule->rule.filter.fwmark;  	dplane_rule->dsfield = rule->rule.filter.dsfield; +	dplane_rule->ip_proto = rule->rule.filter.ip_proto;  	prefix_copy(&(dplane_rule->dst_ip), &rule->rule.filter.dst_ip);  	prefix_copy(&(dplane_rule->src_ip), &rule->rule.filter.src_ip);  	strlcpy(dplane_rule->ifname, rule->ifname, INTERFACE_NAMSIZ);  | 
