]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
octeontx2-af: configure npc for cn10k to allow packets from cpt
authorVidya <vvelumuri@marvell.com>
Tue, 17 Aug 2021 04:44:53 +0000 (10:14 +0530)
committerDavid S. Miller <davem@davemloft.net>
Tue, 17 Aug 2021 09:06:33 +0000 (10:06 +0100)
On CN10K, the higher bits in the channel number represents the CPT
channel number. Mask out these higher bits in the npc configuration
to allow packets from cpt for parsing.

Signed-off-by: Vidya <vvelumuri@marvell.com>
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c

index 504dfa5a18c421d4834e3ba6442591d2f0ae5781..6f231008c8a456e7e5cc3bd42ad26823fa32b7b1 100644 (file)
@@ -724,7 +724,17 @@ void rvu_npc_install_promisc_entry(struct rvu *rvu, u16 pcifunc,
                action.index = pfvf->promisc_mce_idx;
        }
 
-       req.chan_mask = 0xFFFU;
+       /* For cn10k the upper two bits of the channel number are
+        * cpt channel number. with masking out these bits in the
+        * mcam entry, same entry used for NIX will allow packets
+        * received from cpt for parsing.
+        */
+       if (!is_rvu_otx2(rvu)) {
+               req.chan_mask = NIX_CHAN_CPT_X2P_MASK;
+       } else {
+               req.chan_mask = 0xFFFU;
+       }
+
        if (chan_cnt > 1) {
                if (!is_power_of_2(chan_cnt)) {
                        dev_err(rvu->dev,