net: txgbe: Implement vlan add and remove ops
authorMengyuan Lou <mengyuanlou@net-swift.com>
Tue, 30 May 2023 02:26:32 +0000 (10:26 +0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 1 Jun 2023 06:02:26 +0000 (23:02 -0700)
txgbe add ndo_vlan_rx_add_vid and ndo_vlan_rx_kill_vid.

Signed-off-by: Mengyuan Lou <mengyuanlou@net-swift.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
drivers/net/ethernet/wangxun/txgbe/txgbe_type.h

index bcc9c29..0f0d9fa 100644 (file)
@@ -258,6 +258,7 @@ static void txgbe_reset(struct wx *wx)
        if (err != 0)
                wx_err(wx, "Hardware Error: %d\n", err);
 
+       wx_start_hw(wx);
        /* do not flush user set addresses */
        memcpy(old_addr, &wx->mac_table[0].addr, netdev->addr_len);
        wx_flush_sw_mac_table(wx);
@@ -330,6 +331,7 @@ static int txgbe_sw_init(struct wx *wx)
        wx->mac.max_tx_queues = TXGBE_SP_MAX_TX_QUEUES;
        wx->mac.max_rx_queues = TXGBE_SP_MAX_RX_QUEUES;
        wx->mac.mcft_size = TXGBE_SP_MC_TBL_SIZE;
+       wx->mac.vft_size = TXGBE_SP_VFT_TBL_SIZE;
        wx->mac.rx_pb_size = TXGBE_SP_RX_PB_SIZE;
        wx->mac.tx_pb_size = TXGBE_SP_TDB_PB_SZ;
 
@@ -495,6 +497,8 @@ static const struct net_device_ops txgbe_netdev_ops = {
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_set_mac_address    = wx_set_mac,
        .ndo_get_stats64        = wx_get_stats64,
+       .ndo_vlan_rx_add_vid    = wx_vlan_rx_add_vid,
+       .ndo_vlan_rx_kill_vid   = wx_vlan_rx_kill_vid,
 };
 
 /**
index 63a1c73..0329723 100644 (file)
@@ -77,6 +77,7 @@
 #define TXGBE_SP_MAX_RX_QUEUES  128
 #define TXGBE_SP_RAR_ENTRIES    128
 #define TXGBE_SP_MC_TBL_SIZE    128
+#define TXGBE_SP_VFT_TBL_SIZE   128
 #define TXGBE_SP_RX_PB_SIZE     512
 #define TXGBE_SP_TDB_PB_SZ      (160 * 1024) /* 160KB Packet Buffer */