net/ice/base: add helper to check for 100M speed support
[dpdk.git] / drivers / net / ice / base / ice_flex_type.h
index ad620f7..3f2038c 100644 (file)
@@ -33,7 +33,7 @@ struct ice_pkg_hdr {
 /* generic segment */
 struct ice_generic_seg_hdr {
 #define SEGMENT_TYPE_METADATA  0x00000001
-#define SEGMENT_TYPE_ICE       0x00000010
+#define SEGMENT_TYPE_ICE_E810  0x00000010
        __le32 seg_type;
        struct ice_pkg_ver seg_format_ver;
        __le32 seg_size;
@@ -267,45 +267,233 @@ enum ice_sect {
 };
 
 /* Packet Type (PTYPE) values */
-#define ICE_PTYPE_MAC_PAY              1
-#define ICE_PTYPE_IPV4FRAG_PAY         22
-#define ICE_PTYPE_IPV4_PAY             23
-#define ICE_PTYPE_IPV4_UDP_PAY         24
-#define ICE_PTYPE_IPV4_TCP_PAY         26
-#define ICE_PTYPE_IPV4_SCTP_PAY                27
-#define ICE_PTYPE_IPV4_ICMP_PAY                28
-#define ICE_PTYPE_IPV6FRAG_PAY         88
-#define ICE_PTYPE_IPV6_PAY             89
-#define ICE_PTYPE_IPV6_UDP_PAY         90
-#define ICE_PTYPE_IPV6_TCP_PAY         92
-#define ICE_PTYPE_IPV6_SCTP_PAY                93
-#define ICE_PTYPE_IPV6_ICMP_PAY                94
-#define ICE_MAC_IPV4_GTPC_TEID         325
-#define ICE_MAC_IPV6_GTPC_TEID         326
-#define ICE_MAC_IPV4_GTPC              327
-#define ICE_MAC_IPV6_GTPC              328
-#define ICE_MAC_IPV4_GTPU              329
-#define ICE_MAC_IPV6_GTPU              330
-#define ICE_MAC_IPV4_GTPU_IPV4_FRAG    331
-#define ICE_MAC_IPV4_GTPU_IPV4_PAY     332
-#define ICE_MAC_IPV4_GTPU_IPV4_UDP_PAY 333
-#define ICE_MAC_IPV4_GTPU_IPV4_TCP     334
-#define ICE_MAC_IPV4_GTPU_IPV4_ICMP    335
-#define ICE_MAC_IPV6_GTPU_IPV4_FRAG    336
-#define ICE_MAC_IPV6_GTPU_IPV4_PAY     337
-#define ICE_MAC_IPV6_GTPU_IPV4_UDP_PAY 338
-#define ICE_MAC_IPV6_GTPU_IPV4_TCP     339
-#define ICE_MAC_IPV6_GTPU_IPV4_ICMP    340
-#define ICE_MAC_IPV4_GTPU_IPV6_FRAG    341
-#define ICE_MAC_IPV4_GTPU_IPV6_PAY     342
-#define ICE_MAC_IPV4_GTPU_IPV6_UDP_PAY 343
-#define ICE_MAC_IPV4_GTPU_IPV6_TCP     344
-#define ICE_MAC_IPV4_GTPU_IPV6_ICMPV6  345
-#define ICE_MAC_IPV6_GTPU_IPV6_FRAG    346
-#define ICE_MAC_IPV6_GTPU_IPV6_PAY     347
-#define ICE_MAC_IPV6_GTPU_IPV6_UDP_PAY 348
-#define ICE_MAC_IPV6_GTPU_IPV6_TCP     349
-#define ICE_MAC_IPV6_GTPU_IPV6_ICMPV6  350
+#define ICE_PTYPE_MAC_PAY                      1
+#define ICE_MAC_PTP                            2
+#define ICE_MAC_LLDP                           6
+#define ICE_MAC_ARP                            11
+#define ICE_PTYPE_IPV4FRAG_PAY                 22
+#define ICE_PTYPE_IPV4_PAY                     23
+#define ICE_PTYPE_IPV4_UDP_PAY                 24
+#define ICE_PTYPE_IPV4_TCP_PAY                 26
+#define ICE_PTYPE_IPV4_SCTP_PAY                        27
+#define ICE_PTYPE_IPV4_ICMP_PAY                        28
+#define ICE_MAC_IPV4_IPV4_FRAG                 29
+#define ICE_MAC_IPV4_IPV4_PAY                  30
+#define ICE_MAC_IPV4_IPV4_UDP_PAY              31
+#define ICE_MAC_IPV4_IPV4_TCP                  33
+#define ICE_MAC_IPV4_IPV4_SCTP                 34
+#define ICE_MAC_IPV4_IPV4_ICMP                 35
+#define ICE_MAC_IPV4_IPV6_FRAG                 36
+#define ICE_MAC_IPV4_IPV6_PAY                  37
+#define ICE_MAC_IPV4_IPV6_UDP_PAY              38
+#define ICE_MAC_IPV4_IPV6_TCP                  40
+#define ICE_MAC_IPV4_IPV6_SCTP                 41
+#define ICE_MAC_IPV4_IPV6_ICMPV6               42
+#define ICE_MAC_IPV4_TUN_PAY                   43
+#define ICE_MAC_IPV4_TUN_IPV4_FRAG             44
+#define ICE_MAC_IPV4_TUN_IPV4_PAY              45
+#define ICE_MAC_IPV4_TUN_IPV4_UDP_PAY          46
+#define ICE_MAC_IPV4_TUN_IPV4_TCP              48
+#define ICE_MAC_IPV4_TUN_IPV4_SCTP             49
+#define ICE_MAC_IPV4_TUN_IPV4_ICMP             50
+#define ICE_MAC_IPV4_TUN_IPV6_FRAG             51
+#define ICE_MAC_IPV4_TUN_IPV6_PAY              52
+#define ICE_MAC_IPV4_TUN_IPV6_UDP_PAY          53
+#define ICE_MAC_IPV4_TUN_IPV6_TCP              55
+#define ICE_MAC_IPV4_TUN_IPV6_SCTP             56
+#define ICE_MAC_IPV4_TUN_IPV6_ICMPV6           57
+#define ICE_MAC_IPV4_TUN_ICE_MAC_PAY           58
+#define ICE_MAC_IPV4_TUN_ICE_MAC_IPV4_FRAG     59
+#define ICE_MAC_IPV4_TUN_ICE_MAC_IPV4_PAY      60
+#define ICE_MAC_IPV4_TUN_ICE_MAC_IPV4_UDP_PAY  61
+#define ICE_MAC_IPV4_TUN_ICE_MAC_IPV4_TCP      63
+#define ICE_MAC_IPV4_TUN_ICE_MAC_IPV4_SCTP     64
+#define ICE_MAC_IPV4_TUN_ICE_MAC_IPV4_ICMP     65
+#define ICE_MAC_IPV4_TUN_ICE_MAC_IPV6_FRAG     66
+#define ICE_MAC_IPV4_TUN_ICE_MAC_IPV6_PAY      67
+#define ICE_MAC_IPV4_TUN_ICE_MAC_IPV6_UDP_PAY  68
+#define ICE_MAC_IPV4_TUN_ICE_MAC_IPV6_TCP      70
+#define ICE_MAC_IPV4_TUN_ICE_MAC_IPV6_SCTP     71
+#define ICE_MAC_IPV4_TUN_ICE_MAC_IPV6_ICMPV6   72
+#define ICE_PTYPE_IPV6FRAG_PAY                 88
+#define ICE_PTYPE_IPV6_PAY                     89
+#define ICE_PTYPE_IPV6_UDP_PAY                 90
+#define ICE_PTYPE_IPV6_TCP_PAY                 92
+#define ICE_PTYPE_IPV6_SCTP_PAY                        93
+#define ICE_PTYPE_IPV6_ICMP_PAY                        94
+#define ICE_MAC_IPV6_IPV4_FRAG                 95
+#define ICE_MAC_IPV6_IPV4_PAY                  96
+#define ICE_MAC_IPV6_IPV4_UDP_PAY              97
+#define ICE_MAC_IPV6_IPV4_TCP                  99
+#define ICE_MAC_IPV6_IPV4_SCTP                 100
+#define ICE_MAC_IPV6_IPV4_ICMP                 101
+#define ICE_MAC_IPV6_IPV6_FRAG                 102
+#define ICE_MAC_IPV6_IPV6_PAY                  103
+#define ICE_MAC_IPV6_IPV6_UDP_PAY              104
+#define ICE_MAC_IPV6_IPV6_TCP                  106
+#define ICE_MAC_IPV6_IPV6_SCTP                 107
+#define ICE_MAC_IPV6_IPV6_ICMPV6               108
+#define ICE_MAC_IPV6_TUN_PAY                   109
+#define ICE_MAC_IPV6_TUN_IPV4_FRAG             110
+#define ICE_MAC_IPV6_TUN_IPV4_PAY              111
+#define ICE_MAC_IPV6_TUN_IPV4_UDP_PAY          112
+#define ICE_MAC_IPV6_TUN_IPV4_TCP              114
+#define ICE_MAC_IPV6_TUN_IPV4_SCTP             115
+#define ICE_MAC_IPV6_TUN_IPV4_ICMP             116
+#define ICE_MAC_IPV6_TUN_IPV6_FRAG             117
+#define ICE_MAC_IPV6_TUN_IPV6_PAY              118
+#define ICE_MAC_IPV6_TUN_IPV6_UDP_PAY          119
+#define ICE_MAC_IPV6_TUN_IPV6_TCP              121
+#define ICE_MAC_IPV6_TUN_IPV6_SCTP             122
+#define ICE_MAC_IPV6_TUN_IPV6_ICMPV6           123
+#define ICE_MAC_IPV6_TUN_MAC_PAY               124
+#define ICE_MAC_IPV6_TUN_MAC_IPV4_FRAG         125
+#define ICE_MAC_IPV6_TUN_MAC_IPV4_PAY          126
+#define ICE_MAC_IPV6_TUN_MAC_IPV4_UDP_PAY      127
+#define ICE_MAC_IPV6_TUN_MAC_IPV4_TCP          129
+#define ICE_MAC_IPV6_TUN_MAC_IPV4_SCTP         130
+#define ICE_MAC_IPV6_TUN_MAC_IPV4_ICMP         131
+#define ICE_MAC_IPV6_TUN_MAC_IPV6_FRAG         132
+#define ICE_MAC_IPV6_TUN_MAC_IPV6_PAY          133
+#define ICE_MAC_IPV6_TUN_MAC_IPV6_UDP_PAY      134
+#define ICE_MAC_IPV6_TUN_MAC_IPV6_TCP          136
+#define ICE_MAC_IPV6_TUN_MAC_IPV6_SCTP         137
+#define ICE_MAC_IPV6_TUN_MAC_IPV6_ICMPV6       138
+#define ICE_MAC_IPV4_ESP                       160
+#define ICE_MAC_IPV6_ESP                       161
+#define ICE_MAC_IPV4_AH                                162
+#define ICE_MAC_IPV6_AH                                163
+#define ICE_MAC_IPV4_NAT_T_ESP                 164
+#define ICE_MAC_IPV6_NAT_T_ESP                 165
+#define ICE_MAC_IPV4_NAT_T_IKE                 166
+#define ICE_MAC_IPV6_NAT_T_IKE                 167
+#define ICE_MAC_IPV4_NAT_T_KEEP                        168
+#define ICE_MAC_IPV6_NAT_T_KEEP                        169
+#define ICE_MAC_CONTROL                                278
+#define ICE_MAC_PPPOD_PAY                      300
+#define ICE_MAC_PPPOE_PAY                      301
+#define ICE_MAC_PPPOE_IPV4_FRAG                        302
+#define ICE_MAC_PPPOE_IPV4_PAY                 303
+#define ICE_MAC_PPPOE_IPV4_UDP_PAY             304
+#define ICE_MAC_PPPOE_IPV4_TCP                 305
+#define ICE_MAC_PPPOE_IPV4_SCTP                        306
+#define ICE_MAC_PPPOE_IPV4_ICMP                        307
+#define ICE_MAC_PPPOE_IPV6_FRAG                        308
+#define ICE_MAC_PPPOE_IPV6_PAY                 309
+#define ICE_MAC_PPPOE_IPV6_UDP_PAY             310
+#define ICE_MAC_PPPOE_IPV6_TCP                 311
+#define ICE_MAC_PPPOE_IPV6_SCTP                        312
+#define ICE_MAC_PPPOE_IPV6_ICMPV6              313
+#define ICE_MAC_IPV4_GTPC_TEID                 325
+#define ICE_MAC_IPV6_GTPC_TEID                 326
+#define ICE_MAC_IPV4_GTPC                      327
+#define ICE_MAC_IPV6_GTPC                      328
+#define ICE_MAC_IPV4_GTPU                      329
+#define ICE_MAC_IPV6_GTPU                      330
+#define ICE_MAC_IPV4_GTPU_IPV4_FRAG            331
+#define ICE_MAC_IPV4_GTPU_IPV4_PAY             332
+#define ICE_MAC_IPV4_GTPU_IPV4_UDP_PAY         333
+#define ICE_MAC_IPV4_GTPU_IPV4_TCP             334
+#define ICE_MAC_IPV4_GTPU_IPV4_ICMP            335
+#define ICE_MAC_IPV6_GTPU_IPV4_FRAG            336
+#define ICE_MAC_IPV6_GTPU_IPV4_PAY             337
+#define ICE_MAC_IPV6_GTPU_IPV4_UDP_PAY         338
+#define ICE_MAC_IPV6_GTPU_IPV4_TCP             339
+#define ICE_MAC_IPV6_GTPU_IPV4_ICMP            340
+#define ICE_MAC_IPV4_GTPU_IPV6_FRAG            341
+#define ICE_MAC_IPV4_GTPU_IPV6_PAY             342
+#define ICE_MAC_IPV4_GTPU_IPV6_UDP_PAY         343
+#define ICE_MAC_IPV4_GTPU_IPV6_TCP             344
+#define ICE_MAC_IPV4_GTPU_IPV6_ICMPV6          345
+#define ICE_MAC_IPV6_GTPU_IPV6_FRAG            346
+#define ICE_MAC_IPV6_GTPU_IPV6_PAY             347
+#define ICE_MAC_IPV6_GTPU_IPV6_UDP_PAY         348
+#define ICE_MAC_IPV6_GTPU_IPV6_TCP             349
+#define ICE_MAC_IPV6_GTPU_IPV6_ICMPV6          350
+#define ICE_MAC_IPV4_PFCP_NODE                 351
+#define ICE_MAC_IPV4_PFCP_SESSION              352
+#define ICE_MAC_IPV6_PFCP_NODE                 353
+#define ICE_MAC_IPV6_PFCP_SESSION              354
+#define ICE_MAC_IPV4_L2TPV3                    360
+#define ICE_MAC_IPV6_L2TPV3                    361
+#define ICE_MAC_IPV4_L2TPV2_CONTROL            392
+#define ICE_MAC_IPV6_L2TPV2_CONTROL            393
+#define ICE_MAC_IPV4_L2TPV2                    394
+#define ICE_MAC_IPV6_L2TPV2                    395
+#define ICE_MAC_IPV4_PPPOL2TPV2                        396
+#define ICE_MAC_IPV6_PPPOL2TPV2                        397
+#define ICE_MAC_IPV4_PPPOL2TPV2_IPV4_FRAG      398
+#define ICE_MAC_IPV4_PPPOL2TPV2_IPV4_PAY       399
+#define ICE_MAC_IPV4_PPPOL2TPV2_IPV4_UDP_PAY   400
+#define ICE_MAC_IPV4_PPPOL2TPV2_IPV4_TCP       401
+#define ICE_MAC_IPV4_PPPOL2TPV2_IPV4_SCTP      402
+#define ICE_MAC_IPV4_PPPOL2TPV2_IPV4_ICMP      403
+#define ICE_MAC_IPV4_PPPOL2TPV2_IPV6_FRAG      404
+#define ICE_MAC_IPV4_PPPOL2TPV2_IPV6_PAY       405
+#define ICE_MAC_IPV4_PPPOL2TPV2_IPV6_UDP_PAY   406
+#define ICE_MAC_IPV4_PPPOL2TPV2_IPV6_TCP       407
+#define ICE_MAC_IPV4_PPPOL2TPV2_IPV6_SCTP      408
+#define ICE_MAC_IPV4_PPPOL2TPV2_IPV6_ICMPV6    409
+#define ICE_MAC_IPV6_PPPOL2TPV2_IPV4_FRAG      410
+#define ICE_MAC_IPV6_PPPOL2TPV2_IPV4_PAY       411
+#define ICE_MAC_IPV6_PPPOL2TPV2_IPV4_UDP_PAY   412
+#define ICE_MAC_IPV6_PPPOL2TPV2_IPV4_TCP       413
+#define ICE_MAC_IPV6_PPPOL2TPV2_IPV4_SCTP      414
+#define ICE_MAC_IPV6_PPPOL2TPV2_IPV4_ICMP      415
+#define ICE_MAC_IPV6_PPPOL2TPV2_IPV6_FRAG      416
+#define ICE_MAC_IPV6_PPPOL2TPV2_IPV6_PAY       417
+#define ICE_MAC_IPV6_PPPOL2TPV2_IPV6_UDP_PAY   418
+#define ICE_MAC_IPV6_PPPOL2TPV2_IPV6_TCP       419
+#define ICE_MAC_IPV6_PPPOL2TPV2_IPV6_SCTP      420
+#define ICE_MAC_IPV6_PPPOL2TPV2_IPV6_ICMPV6    421
+#define MAC_IPV4_TUN_IPV4_GTPU_IPV4_FRAG       450
+#define MAC_IPV4_TUN_IPV4_GTPU_IPV4_PAY                451
+#define MAC_IPV4_TUN_IPV4_GTPU_IPV4_UDP_PAY    452
+#define MAC_IPV4_TUN_IPV4_GTPU_IPV4_TCP                453
+#define MAC_IPV4_TUN_IPV4_GTPU_IPV4_SCTP       454
+#define MAC_IPV4_TUN_IPV4_GTPU_IPV4_ICMP       455
+#define MAC_IPV4_TUN_IPV4_GTPU_IPV6_FRAG       456
+#define MAC_IPV4_TUN_IPV4_GTPU_IPV6_PAY                457
+#define MAC_IPV4_TUN_IPV4_GTPU_IPV6_UDP_PAY    458
+#define MAC_IPV4_TUN_IPV4_GTPU_IPV6_TCP                459
+#define MAC_IPV4_TUN_IPV4_GTPU_IPV6_SCTP       460
+#define MAC_IPV4_TUN_IPV4_GTPU_IPV6_ICMPV6     461
+#define MAC_IPV4_TUN_IPV6_GTPU_IPV4_FRAG       462
+#define MAC_IPV4_TUN_IPV6_GTPU_IPV4_PAY                463
+#define MAC_IPV4_TUN_IPV6_GTPU_IPV4_UDP_PAY    464
+#define MAC_IPV4_TUN_IPV6_GTPU_IPV4_TCP                465
+#define MAC_IPV4_TUN_IPV6_GTPU_IPV4_SCTP       466
+#define MAC_IPV4_TUN_IPV6_GTPU_IPV4_ICMP       467
+#define MAC_IPV4_TUN_IPV6_GTPU_IPV6_FRAG       468
+#define MAC_IPV4_TUN_IPV6_GTPU_IPV6_PAY                469
+#define MAC_IPV4_TUN_IPV6_GTPU_IPV6_UDP_PAY    470
+#define MAC_IPV4_TUN_IPV6_GTPU_IPV6_TCP                471
+#define MAC_IPV4_TUN_IPV6_GTPU_IPV6_SCTP       472
+#define MAC_IPV4_TUN_IPV6_GTPU_IPV6_ICMPV6     473
+#define MAC_IPV6_TUN_IPV4_GTPU_IPV4_FRAG       474
+#define MAC_IPV6_TUN_IPV4_GTPU_IPV4_PAY                475
+#define MAC_IPV6_TUN_IPV4_GTPU_IPV4_UDP_PAY    476
+#define MAC_IPV6_TUN_IPV4_GTPU_IPV4_TCP                477
+#define MAC_IPV6_TUN_IPV4_GTPU_IPV4_SCTP       478
+#define MAC_IPV6_TUN_IPV4_GTPU_IPV4_ICMP       479
+#define MAC_IPV6_TUN_IPV4_GTPU_IPV6_FRAG       480
+#define MAC_IPV6_TUN_IPV4_GTPU_IPV6_PAY                481
+#define MAC_IPV6_TUN_IPV4_GTPU_IPV6_UDP_PAY    482
+#define MAC_IPV6_TUN_IPV4_GTPU_IPV6_TCP                483
+#define MAC_IPV6_TUN_IPV4_GTPU_IPV6_SCTP       484
+#define MAC_IPV6_TUN_IPV4_GTPU_IPV6_ICMPV6     485
+#define MAC_IPV6_TUN_IPV6_GTPU_IPV4_FRAG       486
+#define MAC_IPV6_TUN_IPV6_GTPU_IPV4_PAY                487
+#define MAC_IPV6_TUN_IPV6_GTPU_IPV4_UDP_PAY    488
+#define MAC_IPV6_TUN_IPV6_GTPU_IPV4_TCP                489
+#define MAC_IPV6_TUN_IPV6_GTPU_IPV4_SCTP       490
+#define MAC_IPV6_TUN_IPV6_GTPU_IPV4_ICMP       491
+#define MAC_IPV6_TUN_IPV6_GTPU_IPV6_FRAG       492
+#define MAC_IPV6_TUN_IPV6_GTPU_IPV6_PAY                493
+#define MAC_IPV6_TUN_IPV6_GTPU_IPV6_UDP_PAY    494
+#define MAC_IPV6_TUN_IPV6_GTPU_IPV6_TCP                495
+#define MAC_IPV6_TUN_IPV6_GTPU_IPV6_SCTP       496
+#define MAC_IPV6_TUN_IPV6_GTPU_IPV6_ICMPV6     497
 
 /* Attributes that can modify PTYPE definitions.
  *
@@ -564,6 +752,19 @@ struct ice_tunnel_table {
        u16 count;
 };
 
+struct ice_dvm_entry {
+       u16 boost_addr;
+       u16 enable;
+       struct ice_boost_tcam_entry *boost_entry;
+};
+
+#define ICE_DVM_MAX_ENTRIES    48
+
+struct ice_dvm_table {
+       struct ice_dvm_entry tbl[ICE_DVM_MAX_ENTRIES];
+       u16 count;
+};
+
 struct ice_pkg_es {
        __le16 count;
        __le16 offset;
@@ -603,8 +804,8 @@ struct ice_ptg_ptype {
        u8 ptg;
 };
 
-#define ICE_MAX_TCAM_PER_PROFILE       32
-#define ICE_MAX_PTG_PER_PROFILE                32
+#define ICE_MAX_TCAM_PER_PROFILE       64
+#define ICE_MAX_PTG_PER_PROFILE                64
 
 struct ice_prof_map {
        struct LIST_ENTRY_TYPE list;