diff options
author | Ganesh Goudar <ganeshgr@chelsio.com> | 2018-01-10 07:44:49 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-01-11 10:58:55 -0500 |
commit | ef0fd85aed795e3ccc4e005e07579bdca60b4574 (patch) | |
tree | 3b02e137ba19a270eba3da50b140747801ec06eb | |
parent | c5e62a24278ab343819dc35fee3684e6b4ba755d (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.h | 164 | ||||
-rw-r--r-- | drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 17 | ||||
-rw-r--r-- | drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h | 27 |
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 | ||
1483 | enum 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 | |||
1490 | struct 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 | ||
2065 | enum fw_vi_mac_smac { | 2066 | enum 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 | ||
2080 | enum 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 | |||
2079 | struct fw_vi_mac_cmd { | 2087 | struct 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 | ||
2127 | struct fw_vi_rxmode_cmd { | 2154 | struct fw_vi_rxmode_cmd { |