]> git.baikalelectronics.ru Git - kernel.git/commit
net: sched: add erspan option support to act_tunnel_key
authorXin Long <lucien.xin@gmail.com>
Thu, 21 Nov 2019 10:03:27 +0000 (18:03 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 21 Nov 2019 19:44:06 +0000 (11:44 -0800)
commitdc16d8c9e2062ba6508ba3950c5e6a0fb7010c9c
treea8c62b6d1b3d048ac3aad13f84d944d524a2b10b
parent66c2810f5d30c2190662717025e4e1bd38b99bf7
net: sched: add erspan option support to act_tunnel_key

This patch is to allow setting erspan options using the
act_tunnel_key action. Different from geneve options,
only one option can be set. And also, geneve options,
vxlan options or erspan options can't be set at the
same time.

Options are expressed as ver:index:dir:hwid, when ver
is set to 1, index will be applied while dir and hwid
will be ignored, and when ver is set to 2, dir and
hwid will be used while index will be ignored.

  # ip link add name erspan1 type erspan external
  # tc qdisc add dev eth0 ingress
  # tc filter add dev eth0 protocol ip parent ffff: \
           flower indev eth0 \
              ip_proto udp \
              action tunnel_key \
                  set src_ip 10.0.99.192 \
                  dst_ip 10.0.99.193 \
                  dst_port 6081 \
                  id 11 \
   erspan_opts 1:2:0:0 \
          action mirred egress redirect dev erspan1

v1->v2:
  - do the validation when dst is not yet allocated as Jakub suggested.
  - use Duplicate instead of Wrong in err msg for extack.

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/tc_act/tc_tunnel_key.h
net/sched/act_tunnel_key.c