forked from Mirror/frr
Merge pull request #16931 from sri-mohan1/srib-24-frr-a
bgpd: changes for code maintainability
This commit is contained in:
commit
f32e8ec202
|
@ -305,14 +305,14 @@ int bgp_flowspec_op_decode(enum bgp_flowspec_util_nlri_t type,
|
||||||
break;
|
break;
|
||||||
mval->value = value;
|
mval->value = value;
|
||||||
if (op[5] == 1)
|
if (op[5] == 1)
|
||||||
mval->compare_operator |=
|
SET_FLAG(mval->compare_operator,
|
||||||
OPERATOR_COMPARE_LESS_THAN;
|
OPERATOR_COMPARE_LESS_THAN);
|
||||||
if (op[6] == 1)
|
if (op[6] == 1)
|
||||||
mval->compare_operator |=
|
SET_FLAG(mval->compare_operator,
|
||||||
OPERATOR_COMPARE_GREATER_THAN;
|
OPERATOR_COMPARE_GREATER_THAN);
|
||||||
if (op[7] == 1)
|
if (op[7] == 1)
|
||||||
mval->compare_operator |=
|
SET_FLAG(mval->compare_operator,
|
||||||
OPERATOR_COMPARE_EQUAL_TO;
|
OPERATOR_COMPARE_EQUAL_TO);
|
||||||
if (op[1] == 1)
|
if (op[1] == 1)
|
||||||
mval->unary_operator = OPERATOR_UNARY_AND;
|
mval->unary_operator = OPERATOR_UNARY_AND;
|
||||||
else
|
else
|
||||||
|
@ -413,16 +413,16 @@ int bgp_flowspec_bitmask_decode(enum bgp_flowspec_util_nlri_t type,
|
||||||
mval->value = value;
|
mval->value = value;
|
||||||
if (op[6] == 1) {
|
if (op[6] == 1) {
|
||||||
/* different from */
|
/* different from */
|
||||||
mval->compare_operator |=
|
SET_FLAG(mval->compare_operator,
|
||||||
OPERATOR_COMPARE_LESS_THAN;
|
OPERATOR_COMPARE_LESS_THAN);
|
||||||
mval->compare_operator |=
|
SET_FLAG(mval->compare_operator,
|
||||||
OPERATOR_COMPARE_GREATER_THAN;
|
OPERATOR_COMPARE_GREATER_THAN);
|
||||||
} else
|
} else
|
||||||
mval->compare_operator |=
|
SET_FLAG(mval->compare_operator,
|
||||||
OPERATOR_COMPARE_EQUAL_TO;
|
OPERATOR_COMPARE_EQUAL_TO);
|
||||||
if (op[7] == 1)
|
if (op[7] == 1)
|
||||||
mval->compare_operator |=
|
SET_FLAG(mval->compare_operator,
|
||||||
OPERATOR_COMPARE_EXACT_MATCH;
|
OPERATOR_COMPARE_EXACT_MATCH);
|
||||||
if (op[1] == 1)
|
if (op[1] == 1)
|
||||||
mval->unary_operator =
|
mval->unary_operator =
|
||||||
OPERATOR_UNARY_AND;
|
OPERATOR_UNARY_AND;
|
||||||
|
@ -467,11 +467,11 @@ int bgp_flowspec_match_rules_fill(uint8_t *nlri_content, int len,
|
||||||
case FLOWSPEC_SRC_PREFIX:
|
case FLOWSPEC_SRC_PREFIX:
|
||||||
bitmask = 0;
|
bitmask = 0;
|
||||||
if (type == FLOWSPEC_DEST_PREFIX) {
|
if (type == FLOWSPEC_DEST_PREFIX) {
|
||||||
bitmask |= PREFIX_DST_PRESENT;
|
SET_FLAG(bitmask, PREFIX_DST_PRESENT);
|
||||||
prefix = &bpem->dst_prefix;
|
prefix = &bpem->dst_prefix;
|
||||||
prefix_offset = &bpem->dst_prefix_offset;
|
prefix_offset = &bpem->dst_prefix_offset;
|
||||||
} else {
|
} else {
|
||||||
bitmask |= PREFIX_SRC_PRESENT;
|
SET_FLAG(bitmask, PREFIX_SRC_PRESENT);
|
||||||
prefix = &bpem->src_prefix;
|
prefix = &bpem->src_prefix;
|
||||||
prefix_offset = &bpem->src_prefix_offset;
|
prefix_offset = &bpem->src_prefix_offset;
|
||||||
}
|
}
|
||||||
|
@ -491,14 +491,16 @@ int bgp_flowspec_match_rules_fill(uint8_t *nlri_content, int len,
|
||||||
*/
|
*/
|
||||||
if (prefix->family == AF_INET
|
if (prefix->family == AF_INET
|
||||||
&& prefix->u.prefix4.s_addr == INADDR_ANY)
|
&& prefix->u.prefix4.s_addr == INADDR_ANY)
|
||||||
bpem->match_bitmask_iprule |= bitmask;
|
SET_FLAG(bpem->match_bitmask_iprule,
|
||||||
|
bitmask);
|
||||||
else if (prefix->family == AF_INET6
|
else if (prefix->family == AF_INET6
|
||||||
&& !memcmp(&prefix->u.prefix6,
|
&& !memcmp(&prefix->u.prefix6,
|
||||||
&in6addr_any,
|
&in6addr_any,
|
||||||
sizeof(struct in6_addr)))
|
sizeof(struct in6_addr)))
|
||||||
bpem->match_bitmask_iprule |= bitmask;
|
SET_FLAG(bpem->match_bitmask_iprule,
|
||||||
|
bitmask);
|
||||||
else
|
else
|
||||||
bpem->match_bitmask |= bitmask;
|
SET_FLAG(bpem->match_bitmask, bitmask);
|
||||||
}
|
}
|
||||||
offset += ret;
|
offset += ret;
|
||||||
break;
|
break;
|
||||||
|
@ -640,8 +642,8 @@ int bgp_flowspec_match_rules_fill(uint8_t *nlri_content, int len,
|
||||||
|| bpem->match_dst_port_num || bpem->match_protocol_num
|
|| bpem->match_dst_port_num || bpem->match_protocol_num
|
||||||
|| bpem->match_bitmask || bpem->match_flowlabel_num)
|
|| bpem->match_bitmask || bpem->match_flowlabel_num)
|
||||||
bpem->type = BGP_PBR_IPSET;
|
bpem->type = BGP_PBR_IPSET;
|
||||||
else if ((bpem->match_bitmask_iprule & PREFIX_SRC_PRESENT) ||
|
else if (CHECK_FLAG(bpem->match_bitmask_iprule, PREFIX_SRC_PRESENT) ||
|
||||||
(bpem->match_bitmask_iprule & PREFIX_DST_PRESENT))
|
CHECK_FLAG(bpem->match_bitmask_iprule, PREFIX_DST_PRESENT))
|
||||||
/* the extracted policy rule may not need an
|
/* the extracted policy rule may not need an
|
||||||
* iptables/ipset filtering. check this may not be
|
* iptables/ipset filtering. check this may not be
|
||||||
* a standard ip rule : permit any to any ( eg)
|
* a standard ip rule : permit any to any ( eg)
|
||||||
|
|
Loading…
Reference in a new issue