net/nfp: handle packets with length 0 as usual ones
[dpdk.git] / drivers / net / qede / base / ecore_hsi_common.h
index f934e68..5c2a08f 100644 (file)
@@ -836,7 +836,12 @@ struct core_rx_fast_path_cqe {
        __le16 packet_length /* Total packet length (from the parser) */;
        __le16 vlan /* 802.1q VLAN tag */;
        struct core_rx_cqe_opaque_data opaque_data /* Opaque Data */;
-       __le32 reserved[4];
+/* bit- map: each bit represents a specific error. errors indications are
+ * provided by the cracker. see spec for detailed description
+ */
+       struct parsing_err_flags err_flags;
+       __le16 reserved0;
+       __le32 reserved1[3];
 };
 
 /*
@@ -851,7 +856,8 @@ struct core_rx_gsi_offload_cqe {
        __le16 vlan /* 802.1q VLAN tag */;
        __le32 src_mac_addrhi /* hi 4 bytes source mac address */;
        __le16 src_mac_addrlo /* lo 2 bytes of source mac address */;
-       u8 reserved1[2];
+/* These are the lower 16 bit of QP id in RoCE BTH header */
+       __le16 qp_id;
        __le32 gid_dst[4] /* Gid destination address */;
 };
 
@@ -993,11 +999,9 @@ struct core_tx_bd {
  */
 #define CORE_TX_BD_L4_HDR_OFFSET_W_MASK  0x3FFF
 #define CORE_TX_BD_L4_HDR_OFFSET_W_SHIFT 0
-/* Packet destination - Network, LB (use enum core_tx_dest) */
-#define CORE_TX_BD_TX_DST_MASK           0x1
+/* Packet destination - Network, Loopback or Drop (use enum core_tx_dest) */
+#define CORE_TX_BD_TX_DST_MASK           0x3
 #define CORE_TX_BD_TX_DST_SHIFT          14
-#define CORE_TX_BD_RESERVED_MASK         0x1
-#define CORE_TX_BD_RESERVED_SHIFT        15
 };
 
 
