Skip to content
  • Jose Abreu's avatar
    net: stmmac: Add support for U32 TC filter using Flexible RX Parser · 4dbbe8dd
    Jose Abreu authored
    
    
    This adds support for U32 filter by using an HW only feature called
    Flexible RX Parser. This allow us to match any given packet field with a
    pattern and accept/reject or even route the packet to a specific DMA
    channel.
    
    Right now we only support acception or rejection of frame and we only
    support simple rules. Though, the Parser has the flexibility of jumping to
    specific rules as an if condition so complex rules can be established.
    
    This is only supported in GMAC5.10+.
    
    The following commands can be used to test this code:
    
    	1) Setup an ingress qdisk:
    	# tc qdisc add dev eth0 handle ffff: ingress
    
    	2) Setup a filter (e.g. filter by IP):
    	# tc filter add dev eth0 parent ffff: protocol ip u32 match ip \
    		src 192.168.0.3 skip_sw action drop
    
    In every tests performed we always used the "skip_sw" flag to make sure
    only the RX Parser was involved.
    
    Signed-off-by: default avatarJose Abreu <joabreu@synopsys.com>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: Joao Pinto <jpinto@synopsys.com>
    Cc: Vitor Soares <soares@synopsys.com>
    Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
    Cc: Alexandre Torgue <alexandre.torgue@st.com>
    Cc: Jakub Kicinski <kubakici@wp.pl>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4dbbe8dd