net/sched: add tunnel option support to act_tunnel_key
Allow setting tunnel options using the act_tunnel_key action. Options are expressed as class:type:data and multiple options may be listed using a comma delimiter. # ip link add name geneve0 type geneve dstport 0 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 \ geneve_opts 0102:80:00800022,0102:80:00800022 \ action mirred egress redirect dev geneve0 Signed-off-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
256c87c17c
commit
0ed5269f9e
@@ -36,9 +36,35 @@ enum {
|
||||
TCA_TUNNEL_KEY_PAD,
|
||||
TCA_TUNNEL_KEY_ENC_DST_PORT, /* be16 */
|
||||
TCA_TUNNEL_KEY_NO_CSUM, /* u8 */
|
||||
TCA_TUNNEL_KEY_ENC_OPTS, /* Nested TCA_TUNNEL_KEY_ENC_OPTS_
|
||||
* attributes
|
||||
*/
|
||||
__TCA_TUNNEL_KEY_MAX,
|
||||
};
|
||||
|
||||
#define TCA_TUNNEL_KEY_MAX (__TCA_TUNNEL_KEY_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_TUNNEL_KEY_ENC_OPTS_UNSPEC,
|
||||
TCA_TUNNEL_KEY_ENC_OPTS_GENEVE, /* Nested
|
||||
* TCA_TUNNEL_KEY_ENC_OPTS_
|
||||
* attributes
|
||||
*/
|
||||
__TCA_TUNNEL_KEY_ENC_OPTS_MAX,
|
||||
};
|
||||
|
||||
#define TCA_TUNNEL_KEY_ENC_OPTS_MAX (__TCA_TUNNEL_KEY_ENC_OPTS_MAX - 1)
|
||||
|
||||
enum {
|
||||
TCA_TUNNEL_KEY_ENC_OPT_GENEVE_UNSPEC,
|
||||
TCA_TUNNEL_KEY_ENC_OPT_GENEVE_CLASS, /* be16 */
|
||||
TCA_TUNNEL_KEY_ENC_OPT_GENEVE_TYPE, /* u8 */
|
||||
TCA_TUNNEL_KEY_ENC_OPT_GENEVE_DATA, /* 4 to 128 bytes */
|
||||
|
||||
__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX,
|
||||
};
|
||||
|
||||
#define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \
|
||||
(__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1)
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user