1
0
Fork 0
alistair23-linux/drivers/net/ethernet
Maxime Chevallier 21da57a231 net: mvpp2: add a debugfs interface for the Header Parser
Marvell PPv2 Packer Header Parser has a TCAM based filter, that is not
trivial to configure and debug. Being able to dump TCAM entries from
userspace can be really helpful to help development of new features
and debug existing ones.

This commit adds a basic debugfs interface for the PPv2 driver, focusing
on TCAM related features.

<mnt>/mvpp2/ --- f2000000.ethernet
              \- f4000000.ethernet --- parser --- 000 ...
                                    |          \- 001
                                    |          \- ...
                                    |          \- 255 --- ai
                                    |                  \- header_data
                                    |                  \- lookup_id
                                    |                  \- sram
                                    |                  \- valid
                                    \- eth1 ...
                                    \- eth2 --- mac_filter
                                             \- parser_entries
                                             \- vid_filter

There's one directory per PPv2 instance, named after pdev->name to make
sure names are uniques. In each of these directories, there's :

 - one directory per interface on the controller, each containing :

   - "mac_filter", which lists all filtered addresses for this port
     (based on TCAM, not on the kernel's uc / mc lists)

   - "parser_entries", which lists the indices of all valid TCAM
      entries that have this port in their port map

   - "vid_filter", which lists the vids allowed on this port, based on
     TCAM

 - one "parser" directory (the parser is common to all ports), containing :

   - one directory per TCAM entry (256 of them, from 0 to 255), each
     containing :

     - "ai" : Contains the 1 byte Additional Info field from TCAM, and

     - "header_data" : Contains the 8 bytes Header Data extracted from
       the packet

     - "lookup_id" : Contains the 4 bits LU_ID

     - "sram" : contains the raw SRAM data, which is the result of the TCAM
		lookup. This readonly at the moment.

     - "valid" : Indicates if the entry is valid of not.

All entries are read-only, and everything is output in hex form.

Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-07-16 00:10:00 -07:00
..
3com Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-05-21 16:01:54 -04:00
8390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-05-21 16:01:54 -04:00
adaptec
aeroflex
agere
alacritech
allwinner
alteon net: alteon: acenic: remove redundant pointer rxdesc 2018-07-04 22:39:10 +09:00
altera ethernet: Use octal not symbolic permissions 2018-03-26 12:07:49 -04:00
amazon net: allow fallback function to pass netdev 2018-07-09 13:57:25 -07:00
amd net: Remove depends on HAS_DMA in case of platform dependency 2018-06-23 10:44:30 +09:00
apm net: Remove depends on HAS_DMA in case of platform dependency 2018-06-23 10:44:30 +09:00
apple net/macmace: Drop redundant MACH_IS_MAC test 2018-02-28 12:00:27 -05:00
aquantia net: aquantia: Make some functions static 2018-07-05 19:29:51 +09:00
arc net: Remove depends on HAS_DMA in case of platform dependency 2018-06-23 10:44:30 +09:00
atheros net: alx: remove redundant variable old_duplex 2018-07-04 22:39:10 +09:00
aurora net: ethernet: Make NET_VENDOR_AURORA default to yes 2018-07-05 20:05:54 +09:00
broadcom Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2018-07-14 18:47:44 -07:00
brocade treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
cadence net: ethernet: Add missing VENDOR to Cadence and Packet Engines symbols 2018-07-05 20:05:54 +09:00
calxeda net: Remove depends on HAS_DMA in case of platform dependency 2018-06-23 10:44:30 +09:00
cavium Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2018-07-14 18:47:44 -07:00
chelsio Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue 2018-07-11 23:03:32 -07:00
cirrus net/mac89x0: Replace custom debug logging with netif_* calls 2018-03-01 21:21:36 -05:00
cisco enic: do not overwrite error code 2018-06-20 08:10:13 +09:00
cortina net: gemini: Indicate that we can handle jumboframes 2018-07-12 17:39:15 -07:00
davicom treewide: simplify Kconfig dependencies for removed archs 2018-03-26 15:55:57 +02:00
dec
dlink
emulex be2net: move rss_flags field in rss_info to ensure proper alignment 2018-07-12 00:03:31 -07:00
ezchip
faraday net/ncsi: Silence debug messages 2018-06-20 07:26:58 +09:00
freescale net: ethernet: gianfar_ethtool: remove redundant variable last_rule_idx 2018-07-04 22:39:11 +09:00
fujitsu
hisilicon net: allow fallback function to pass netdev 2018-07-09 13:57:25 -07:00
hp
huawei net: hinic: remove redundant pointer pfhwdev 2018-07-04 22:39:11 +09:00
i825xx
ibm treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
intel Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2018-07-14 18:47:44 -07:00
marvell net: mvpp2: add a debugfs interface for the Header Parser 2018-07-16 00:10:00 -07:00
mediatek net: mediatek: use of_device_get_match_data() 2018-04-16 13:43:07 -04:00
mellanox Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2018-07-14 18:47:44 -07:00
micrel ethernet: micrel: remove redundant pointer 'info' 2018-07-04 22:39:11 +09:00
microchip net: drivers/net: Convert random_ether_addr to eth_random_addr 2018-06-23 10:49:14 +09:00
moxa treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
mscc net: mscc: ocelot: add VLAN filtering 2018-06-28 14:18:49 +09:00
myricom ethernet: Use octal not symbolic permissions 2018-03-26 12:07:49 -04:00
natsemi net/sonic: Use dma_mapping_error() 2018-05-31 14:17:33 -04:00
neterion treewide: Use array_size() in vzalloc() 2018-06-12 16:19:22 -07:00
netronome Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2018-07-14 18:47:44 -07:00
ni treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
nuvoton
nvidia treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
nxp
oki-semi net: pch_gbe: Clean up pch_gbe_set_multi 2018-06-23 20:52:09 +09:00
packetengines net: ethernet: Add missing VENDOR to Cadence and Packet Engines symbols 2018-07-05 20:05:54 +09:00
pasemi treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
qlogic xdp: don't make drivers report attachment mode 2018-07-13 20:26:35 +02:00
qualcomm net: drivers/net: Convert random_ether_addr to eth_random_addr 2018-06-23 10:49:14 +09:00
rdc
realtek r8169: fix runtime suspend 2018-07-05 13:24:32 +09:00
renesas net: allow ndo_select_queue to pass netdev 2018-07-09 13:41:34 -07:00
rocker rocker: rocker_main: Ignore bridge VLAN events 2018-05-31 14:13:43 -04:00
samsung ethernet: Use octal not symbolic permissions 2018-03-26 12:07:49 -04:00
seeq
sfc net: ethernet: sfc: Make subdir logic consistent with other vendors 2018-07-05 20:05:54 +09:00
sgi
silan
sis
smsc epic100: remove redundant variable 'irq' 2018-07-04 22:39:11 +09:00
socionext net: socionext: remove redundant pointer ndev 2018-07-05 19:30:26 +09:00
stmicro stmmac: fix signed 64-bit division 2018-07-07 21:16:53 +09:00
sun net: allow ndo_select_queue to pass netdev 2018-07-09 13:41:34 -07:00
synopsys
tehuti net: tehuti: remove redundant pointer skb 2018-07-05 19:33:39 +09:00
ti net: ethernet: ti: cpts: break cycle once late ts is matched 2018-07-12 00:00:07 -07:00
toshiba treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
tundra
via
wiznet
xilinx net: emaclite: Remove unnecessary spaces 2018-06-30 20:15:45 +09:00
xircom
xscale
Kconfig net: ethernet: Sort Kconfig sourcing alphabetically 2018-05-21 12:14:47 -04:00
Makefile net: ethernet: sfc: Make subdir logic consistent with other vendors 2018-07-05 20:05:54 +09:00
dnet.c
dnet.h
ec_bhf.c ethernet: Use octal not symbolic permissions 2018-03-26 12:07:49 -04:00
ethoc.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
fealnx.c
jme.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
jme.h
korina.c
lantiq_etop.c net: Add generic ndo_select_queue functions 2018-07-09 13:15:34 -07:00
netx-eth.c