Subject: Re: [RFC net-next 0/2] net/sched: cls_flower, act_mirred: VXLAN redirect using TC

From: John Fastabend <[email-masked]>
Date: Sun, 14 Aug 2016 22:05:31 -0700

On 16-08-14 10:53 AM, Cong Wang wrote:
> On Sun, Aug 14, 2016 at 7:06 AM, Amir Vadai <[email-masked]> wrote:
>> tc qdisc add dev $ETH ingress
>>
>> # ENCAP rule for ARP
>> tc filter add dev $ETH protocol 0x806 parent ffff: prio 11 \
>>                 flower \
>>                 action mirred egress redirect dev $VXLAN enc_src_ip 11.11.0.1 enc_dst_ip 11.11.0.2 enc_key_id 11 enc_dst_port 4789
>>
>> # ENCAP rule for ICMP
>> tc filter add dev $ETH protocol ip parent ffff: prio 10 \
>>                 flower ip_proto 1 \
>>                 action mirred egress redirect dev $VXLAN enc_src_ip 11.11.0.1 enc_dst_ip 11.11.0.2 enc_key_id 11 enc_dst_port 4789
>>
> 
> I don't like this. This makes mirred action unnecessarily
> complex, it should really just mirror or redirect packets as
> it is, why it should be aware of tunnel information?
> 
> I think you probably need to introduce a new tc action
> for these tunnel information and pipe it to mirred.
> 

I agree how about a set_tunnel_key() action it could be very
similar to the bpf helper routine. Then you can string it
together with other actions easily.

.John