Skip to content

Commit 85212a1

Browse files
Kiran Kumar Kdavem330
Kiran Kumar K
authored andcommitted
octeontx2-af: Adjust LA pointer for cpt parse header
In case of ltype NPC_LT_LA_CPT_HDR, LA pointer is pointing to the start of cpt parse header. Since cpt parse header has veriable length padding, this will be a problem for DMAC extraction. Adding KPU profile changes to adjust the LA pointer to start at ether header in case of cpt parse header by - Adding ptr advance in pkind 58 to a fixed value 40 - Adding variable length offset 7 and mask 7 (pad len in CPT_PARSE_HDR). Also added the missing static declaration for npc_set_var_len_offset_pkind function. Signed-off-by: Kiran Kumar K <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 69508d4 commit 85212a1

File tree

2 files changed

+80
-95
lines changed

2 files changed

+80
-95
lines changed

drivers/net/ethernet/marvell/octeontx2/af/npc_profile.h

+79-94
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,8 @@ enum npc_kpu_parser_state {
187187
NPC_S_KPU2_PREHEADER,
188188
NPC_S_KPU2_EXDSA,
189189
NPC_S_KPU2_NGIO,
190+
NPC_S_KPU2_CPT_CTAG,
191+
NPC_S_KPU2_CPT_QINQ,
190192
NPC_S_KPU3_CTAG,
191193
NPC_S_KPU3_STAG,
192194
NPC_S_KPU3_QINQ,
@@ -1004,11 +1006,11 @@ static struct npc_kpu_profile_action ikpu_action_entries[] = {
10041006
},
10051007
{
10061008
NPC_ERRLEV_RE, NPC_EC_NOERR,
1007-
40, 54, 58, 0, 0,
1008-
NPC_S_KPU1_CPT_HDR, 0, 0,
1009+
12, 16, 20, 0, 0,
1010+
NPC_S_KPU1_CPT_HDR, 40, 0,
10091011
NPC_LID_LA, NPC_LT_NA,
10101012
0,
1011-
0, 0, 0, 0,
1013+
7, 7, 0, 0,
10121014

10131015
},
10141016
{
@@ -1846,80 +1848,35 @@ static struct npc_kpu_profile_cam kpu1_cam_entries[] = {
18461848
},
18471849
{
18481850
NPC_S_KPU1_CPT_HDR, 0xff,
1849-
0x0000,
1850-
0xffff,
18511851
NPC_ETYPE_IP,
18521852
0xffff,
18531853
0x0000,
18541854
0x0000,
1855-
},
1856-
{
1857-
NPC_S_KPU1_CPT_HDR, 0xff,
1858-
0x0000,
1859-
0xffff,
1860-
NPC_ETYPE_IP6,
1861-
0xffff,
18621855
0x0000,
18631856
0x0000,
18641857
},
18651858
{
18661859
NPC_S_KPU1_CPT_HDR, 0xff,
1867-
0x0000,
1868-
0xffff,
1869-
NPC_ETYPE_CTAG,
1870-
0xffff,
1871-
0x0000,
1872-
0x0000,
1873-
},
1874-
{
1875-
NPC_S_KPU1_CPT_HDR, 0xff,
1876-
0x0000,
1877-
0xffff,
1878-
NPC_ETYPE_QINQ,
1860+
NPC_ETYPE_IP6,
18791861
0xffff,
18801862
0x0000,
18811863
0x0000,
1882-
},
1883-
{
1884-
NPC_S_KPU1_CPT_HDR, 0xff,
1885-
0x0000,
1886-
0xffff,
18871864
0x0000,
18881865
0x0000,
1889-
NPC_ETYPE_IP,
1890-
0xffff,
18911866
},
18921867
{
18931868
NPC_S_KPU1_CPT_HDR, 0xff,
1894-
0x0000,
1869+
NPC_ETYPE_CTAG,
18951870
0xffff,
18961871
0x0000,
18971872
0x0000,
1898-
NPC_ETYPE_IP6,
1899-
0xffff,
1900-
},
1901-
{
1902-
NPC_S_KPU1_CPT_HDR, 0xff,
1903-
0x0000,
1904-
0xffff,
19051873
0x0000,
19061874
0x0000,
1907-
NPC_ETYPE_CTAG,
1908-
0xffff,
19091875
},
19101876
{
19111877
NPC_S_KPU1_CPT_HDR, 0xff,
1912-
0x0000,
1913-
0xffff,
1914-
0x0000,
1915-
0x0000,
19161878
NPC_ETYPE_QINQ,
19171879
0xffff,
1918-
},
1919-
{
1920-
NPC_S_KPU1_CPT_HDR, 0xff,
1921-
0x0000,
1922-
0x0000,
19231880
0x0000,
19241881
0x0000,
19251882
0x0000,
@@ -2929,6 +2886,42 @@ static struct npc_kpu_profile_cam kpu2_cam_entries[] = {
29292886
0x0000,
29302887
0x0000,
29312888
},
2889+
{
2890+
NPC_S_KPU2_CPT_CTAG, 0xff,
2891+
NPC_ETYPE_IP,
2892+
0xffff,
2893+
0x0000,
2894+
0x0000,
2895+
0x0000,
2896+
0x0000,
2897+
},
2898+
{
2899+
NPC_S_KPU2_CPT_CTAG, 0xff,
2900+
NPC_ETYPE_IP6,
2901+
0xffff,
2902+
0x0000,
2903+
0x0000,
2904+
0x0000,
2905+
0x0000,
2906+
},
2907+
{
2908+
NPC_S_KPU2_CPT_QINQ, 0xff,
2909+
NPC_ETYPE_CTAG,
2910+
0xffff,
2911+
NPC_ETYPE_IP,
2912+
0xffff,
2913+
0x0000,
2914+
0x0000,
2915+
},
2916+
{
2917+
NPC_S_KPU2_CPT_QINQ, 0xff,
2918+
NPC_ETYPE_CTAG,
2919+
0xffff,
2920+
NPC_ETYPE_IP6,
2921+
0xffff,
2922+
0x0000,
2923+
0x0000,
2924+
},
29322925
{
29332926
NPC_S_NA, 0X00,
29342927
0x0000,
@@ -9167,75 +9160,35 @@ static struct npc_kpu_profile_action kpu1_action_entries[] = {
91679160
{
91689161
NPC_ERRLEV_RE, NPC_EC_NOERR,
91699162
8, 0, 6, 3, 0,
9170-
NPC_S_KPU5_CPT_IP, 56, 1,
9171-
NPC_LID_LA, NPC_LT_LA_CPT_HDR,
9172-
0,
9173-
0, 0, 0, 0,
9174-
},
9175-
{
9176-
NPC_ERRLEV_RE, NPC_EC_NOERR,
9177-
6, 0, 0, 3, 0,
9178-
NPC_S_KPU5_CPT_IP6, 56, 1,
9179-
NPC_LID_LA, NPC_LT_LA_CPT_HDR,
9180-
0,
9181-
0, 0, 0, 0,
9182-
},
9183-
{
9184-
NPC_ERRLEV_RE, NPC_EC_NOERR,
9185-
4, 8, 0, 0, 0,
9186-
NPC_S_KPU2_CTAG, 54, 1,
9187-
NPC_LID_LA, NPC_LT_LA_CPT_HDR,
9188-
NPC_F_LA_U_HAS_TAG | NPC_F_LA_L_WITH_VLAN,
9189-
0, 0, 0, 0,
9190-
},
9191-
{
9192-
NPC_ERRLEV_RE, NPC_EC_NOERR,
9193-
4, 8, 0, 0, 0,
9194-
NPC_S_KPU2_QINQ, 54, 1,
9195-
NPC_LID_LA, NPC_LT_LA_CPT_HDR,
9196-
NPC_F_LA_U_HAS_TAG | NPC_F_LA_L_WITH_VLAN,
9197-
0, 0, 0, 0,
9198-
},
9199-
{
9200-
NPC_ERRLEV_RE, NPC_EC_NOERR,
9201-
8, 0, 6, 3, 0,
9202-
NPC_S_KPU5_CPT_IP, 60, 1,
9163+
NPC_S_KPU5_CPT_IP, 14, 1,
92039164
NPC_LID_LA, NPC_LT_LA_CPT_HDR,
92049165
0,
92059166
0, 0, 0, 0,
92069167
},
92079168
{
92089169
NPC_ERRLEV_RE, NPC_EC_NOERR,
92099170
6, 0, 0, 3, 0,
9210-
NPC_S_KPU5_CPT_IP6, 60, 1,
9171+
NPC_S_KPU5_CPT_IP6, 14, 1,
92119172
NPC_LID_LA, NPC_LT_LA_CPT_HDR,
92129173
0,
92139174
0, 0, 0, 0,
92149175
},
92159176
{
92169177
NPC_ERRLEV_RE, NPC_EC_NOERR,
92179178
4, 8, 0, 0, 0,
9218-
NPC_S_KPU2_CTAG, 58, 1,
9179+
NPC_S_KPU2_CPT_CTAG, 12, 1,
92199180
NPC_LID_LA, NPC_LT_LA_CPT_HDR,
92209181
NPC_F_LA_U_HAS_TAG | NPC_F_LA_L_WITH_VLAN,
92219182
0, 0, 0, 0,
92229183
},
92239184
{
92249185
NPC_ERRLEV_RE, NPC_EC_NOERR,
92259186
4, 8, 0, 0, 0,
9226-
NPC_S_KPU2_QINQ, 58, 1,
9187+
NPC_S_KPU2_CPT_QINQ, 12, 1,
92279188
NPC_LID_LA, NPC_LT_LA_CPT_HDR,
92289189
NPC_F_LA_U_HAS_TAG | NPC_F_LA_L_WITH_VLAN,
92299190
0, 0, 0, 0,
92309191
},
9231-
{
9232-
NPC_ERRLEV_RE, NPC_EC_NOERR,
9233-
0, 0, 0, 0, 1,
9234-
NPC_S_NA, 0, 1,
9235-
NPC_LID_LA, NPC_LT_LA_CPT_HDR,
9236-
NPC_F_LA_L_UNK_ETYPE,
9237-
0, 0, 0, 0,
9238-
},
92399192
{
92409193
NPC_ERRLEV_RE, NPC_EC_NOERR,
92419194
12, 0, 0, 1, 0,
@@ -10129,6 +10082,38 @@ static struct npc_kpu_profile_action kpu2_action_entries[] = {
1012910082
0,
1013010083
0, 0, 0, 0,
1013110084
},
10085+
{
10086+
NPC_ERRLEV_RE, NPC_EC_NOERR,
10087+
8, 0, 6, 2, 0,
10088+
NPC_S_KPU5_CPT_IP, 6, 1,
10089+
NPC_LID_LB, NPC_LT_LB_CTAG,
10090+
0,
10091+
0, 0, 0, 0,
10092+
},
10093+
{
10094+
NPC_ERRLEV_RE, NPC_EC_NOERR,
10095+
6, 0, 0, 2, 0,
10096+
NPC_S_KPU5_CPT_IP6, 6, 1,
10097+
NPC_LID_LB, NPC_LT_LB_CTAG,
10098+
0,
10099+
0, 0, 0, 0,
10100+
},
10101+
{
10102+
NPC_ERRLEV_RE, NPC_EC_NOERR,
10103+
8, 0, 6, 2, 0,
10104+
NPC_S_KPU5_CPT_IP, 10, 1,
10105+
NPC_LID_LB, NPC_LT_LB_STAG_QINQ,
10106+
NPC_F_LB_U_MORE_TAG | NPC_F_LB_L_WITH_CTAG,
10107+
0, 0, 0, 0,
10108+
},
10109+
{
10110+
NPC_ERRLEV_RE, NPC_EC_NOERR,
10111+
6, 0, 0, 2, 0,
10112+
NPC_S_KPU5_CPT_IP6, 10, 1,
10113+
NPC_LID_LB, NPC_LT_LB_STAG_QINQ,
10114+
NPC_F_LB_U_MORE_TAG | NPC_F_LB_L_WITH_CTAG,
10115+
0, 0, 0, 0,
10116+
},
1013210117
{
1013310118
NPC_ERRLEV_LB, NPC_EC_L2_K3,
1013410119
0, 0, 0, 0, 1,

drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -3167,7 +3167,7 @@ int rvu_mbox_handler_npc_get_kex_cfg(struct rvu *rvu, struct msg_req *req,
31673167
return 0;
31683168
}
31693169

3170-
int
3170+
static int
31713171
npc_set_var_len_offset_pkind(struct rvu *rvu, u16 pcifunc, u64 pkind,
31723172
u8 var_len_off, u8 var_len_off_mask, u8 shift_dir)
31733173
{

0 commit comments

Comments
 (0)