@@ -1006,8 +1010,10 @@ struct core_tx_bd {
  * Light L2 TX Destination
  */
 enum core_tx_dest {
-       CORE_TX_DEST_NW /* Light L2 TX Destination to the Network */,
-       CORE_TX_DEST_LB /* Light L2 TX Destination to the Loopback */,
+       CORE_TX_DEST_NW /* TX Destination to the Network */,
+       CORE_TX_DEST_LB /* TX Destination to the Loopback */,
+       CORE_TX_DEST_RESERVED,
+       CORE_TX_DEST_DROP /* TX Drop */,
        MAX_CORE_TX_DEST
 };
 
@@ -1042,13 +1048,13 @@ struct core_tx_stop_ramrod_data {
 /*
  * Enum flag for what type of dcb data to update
  */
-enum dcb_dhcp_update_flag {
+enum dcb_dscp_update_mode {
 /* use when no change should be done to dcb data */
-       DONT_UPDATE_DCB_DHCP,
+       DONT_UPDATE_DCB_DSCP,
        UPDATE_DCB /* use to update only l2 (vlan) priority */,
-       UPDATE_DSCP /* use to update only l3 dhcp */,
-       UPDATE_DCB_DSCP /* update vlan pri and dhcp */,
-       MAX_DCB_DHCP_UPDATE_FLAG
+       UPDATE_DSCP /* use to update only l3 dscp */,
+       UPDATE_DCB_DSCP /* update vlan pri and dscp */,
+       MAX_DCB_DSCP_UPDATE_FLAG
 };
 
 
@@ -1232,6 +1238,10 @@ enum iwarp_ll2_tx_queues {
        IWARP_LL2_IN_ORDER_TX_QUEUE = 1,
 /* LL2 queue for unaligned packets sent aligned by the driver */
        IWARP_LL2_ALIGNED_TX_QUEUE,
+/* LL2 queue for unaligned packets sent aligned and was right-trimmed by the
+ * driver
+ */
+       IWARP_LL2_ALIGNED_RIGHT_TRIMMED_TX_QUEUE,
        IWARP_LL2_ERROR /* Error indication */,
        MAX_IWARP_LL2_TX_QUEUES
 };
@@ -1328,20 +1338,14 @@ struct pf_start_tunnel_config {
  * FW will use a default port
  */
        u8 set_geneve_udp_port_flg;
-       u8 tx_enable_vxlan /* If set, enable VXLAN tunnel in TX path. */;
-/* If set, enable l2 GENEVE tunnel in TX path. */
-       u8 tx_enable_l2geneve;
-/* If set, enable IP GENEVE tunnel in TX path. */
-       u8 tx_enable_ipgeneve;
-       u8 tx_enable_l2gre /* If set, enable l2 GRE tunnel in TX path. */;
-       u8 tx_enable_ipgre /* If set, enable IP GRE tunnel in TX path. */;
-       u8 tunnel_clss_vxlan /* Classification scheme for VXLAN tunnel. */;
-/* Classification scheme for l2 GENEVE tunnel. */
+       u8 tunnel_clss_vxlan /* Rx classification scheme for VXLAN tunnel. */;
+/* Rx classification scheme for l2 GENEVE tunnel. */
        u8 tunnel_clss_l2geneve;
-/* Classification scheme for ip GENEVE tunnel. */
+/* Rx classification scheme for ip GENEVE tunnel. */
        u8 tunnel_clss_ipgeneve;
-       u8 tunnel_clss_l2gre /* Classification scheme for l2 GRE tunnel. */;
-       u8 tunnel_clss_ipgre /* Classification scheme for ip GRE tunnel. */;
+       u8 tunnel_clss_l2gre /* Rx classification scheme for l2 GRE tunnel. */;
+       u8 tunnel_clss_ipgre /* Rx classification scheme for ip GRE tunnel. */;
+       u8 reserved;
 /* VXLAN tunnel UDP destination port. Valid if set_vxlan_udp_port_flg=1 */
        __le16 vxlan_udp_port;
 /* GENEVE tunnel UDP destination port. Valid if set_geneve_udp_port_flg=1 */
@@ -1357,6 +1361,7 @@ struct pf_start_ramrod_data {
        struct regpair consolid_q_pbl_addr;
 /* tunnel configuration. */
        struct pf_start_tunnel_config tunnel_config;
+       __le32 reserved;
        __le16 event_ring_sb_id /* Status block ID */;
 /* All VfIds owned by Pf will be from baseVfId till baseVfId+numVfs */
        u8 base_vf_id;
@@ -1416,19 +1421,10 @@ struct pf_update_tunnel_config {
  * unicast outer MAC in NPAR mode.
  */
        u8 update_rx_def_non_ucast_clss;
-/* Update TX per PF tunnel classification scheme. used by pf update. */
-       u8 update_tx_pf_clss;
 /* Update VXLAN tunnel UDP destination port. */
        u8 set_vxlan_udp_port_flg;
 /* Update GENEVE tunnel UDP destination port. */
        u8 set_geneve_udp_port_flg;
-       u8 tx_enable_vxlan /* If set, enable VXLAN tunnel in TX path. */;
-/* If set, enable l2 GENEVE tunnel in TX path. */
-       u8 tx_enable_l2geneve;
-/* If set, enable IP GENEVE tunnel in TX path. */
-       u8 tx_enable_ipgeneve;
-       u8 tx_enable_l2gre /* If set, enable l2 GRE tunnel in TX path. */;
-       u8 tx_enable_ipgre /* If set, enable IP GRE tunnel in TX path. */;
        u8 tunnel_clss_vxlan /* Classification scheme for VXLAN tunnel. */;
 /* Classification scheme for l2 GENEVE tunnel. */
        u8 tunnel_clss_l2geneve;
@@ -1438,7 +1434,7 @@ struct pf_update_tunnel_config {
        u8 tunnel_clss_ipgre /* Classification scheme for ip GRE tunnel. */;
        __le16 vxlan_udp_port /* VXLAN tunnel UDP destination port. */;
        __le16 geneve_udp_port /* GENEVE tunnel UDP destination port. */;
-       __le16 reserved[2];
+       __le16 reserved;
 };
 
 /*
@@ -1446,13 +1442,13 @@ struct pf_update_tunnel_config {
  */
 struct pf_update_ramrod_data {
        u8 pf_id;
-       u8 update_eth_dcb_data_flag /* Update Eth DCB  data indication */;
-       u8 update_fcoe_dcb_data_flag /* Update FCOE DCB  data indication */;
-       u8 update_iscsi_dcb_data_flag /* Update iSCSI DCB  data indication */;
-       u8 update_roce_dcb_data_flag /* Update ROCE DCB  data indication */;
+       u8 update_eth_dcb_data_mode /* Update Eth DCB  data indication */;
+       u8 update_fcoe_dcb_data_mode /* Update FCOE DCB  data indication */;
+       u8 update_iscsi_dcb_data_mode /* Update iSCSI DCB  data indication */;
+       u8 update_roce_dcb_data_mode /* Update ROCE DCB  data indication */;
 /* Update RROCE (RoceV2) DCB  data indication */
-       u8 update_rroce_dcb_data_flag;
-       u8 update_iwarp_dcb_data_flag /* Update IWARP DCB  data indication */;
+       u8 update_rroce_dcb_data_mode;
+       u8 update_iwarp_dcb_data_mode /* Update IWARP DCB  data indication */;
        u8 update_mf_vlan_flag /* Update MF outer vlan Id */;
        struct protocol_dcb_data eth_dcb_data /* core eth related fields */;
        struct protocol_dcb_data fcoe_dcb_data /* core fcoe related fields */;
@@ -1611,6 +1607,8 @@ struct tstorm_per_port_stat {
        struct regpair fcoe_irregular_pkt;
 /* packet is an ROCE irregular packet */
        struct regpair roce_irregular_pkt;
+/* packet is an IWARP irregular packet */
+       struct regpair iwarp_irregular_pkt;
 /* packet is an ETH irregular packet */
        struct regpair eth_irregular_pkt;
 /* packet is an TOE irregular packet */
@@ -1861,8 +1859,11 @@ struct dmae_cmd {
 #define DMAE_CMD_SRC_VF_ID_SHIFT       0
 #define DMAE_CMD_DST_VF_ID_MASK        0xFF /* Destination VF id */
 #define DMAE_CMD_DST_VF_ID_SHIFT       8
-       __le32 comp_addr_lo /* PCIe completion address low or grc address */;
-/* PCIe completion address high or reserved (if completion address is in GRC) */
+/* PCIe completion address low in bytes or GRC completion address in DW */
+       __le32 comp_addr_lo;
+/* PCIe completion address high in bytes or reserved (if completion address is
+ * GRC)
+ */
        __le32 comp_addr_hi;
        __le32 comp_val /* Value to write to completion address */;
        __le32 crc32 /* crc16 result */;
@@ -2250,10 +2251,6 @@ struct sdm_op_gen {
 #define SDM_OP_GEN_RESERVED_SHIFT   20
 };
 
-
-
-
-
 struct ystorm_core_conn_ag_ctx {
        u8 byte0 /* cdu_validation */;
        u8 byte1 /* state */;