Check if the application is trying to create filters using
broadcast and multicast MAC address and reject it.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Rahul Gupta <rahul.gupta@broadcom.com>
Reviewed-by: Santoshkumar Karanappa Rastapur <santosh.rastapur@broadcom.com>
}
if (rte_is_broadcast_ether_addr(ð_mask->dst)) {
}
if (rte_is_broadcast_ether_addr(ð_mask->dst)) {
+ if (!rte_is_unicast_ether_addr(ð_spec->dst)) {
+ rte_flow_error_set(error,
+ EINVAL,
+ RTE_FLOW_ERROR_TYPE_ITEM,
+ item,
+ "DMAC is invalid");
+ return -rte_errno;
+ }
rte_memcpy(filter->dst_macaddr,
ð_spec->dst, RTE_ETHER_ADDR_LEN);
en |= use_ntuple ?
rte_memcpy(filter->dst_macaddr,
ð_spec->dst, RTE_ETHER_ADDR_LEN);
en |= use_ntuple ?
}
if (rte_is_broadcast_ether_addr(ð_mask->src)) {
}
if (rte_is_broadcast_ether_addr(ð_mask->src)) {
+ if (!rte_is_unicast_ether_addr(ð_spec->src)) {
+ rte_flow_error_set(error,
+ EINVAL,
+ RTE_FLOW_ERROR_TYPE_ITEM,
+ item,
+ "SMAC is invalid");
+ return -rte_errno;
+ }
rte_memcpy(filter->src_macaddr,
ð_spec->src, RTE_ETHER_ADDR_LEN);
en |= use_ntuple ?
rte_memcpy(filter->src_macaddr,
ð_spec->src, RTE_ETHER_ADDR_LEN);
en |= use_ntuple ?