summaryrefslogtreecommitdiff
path: root/drivers/net/dsa/bcm_sf2_regs.h
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2017-10-21 00:39:47 +0300
committerDavid S. Miller <davem@davemloft.net>2017-10-23 05:06:47 +0300
commitba0696c22e7c5b7394283a0dbef1462252d1606f (patch)
tree075469fb5512308d18c70e963f3f20e70e9a569f /drivers/net/dsa/bcm_sf2_regs.h
parent4daa70cfb69186a4fe70fa2fefc271a41ece5085 (diff)
downloadlinux-ba0696c22e7c5b7394283a0dbef1462252d1606f.tar.xz
net: dsa: bcm_sf2: Add support for IPv6 CFP rules
Inserting IPv6 CFP rules complicates the code a little bit in that we need to insert two rules side by side and chain them to match a full IPv6 tuple (src, dst IPv6 + port + protocol). Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/dsa/bcm_sf2_regs.h')
-rw-r--r--drivers/net/dsa/bcm_sf2_regs.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/dsa/bcm_sf2_regs.h b/drivers/net/dsa/bcm_sf2_regs.h
index 263e4c758795..93c600d1f732 100644
--- a/drivers/net/dsa/bcm_sf2_regs.h
+++ b/drivers/net/dsa/bcm_sf2_regs.h
@@ -313,6 +313,7 @@ enum bcm_sf2_reg_offs {
#define SLICE_VALID 3
#define SLICE_NUM_SHIFT 2
#define SLICE_NUM(x) ((x) << SLICE_NUM_SHIFT)
+#define SLICE_NUM_MASK 0xff
#define CORE_CFP_MASK_PORT_0 0x280c0
@@ -408,6 +409,12 @@ enum bcm_sf2_reg_offs {
#define CFG_UDF_EOL2 (2 << CFG_UDF_OFFSET_BASE_SHIFT)
#define CFG_UDF_EOL3 (3 << CFG_UDF_OFFSET_BASE_SHIFT)
+/* IPv6 slices */
+#define CORE_UDF_0_B_0_8_PORT_0 0x28500
+
+/* IPv6 chained slices */
+#define CORE_UDF_0_D_0_11_PORT_0 0x28680
+
/* Number of slices for IPv4, IPv6 and non-IP */
#define UDF_NUM_SLICES 4
#define UDFS_PER_SLICE 9