#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct TrafficMirroringRule
{
pub ruleType: u8,
pub destinationPool: u8,
pub poolMask: u64,
pub vlanMask: u64,
pub vlanIds: Array64<u16>,
}
impl TrafficMirroringRule
{
#[inline(always)]
pub fn new(&self, ruleType: u8, destinationPool: u8, poolMask: u64, vlanMask: u64, vlanIds: [u16; 64]) -> Self
{
TrafficMirroringRule
{
ruleType: ruleType,
destinationPool: destinationPool,
poolMask: poolMask,
vlanMask: vlanMask,
vlanIds: Array64(vlanIds),
}
}
#[inline(always)]
pub fn as_rte_eth_mirror_conf(&self) -> rte_eth_mirror_conf
{
rte_eth_mirror_conf
{
rule_type: self.ruleType,
dst_pool: self.destinationPool,
pool_mask: self.poolMask,
vlan: rte_eth_vlan_mirror
{
vlan_mask: self.vlanMask,
vlan_id: self.vlanIds.0,
}
}
}
}