net/ice/base: support switch rule about VLAN PPPoE
Add support for switch rule about single-VLAN-PPPoE. Note that double VLAN is not supported by the hardware at this point, therefore only single-VLAN support for PPPoE is added. Signed-off-by: Junfeng Guo <junfeng.guo@intel.com> Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Qiming Yang <qiming.yang@intel.com>
This commit is contained in:
parent
333e5c9d43
commit
5037444203
@ -31,6 +31,7 @@ enum ice_protocol_type {
|
||||
ICE_MAC_OFOS = 0,
|
||||
ICE_MAC_IL,
|
||||
ICE_ETYPE_OL,
|
||||
ICE_VLAN_OFOS,
|
||||
ICE_IPV4_OFOS,
|
||||
ICE_IPV4_IL,
|
||||
ICE_IPV6_OFOS,
|
||||
@ -117,6 +118,7 @@ enum ice_prot_id {
|
||||
#define ICE_MAC_OFOS_HW 1
|
||||
#define ICE_MAC_IL_HW 4
|
||||
#define ICE_ETYPE_OL_HW 9
|
||||
#define ICE_VLAN_OL_HW 16
|
||||
#define ICE_IPV4_OFOS_HW 32
|
||||
#define ICE_IPV4_IL_HW 33
|
||||
#define ICE_IPV6_OFOS_HW 40
|
||||
@ -162,6 +164,11 @@ struct ice_ether_vlan_hdr {
|
||||
u32 vlan_id;
|
||||
};
|
||||
|
||||
struct ice_vlan_hdr {
|
||||
u16 vlan;
|
||||
u16 type;
|
||||
};
|
||||
|
||||
struct ice_ipv4_hdr {
|
||||
u8 version;
|
||||
u8 tos;
|
||||
@ -239,6 +246,7 @@ struct ice_nvgre {
|
||||
union ice_prot_hdr {
|
||||
struct ice_ether_hdr eth_hdr;
|
||||
struct ice_ethtype_hdr ethertype;
|
||||
struct ice_vlan_hdr vlan_hdr;
|
||||
struct ice_ipv4_hdr ipv4_hdr;
|
||||
struct ice_ipv6_hdr ipv6_hdr;
|
||||
struct ice_l4_hdr l4_hdr;
|
||||
|
@ -418,8 +418,9 @@ dummy_udp_gtp_packet[] = {
|
||||
|
||||
static const
|
||||
struct ice_dummy_pkt_offsets dummy_pppoe_packet_offsets[] = {
|
||||
{ ICE_MAC_OFOS, 0 },
|
||||
{ ICE_PPPOE, 14 },
|
||||
{ ICE_MAC_OFOS, 0 },
|
||||
{ ICE_VLAN_OFOS, 14},
|
||||
{ ICE_PPPOE, 18 },
|
||||
{ ICE_PROTOCOL_LAST, 0 },
|
||||
};
|
||||
|
||||
@ -428,9 +429,11 @@ dummy_pppoe_packet[] = {
|
||||
0x00, 0x00, 0x00, 0x00, /* ICE_MAC_OFOS 0 */
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x88, 0x64,
|
||||
0x81, 0x00,
|
||||
|
||||
0x11, 0x00, 0x00, 0x01, /* ICE_PPPOE 14 */
|
||||
0x00, 0x00, 0x88, 0x64, /* ICE_VLAN_OFOS 14 */
|
||||
|
||||
0x11, 0x00, 0x00, 0x01, /* ICE_PPPOE 18 */
|
||||
0x00, 0x4e, 0x00, 0x21,
|
||||
|
||||
0x45, 0x00, 0x00, 0x30, /* PDU */
|
||||
@ -4632,6 +4635,7 @@ static const struct ice_prot_ext_tbl_entry ice_prot_ext[] = {
|
||||
{ ICE_MAC_OFOS, { 0, 2, 4, 6, 8, 10, 12 } },
|
||||
{ ICE_MAC_IL, { 0, 2, 4, 6, 8, 10, 12 } },
|
||||
{ ICE_ETYPE_OL, { 0 } },
|
||||
{ ICE_VLAN_OFOS, { 0, 2 } },
|
||||
{ ICE_IPV4_OFOS, { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 } },
|
||||
{ ICE_IPV4_IL, { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 } },
|
||||
{ ICE_IPV6_IL, { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24,
|
||||
@ -4661,6 +4665,7 @@ static const struct ice_protocol_entry ice_prot_id_tbl[] = {
|
||||
{ ICE_MAC_OFOS, ICE_MAC_OFOS_HW },
|
||||
{ ICE_MAC_IL, ICE_MAC_IL_HW },
|
||||
{ ICE_ETYPE_OL, ICE_ETYPE_OL_HW },
|
||||
{ ICE_VLAN_OFOS, ICE_VLAN_OL_HW },
|
||||
{ ICE_IPV4_OFOS, ICE_IPV4_OFOS_HW },
|
||||
{ ICE_IPV4_IL, ICE_IPV4_IL_HW },
|
||||
{ ICE_IPV6_OFOS, ICE_IPV6_OFOS_HW },
|
||||
@ -5784,6 +5789,9 @@ ice_fill_adv_dummy_packet(struct ice_adv_lkup_elem *lkups, u16 lkups_cnt,
|
||||
case ICE_ETYPE_OL:
|
||||
len = sizeof(struct ice_ethtype_hdr);
|
||||
break;
|
||||
case ICE_VLAN_OFOS:
|
||||
len = sizeof(struct ice_vlan_hdr);
|
||||
break;
|
||||
case ICE_IPV4_OFOS:
|
||||
case ICE_IPV4_IL:
|
||||
len = sizeof(struct ice_ipv4_hdr);
|
||||
@ -5812,6 +5820,9 @@ ice_fill_adv_dummy_packet(struct ice_adv_lkup_elem *lkups, u16 lkups_cnt,
|
||||
case ICE_GTP:
|
||||
len = sizeof(struct ice_udp_gtp_hdr);
|
||||
break;
|
||||
case ICE_PPPOE:
|
||||
len = sizeof(struct ice_pppoe_hdr);
|
||||
break;
|
||||
default:
|
||||
return ICE_ERR_PARAM;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user