net/i40evf: add multicast MAC address filtering
[dpdk.git] / drivers / net / i40e / i40e_ethdev.h
index deefb11..151ed1a 100644 (file)
@@ -1005,6 +1005,9 @@ struct i40e_vf {
        uint16_t promisc_flags; /* Promiscuous setting */
        uint32_t vlan[I40E_VFTA_SIZE]; /* VLAN bit map */
 
+       struct ether_addr mc_addrs[I40E_NUM_MACADDR_MAX]; /* Multicast addrs */
+       uint16_t mc_addrs_num;   /* Multicast mac addresses number */
+
        /* Event from pf */
        bool dev_closed;
        bool link_up;
@@ -1292,13 +1295,17 @@ i40e_align_floor(int n)
 }
 
 static inline uint16_t
-i40e_calc_itr_interval(int16_t interval, bool is_pf)
+i40e_calc_itr_interval(int16_t interval, bool is_pf, bool is_multi_drv)
 {
        if (interval < 0 || interval > I40E_QUEUE_ITR_INTERVAL_MAX) {
-               if (is_pf)
-                       interval = I40E_QUEUE_ITR_INTERVAL_DEFAULT;
-               else
-                       interval = I40E_VF_QUEUE_ITR_INTERVAL_DEFAULT;
+               if (is_multi_drv) {
+                       interval = I40E_QUEUE_ITR_INTERVAL_MAX;
+               } else {
+                       if (is_pf)
+                               interval = I40E_QUEUE_ITR_INTERVAL_DEFAULT;
+                       else
+                               interval = I40E_VF_QUEUE_ITR_INTERVAL_DEFAULT;
+               }
        }
 
        /* Convert to hardware count, as writing each 1 represents 2 us */