[Intel-wired-lan] hardware filter for matching GTP-U TEID

Marcin Szycik marcin.szycik at linux.intel.com
Tue Aug 29 10:42:56 UTC 2023


On 29.08.2023 08:18, Subbaraya Sundeep Bhatta wrote:
> Hi Marcin Szycik,
> 
> Below commit demonstrates that we need to create a GTP tunnel netdev and
> create a tc filter on top of it. I am unable to understand how the tc filter on top of
> tunnel netdev $GTP0 propagates to the interface $PF0 for hardware offload?

It propagates via a notification from tunnel netdev to PF, and then to driver.
 
> commit 97aeb877de7f14f819fc2cf8388d7a2d8090489d
> Merge: 4d17d43 9a225f8
> Author: David S. Miller <davem at davemloft.net>
> Date:   Sat Mar 12 11:54:29 2022 +0000
> 
>     Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
> 
>     Tony Nguyen says:
> 
>     ====================
>     ice: GTP support in switchdev
> 
>     Marcin Szycik says:
> 
>     Add support for adding GTP-C and GTP-U filters in switchdev mode.
> 
>     To create a filter for GTP, create a GTP-type netdev with ip tool, enable
>     hardware offload, add qdisc and add a filter in tc:
> 
>     ip link add $GTP0 type gtp role <sgsn/ggsn> hsize <hsize>
>     ethtool -K $PF0 hw-tc-offload on
>     tc qdisc add dev $GTP0 ingress
>     tc filter add dev $GTP0 ingress prio 1 flower enc_key_id 1337 \
>     action mirred egress redirect dev $VF1_PR
> 
> 
> I have to redirect GTP-U packets with a TEID to a VF which may be in guest using hardware tc filter on PF.
>>From my understanding current TC and ethtool cannot specify match filters beyond L4 header fields.
> Can I add new command something like gtp-teid to tc filter?
> Please help me understand this.

You can specify TEID field with the enc_key_id option in tc (like in above
example). Meaning of that option changes depending on tunnel used, in case of
GTP it's TEID.

> 
> Thanks,
> Sundeep
> 
> 

I hope that answers your questions,
Marcin


More information about the Intel-wired-lan mailing list