aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGanesh Goudar <ganeshgr@chelsio.com>2018-01-10 07:44:49 -0500
committerDavid S. Miller <davem@davemloft.net>2018-01-11 10:58:55 -0500
commitef0fd85aed795e3ccc4e005e07579bdca60b4574 (patch)
tree3b02e137ba19a270eba3da50b140747801ec06eb
parentc5e62a24278ab343819dc35fee3684e6b4ba755d (diff)
cxgb4: add data structures to support vxlan
Add data structures and macros to be used in vxlan offload. Original work by: Santosh Rastapur <santosh@chelsio.com> Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/t4_msg.h164
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/t4_regs.h17
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h27
3 files changed, 208 insertions, 0 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h b/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h
index 7e12f241145b..d0db4427b77e 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h
+++ b/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h
@@ -107,6 +107,7 @@ enum {
107 107
108 CPL_FW6_MSG = 0xE0, 108 CPL_FW6_MSG = 0xE0,
109 CPL_FW6_PLD = 0xE1, 109 CPL_FW6_PLD = 0xE1,
110 CPL_TX_TNL_LSO = 0xEC,
110 CPL_TX_PKT_LSO = 0xED, 111 CPL_TX_PKT_LSO = 0xED,
111 CPL_TX_PKT_XT = 0xEE, 112 CPL_TX_PKT_XT = 0xEE,
112 113
@@ -1479,6 +1480,169 @@ struct ulp_txpkt {
1479#define ULP_TXPKT_RO_V(x) ((x) << ULP_TXPKT_RO_S) 1480#define ULP_TXPKT_RO_V(x) ((x) << ULP_TXPKT_RO_S)
1480#define ULP_TXPKT_RO_F ULP_TXPKT_RO_V(1U) 1481#define ULP_TXPKT_RO_F ULP_TXPKT_RO_V(1U)
1481 1482
1483enum cpl_tx_tnl_lso_type {
1484 TX_TNL_TYPE_OPAQUE,
1485 TX_TNL_TYPE_NVGRE,
1486 TX_TNL_TYPE_VXLAN,
1487 TX_TNL_TYPE_GENEVE,
1488};
1489
1490struct cpl_tx_tnl_lso {
1491 __be32 op_to_IpIdSplitOut;
1492 __be16 IpIdOffsetOut;
1493 __be16 UdpLenSetOut_to_TnlHdrLen;
1494 __be64 r1;
1495 __be32 Flow_to_TcpHdrLen;
1496 __be16 IpIdOffset;
1497 __be16 IpIdSplit_to_Mss;
1498 __be32 TCPSeqOffset;
1499 __be32 EthLenOffset_Size;
1500 /* encapsulated CPL (TX_PKT_XT) follows here */
1501};
1502
1503#define CPL_TX_TNL_LSO_OPCODE_S 24
1504#define CPL_TX_TNL_LSO_OPCODE_M 0xff
1505#define CPL_TX_TNL_LSO_OPCODE_V(x) ((x) << CPL_TX_TNL_LSO_OPCODE_S)
1506#define CPL_TX_TNL_LSO_OPCODE_G(x) \
1507 (((x) >> CPL_TX_TNL_LSO_OPCODE_S) & CPL_TX_TNL_LSO_OPCODE_M)
1508
1509#define CPL_TX_TNL_LSO_FIRST_S 23
1510#define CPL_TX_TNL_LSO_FIRST_M 0x1
1511#define CPL_TX_TNL_LSO_FIRST_V(x) ((x) << CPL_TX_TNL_LSO_FIRST_S)
1512#define CPL_TX_TNL_LSO_FIRST_G(x) \
1513 (((x) >> CPL_TX_TNL_LSO_FIRST_S) & CPL_TX_TNL_LSO_FIRST_M)
1514#define CPL_TX_TNL_LSO_FIRST_F CPL_TX_TNL_LSO_FIRST_V(1U)
1515
1516#define CPL_TX_TNL_LSO_LAST_S 22
1517#define CPL_TX_TNL_LSO_LAST_M 0x1
1518#define CPL_TX_TNL_LSO_LAST_V(x) ((x) << CPL_TX_TNL_LSO_LAST_S)
1519#define CPL_TX_TNL_LSO_LAST_G(x) \
1520 (((x) >> CPL_TX_TNL_LSO_LAST_S) & CPL_TX_TNL_LSO_LAST_M)
1521#define CPL_TX_TNL_LSO_LAST_F CPL_TX_TNL_LSO_LAST_V(1U)
1522
1523#define CPL_TX_TNL_LSO_ETHHDRLENXOUT_S 21
1524#define CPL_TX_TNL_LSO_ETHHDRLENXOUT_M 0x1
1525#define CPL_TX_TNL_LSO_ETHHDRLENXOUT_V(x) \
1526 ((x) << CPL_TX_TNL_LSO_ETHHDRLENXOUT_S)
1527#define CPL_TX_TNL_LSO_ETHHDRLENXOUT_G(x) \
1528 (((x) >> CPL_TX_TNL_LSO_ETHHDRLENXOUT_S) & \
1529 CPL_TX_TNL_LSO_ETHHDRLENXOUT_M)
1530#define CPL_TX_TNL_LSO_ETHHDRLENXOUT_F CPL_TX_TNL_LSO_ETHHDRLENXOUT_V(1U)
1531
1532#define CPL_TX_TNL_LSO_IPV6OUT_S 20
1533#define CPL_TX_TNL_LSO_IPV6OUT_M 0x1
1534#define CPL_TX_TNL_LSO_IPV6OUT_V(x) ((x) << CPL_TX_TNL_LSO_IPV6OUT_S)
1535#define CPL_TX_TNL_LSO_IPV6OUT_G(x) \
1536 (((x) >> CPL_TX_TNL_LSO_IPV6OUT_S) & CPL_TX_TNL_LSO_IPV6OUT_M)
1537#define CPL_TX_TNL_LSO_IPV6OUT_F CPL_TX_TNL_LSO_IPV6OUT_V(1U)
1538
1539#define CPL_TX_TNL_LSO_ETHHDRLEN_S 16
1540#define CPL_TX_TNL_LSO_ETHHDRLEN_M 0xf
1541#define CPL_TX_TNL_LSO_ETHHDRLEN_V(x) ((x) << CPL_TX_TNL_LSO_ETHHDRLEN_S)
1542#define CPL_TX_TNL_LSO_ETHHDRLEN_G(x) \
1543 (((x) >> CPL_TX_TNL_LSO_ETHHDRLEN_S) & CPL_TX_TNL_LSO_ETHHDRLEN_M)
1544
1545#define CPL_TX_TNL_LSO_IPHDRLEN_S 4
1546#define CPL_TX_TNL_LSO_IPHDRLEN_M 0xfff
1547#define CPL_TX_TNL_LSO_IPHDRLEN_V(x) ((x) << CPL_TX_TNL_LSO_IPHDRLEN_S)
1548#define CPL_TX_TNL_LSO_IPHDRLEN_G(x) \
1549 (((x) >> CPL_TX_TNL_LSO_IPHDRLEN_S) & CPL_TX_TNL_LSO_IPHDRLEN_M)
1550
1551#define CPL_TX_TNL_LSO_TCPHDRLEN_S 0
1552#define CPL_TX_TNL_LSO_TCPHDRLEN_M 0xf
1553#define CPL_TX_TNL_LSO_TCPHDRLEN_V(x) ((x) << CPL_TX_TNL_LSO_TCPHDRLEN_S)
1554#define CPL_TX_TNL_LSO_TCPHDRLEN_G(x) \
1555 (((x) >> CPL_TX_TNL_LSO_TCPHDRLEN_S) & CPL_TX_TNL_LSO_TCPHDRLEN_M)
1556
1557#define CPL_TX_TNL_LSO_MSS_S 0
1558#define CPL_TX_TNL_LSO_MSS_M 0x3fff
1559#define CPL_TX_TNL_LSO_MSS_V(x) ((x) << CPL_TX_TNL_LSO_MSS_S)
1560#define CPL_TX_TNL_LSO_MSS_G(x) \
1561 (((x) >> CPL_TX_TNL_LSO_MSS_S) & CPL_TX_TNL_LSO_MSS_M)
1562
1563#define CPL_TX_TNL_LSO_SIZE_S 0
1564#define CPL_TX_TNL_LSO_SIZE_M 0xfffffff
1565#define CPL_TX_TNL_LSO_SIZE_V(x) ((x) << CPL_TX_TNL_LSO_SIZE_S)
1566#define CPL_TX_TNL_LSO_SIZE_G(x) \
1567 (((x) >> CPL_TX_TNL_LSO_SIZE_S) & CPL_TX_TNL_LSO_SIZE_M)
1568
1569#define CPL_TX_TNL_LSO_ETHHDRLENOUT_S 16
1570#define CPL_TX_TNL_LSO_ETHHDRLENOUT_M 0xf
1571#define CPL_TX_TNL_LSO_ETHHDRLENOUT_V(x) \
1572 ((x) << CPL_TX_TNL_LSO_ETHHDRLENOUT_S)
1573#define CPL_TX_TNL_LSO_ETHHDRLENOUT_G(x) \
1574 (((x) >> CPL_TX_TNL_LSO_ETHHDRLENOUT_S) & CPL_TX_TNL_LSO_ETHHDRLENOUT_M)
1575
1576#define CPL_TX_TNL_LSO_IPHDRLENOUT_S 4
1577#define CPL_TX_TNL_LSO_IPHDRLENOUT_M 0xfff
1578#define CPL_TX_TNL_LSO_IPHDRLENOUT_V(x) ((x) << CPL_TX_TNL_LSO_IPHDRLENOUT_S)
1579#define CPL_TX_TNL_LSO_IPHDRLENOUT_G(x) \
1580 (((x) >> CPL_TX_TNL_LSO_IPHDRLENOUT_S) & CPL_TX_TNL_LSO_IPHDRLENOUT_M)
1581
1582#define CPL_TX_TNL_LSO_IPHDRCHKOUT_S 3
1583#define CPL_TX_TNL_LSO_IPHDRCHKOUT_M 0x1
1584#define CPL_TX_TNL_LSO_IPHDRCHKOUT_V(x) ((x) << CPL_TX_TNL_LSO_IPHDRCHKOUT_S)
1585#define CPL_TX_TNL_LSO_IPHDRCHKOUT_G(x) \
1586 (((x) >> CPL_TX_TNL_LSO_IPHDRCHKOUT_S) & CPL_TX_TNL_LSO_IPHDRCHKOUT_M)
1587#define CPL_TX_TNL_LSO_IPHDRCHKOUT_F CPL_TX_TNL_LSO_IPHDRCHKOUT_V(1U)
1588
1589#define CPL_TX_TNL_LSO_IPLENSETOUT_S 2
1590#define CPL_TX_TNL_LSO_IPLENSETOUT_M 0x1
1591#define CPL_TX_TNL_LSO_IPLENSETOUT_V(x) ((x) << CPL_TX_TNL_LSO_IPLENSETOUT_S)
1592#define CPL_TX_TNL_LSO_IPLENSETOUT_G(x) \
1593 (((x) >> CPL_TX_TNL_LSO_IPLENSETOUT_S) & CPL_TX_TNL_LSO_IPLENSETOUT_M)
1594#define CPL_TX_TNL_LSO_IPLENSETOUT_F CPL_TX_TNL_LSO_IPLENSETOUT_V(1U)
1595
1596#define CPL_TX_TNL_LSO_IPIDINCOUT_S 1
1597#define CPL_TX_TNL_LSO_IPIDINCOUT_M 0x1
1598#define CPL_TX_TNL_LSO_IPIDINCOUT_V(x) ((x) << CPL_TX_TNL_LSO_IPIDINCOUT_S)
1599#define CPL_TX_TNL_LSO_IPIDINCOUT_G(x) \
1600 (((x) >> CPL_TX_TNL_LSO_IPIDINCOUT_S) & CPL_TX_TNL_LSO_IPIDINCOUT_M)
1601#define CPL_TX_TNL_LSO_IPIDINCOUT_F CPL_TX_TNL_LSO_IPIDINCOUT_V(1U)
1602
1603#define CPL_TX_TNL_LSO_UDPCHKCLROUT_S 14
1604#define CPL_TX_TNL_LSO_UDPCHKCLROUT_M 0x1
1605#define CPL_TX_TNL_LSO_UDPCHKCLROUT_V(x) \
1606 ((x) << CPL_TX_TNL_LSO_UDPCHKCLROUT_S)
1607#define CPL_TX_TNL_LSO_UDPCHKCLROUT_G(x) \
1608 (((x) >> CPL_TX_TNL_LSO_UDPCHKCLROUT_S) & \
1609 CPL_TX_TNL_LSO_UDPCHKCLROUT_M)
1610#define CPL_TX_TNL_LSO_UDPCHKCLROUT_F CPL_TX_TNL_LSO_UDPCHKCLROUT_V(1U)
1611
1612#define CPL_TX_TNL_LSO_UDPLENSETOUT_S 15
1613#define CPL_TX_TNL_LSO_UDPLENSETOUT_M 0x1
1614#define CPL_TX_TNL_LSO_UDPLENSETOUT_V(x) \
1615 ((x) << CPL_TX_TNL_LSO_UDPLENSETOUT_S)
1616#define CPL_TX_TNL_LSO_UDPLENSETOUT_G(x) \
1617 (((x) >> CPL_TX_TNL_LSO_UDPLENSETOUT_S) & \
1618 CPL_TX_TNL_LSO_UDPLENSETOUT_M)
1619#define CPL_TX_TNL_LSO_UDPLENSETOUT_F CPL_TX_TNL_LSO_UDPLENSETOUT_V(1U)
1620
1621#define CPL_TX_TNL_LSO_TNLTYPE_S 12
1622#define CPL_TX_TNL_LSO_TNLTYPE_M 0x3
1623#define CPL_TX_TNL_LSO_TNLTYPE_V(x) ((x) << CPL_TX_TNL_LSO_TNLTYPE_S)
1624#define CPL_TX_TNL_LSO_TNLTYPE_G(x) \
1625 (((x) >> CPL_TX_TNL_LSO_TNLTYPE_S) & CPL_TX_TNL_LSO_TNLTYPE_M)
1626
1627#define S_CPL_TX_TNL_LSO_ETHHDRLEN 16
1628#define M_CPL_TX_TNL_LSO_ETHHDRLEN 0xf
1629#define V_CPL_TX_TNL_LSO_ETHHDRLEN(x) ((x) << S_CPL_TX_TNL_LSO_ETHHDRLEN)
1630#define G_CPL_TX_TNL_LSO_ETHHDRLEN(x) \
1631 (((x) >> S_CPL_TX_TNL_LSO_ETHHDRLEN) & M_CPL_TX_TNL_LSO_ETHHDRLEN)
1632
1633#define CPL_TX_TNL_LSO_TNLHDRLEN_S 0
1634#define CPL_TX_TNL_LSO_TNLHDRLEN_M 0xfff
1635#define CPL_TX_TNL_LSO_TNLHDRLEN_V(x) ((x) << CPL_TX_TNL_LSO_TNLHDRLEN_S)
1636#define CPL_TX_TNL_LSO_TNLHDRLEN_G(x) \
1637 (((x) >> CPL_TX_TNL_LSO_TNLHDRLEN_S) & CPL_TX_TNL_LSO_TNLHDRLEN_M)
1638
1639#define CPL_TX_TNL_LSO_IPV6_S 20
1640#define CPL_TX_TNL_LSO_IPV6_M 0x1
1641#define CPL_TX_TNL_LSO_IPV6_V(x) ((x) << CPL_TX_TNL_LSO_IPV6_S)
1642#define CPL_TX_TNL_LSO_IPV6_G(x) \
1643 (((x) >> CPL_TX_TNL_LSO_IPV6_S) & CPL_TX_TNL_LSO_IPV6_M)
1644#define CPL_TX_TNL_LSO_IPV6_F CPL_TX_TNL_LSO_IPV6_V(1U)
1645
1482#define ULP_TX_SC_MORE_S 23 1646#define ULP_TX_SC_MORE_S 23
1483#define ULP_TX_SC_MORE_V(x) ((x) << ULP_TX_SC_MORE_S) 1647#define ULP_TX_SC_MORE_V(x) ((x) << ULP_TX_SC_MORE_S)
1484#define ULP_TX_SC_MORE_F ULP_TX_SC_MORE_V(1U) 1648#define ULP_TX_SC_MORE_F ULP_TX_SC_MORE_V(1U)
diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
index 863bc29153d9..d9c06d6dc7b2 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
+++ b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h
@@ -2511,6 +2511,17 @@
2511#define MPS_RX_MAC_BG_PG_CNT0_A 0x11208 2511#define MPS_RX_MAC_BG_PG_CNT0_A 0x11208
2512#define MPS_RX_LPBK_BG_PG_CNT0_A 0x11218 2512#define MPS_RX_LPBK_BG_PG_CNT0_A 0x11218
2513 2513
2514#define MPS_RX_VXLAN_TYPE_A 0x11234
2515
2516#define VXLAN_EN_S 16
2517#define VXLAN_EN_V(x) ((x) << VXLAN_EN_S)
2518#define VXLAN_EN_F VXLAN_EN_V(1U)
2519
2520#define VXLAN_S 0
2521#define VXLAN_M 0xffffU
2522#define VXLAN_V(x) ((x) << VXLAN_S)
2523#define VXLAN_G(x) (((x) >> VXLAN_S) & VXLAN_M)
2524
2514#define MPS_CLS_TCAM_Y_L_A 0xf000 2525#define MPS_CLS_TCAM_Y_L_A 0xf000
2515#define MPS_CLS_TCAM_DATA0_A 0xf000 2526#define MPS_CLS_TCAM_DATA0_A 0xf000
2516#define MPS_CLS_TCAM_DATA1_A 0xf004 2527#define MPS_CLS_TCAM_DATA1_A 0xf004
@@ -2537,8 +2548,14 @@
2537 2548
2538#define DATAPORTNUM_S 12 2549#define DATAPORTNUM_S 12
2539#define DATAPORTNUM_M 0xfU 2550#define DATAPORTNUM_M 0xfU
2551#define DATAPORTNUM_V(x) ((x) << DATAPORTNUM_S)
2540#define DATAPORTNUM_G(x) (((x) >> DATAPORTNUM_S) & DATAPORTNUM_M) 2552#define DATAPORTNUM_G(x) (((x) >> DATAPORTNUM_S) & DATAPORTNUM_M)
2541 2553
2554#define DATALKPTYPE_S 10
2555#define DATALKPTYPE_M 0x3U
2556#define DATALKPTYPE_V(x) ((x) << DATALKPTYPE_S)
2557#define DATALKPTYPE_G(x) (((x) >> DATALKPTYPE_S) & DATALKPTYPE_M)
2558
2542#define DATADIPHIT_S 8 2559#define DATADIPHIT_S 8
2543#define DATADIPHIT_V(x) ((x) << DATADIPHIT_S) 2560#define DATADIPHIT_V(x) ((x) << DATADIPHIT_S)
2544#define DATADIPHIT_F DATADIPHIT_V(1U) 2561#define DATADIPHIT_F DATADIPHIT_V(1U)
diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h b/drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h
index 427f252a9087..f3310d5b3c4c 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h
+++ b/drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h
@@ -2060,6 +2060,7 @@ struct fw_vi_cmd {
2060#define FW_VI_MAC_ADD_MAC 0x3FF 2060#define FW_VI_MAC_ADD_MAC 0x3FF
2061#define FW_VI_MAC_ADD_PERSIST_MAC 0x3FE 2061#define FW_VI_MAC_ADD_PERSIST_MAC 0x3FE
2062#define FW_VI_MAC_MAC_BASED_FREE 0x3FD 2062#define FW_VI_MAC_MAC_BASED_FREE 0x3FD
2063#define FW_VI_MAC_ID_BASED_FREE 0x3FC
2063#define FW_CLS_TCAM_NUM_ENTRIES 336 2064#define FW_CLS_TCAM_NUM_ENTRIES 336
2064 2065
2065enum fw_vi_mac_smac { 2066enum fw_vi_mac_smac {
@@ -2076,6 +2077,13 @@ enum fw_vi_mac_result {
2076 FW_VI_MAC_R_F_ACL_CHECK 2077 FW_VI_MAC_R_F_ACL_CHECK
2077}; 2078};
2078 2079
2080enum fw_vi_mac_entry_types {
2081 FW_VI_MAC_TYPE_EXACTMAC,
2082 FW_VI_MAC_TYPE_HASHVEC,
2083 FW_VI_MAC_TYPE_RAW,
2084 FW_VI_MAC_TYPE_EXACTMAC_VNI,
2085};
2086
2079struct fw_vi_mac_cmd { 2087struct fw_vi_mac_cmd {
2080 __be32 op_to_viid; 2088 __be32 op_to_viid;
2081 __be32 freemacs_to_len16; 2089 __be32 freemacs_to_len16;
@@ -2087,6 +2095,13 @@ struct fw_vi_mac_cmd {
2087 struct fw_vi_mac_hash { 2095 struct fw_vi_mac_hash {
2088 __be64 hashvec; 2096 __be64 hashvec;
2089 } hash; 2097 } hash;
2098 struct fw_vi_mac_raw {
2099 __be32 raw_idx_pkd;
2100 __be32 data0_pkd;
2101 __be32 data1[2];
2102 __be64 data0m_pkd;
2103 __be32 data1m[2];
2104 } raw;
2090 } u; 2105 } u;
2091}; 2106};
2092 2107
@@ -2096,6 +2111,12 @@ struct fw_vi_mac_cmd {
2096#define FW_VI_MAC_CMD_FREEMACS_S 31 2111#define FW_VI_MAC_CMD_FREEMACS_S 31
2097#define FW_VI_MAC_CMD_FREEMACS_V(x) ((x) << FW_VI_MAC_CMD_FREEMACS_S) 2112#define FW_VI_MAC_CMD_FREEMACS_V(x) ((x) << FW_VI_MAC_CMD_FREEMACS_S)
2098 2113
2114#define FW_VI_MAC_CMD_ENTRY_TYPE_S 23
2115#define FW_VI_MAC_CMD_ENTRY_TYPE_M 0x7
2116#define FW_VI_MAC_CMD_ENTRY_TYPE_V(x) ((x) << FW_VI_MAC_CMD_ENTRY_TYPE_S)
2117#define FW_VI_MAC_CMD_ENTRY_TYPE_G(x) \
2118 (((x) >> FW_VI_MAC_CMD_ENTRY_TYPE_S) & FW_VI_MAC_CMD_ENTRY_TYPE_M)
2119
2099#define FW_VI_MAC_CMD_HASHVECEN_S 23 2120#define FW_VI_MAC_CMD_HASHVECEN_S 23
2100#define FW_VI_MAC_CMD_HASHVECEN_V(x) ((x) << FW_VI_MAC_CMD_HASHVECEN_S) 2121#define FW_VI_MAC_CMD_HASHVECEN_V(x) ((x) << FW_VI_MAC_CMD_HASHVECEN_S)
2101#define FW_VI_MAC_CMD_HASHVECEN_F FW_VI_MAC_CMD_HASHVECEN_V(1U) 2122#define FW_VI_MAC_CMD_HASHVECEN_F FW_VI_MAC_CMD_HASHVECEN_V(1U)
@@ -2122,6 +2143,12 @@ struct fw_vi_mac_cmd {
2122#define FW_VI_MAC_CMD_IDX_G(x) \ 2143#define FW_VI_MAC_CMD_IDX_G(x) \
2123 (((x) >> FW_VI_MAC_CMD_IDX_S) & FW_VI_MAC_CMD_IDX_M) 2144 (((x) >> FW_VI_MAC_CMD_IDX_S) & FW_VI_MAC_CMD_IDX_M)
2124 2145
2146#define FW_VI_MAC_CMD_RAW_IDX_S 16
2147#define FW_VI_MAC_CMD_RAW_IDX_M 0xffff
2148#define FW_VI_MAC_CMD_RAW_IDX_V(x) ((x) << FW_VI_MAC_CMD_RAW_IDX_S)
2149#define FW_VI_MAC_CMD_RAW_IDX_G(x) \
2150 (((x) >> FW_VI_MAC_CMD_RAW_IDX_S) & FW_VI_MAC_CMD_RAW_IDX_M)
2151
2125#define FW_RXMODE_MTU_NO_CHG 65535 2152#define FW_RXMODE_MTU_NO_CHG 65535
2126 2153
2127struct fw_vi_rxmode_cmd { 2154struct fw_vi_rxmode_cmd {