File iplink-Support-VF-Trust.patch of Package iproute2.7171
From: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Date: Fri, 26 Feb 2016 02:40:18 +0000
Subject: iplink: Support VF Trust
Patch-mainline: v4.5.0
Git-commit: b6d77d9ee312246146e9b5ca70a8a1426898b484
References: bsc#1081176
Add IFLA_VF_TRUST message to trust the VF.
PF can accept some privileged operation from the trusted VF.
For example, ixgbe PF doesn't allow to enable VF promiscuous mode until
the VF is trusted because it may hurt performance.
To trust VF.
# ip link set dev eth0 vf 1 trust on
To untrust VF.
# ip link set dev eth0 vf 1 trust off
Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Acked-by: Michal Kubecek <mkubecek@suse.cz>
---
ip/iplink.c | 13 +++++++++++++
man/man8/ip-link.8.in | 7 ++++++-
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/ip/iplink.c b/ip/iplink.c
index e7c0e0017318..31ceb7e3520a 100644
--- a/ip/iplink.c
+++ b/ip/iplink.c
@@ -82,6 +82,7 @@ void iplink_usage(void)
fprintf(stderr, " [ spoofchk { on | off} ] ]\n");
fprintf(stderr, " [ query_rss { on | off} ] ]\n");
fprintf(stderr, " [ state { auto | enable | disable} ] ]\n");
+ fprintf(stderr, " [ trust { on | off} ] ]\n");
fprintf(stderr, " [ master DEVICE ]\n");
fprintf(stderr, " [ nomaster ]\n");
fprintf(stderr, " [ addrgenmode { eui64 | none | stable_secret } ]\n");
@@ -354,6 +355,18 @@ static int iplink_parse_vf(int vf, int *argcp, char ***argvp,
ivs.vf = vf;
addattr_l(&req->n, sizeof(*req), IFLA_VF_RSS_QUERY_EN, &ivs, sizeof(ivs));
+ } else if (matches(*argv, "trust") == 0) {
+ struct ifla_vf_trust ivt;
+ NEXT_ARG();
+ if (matches(*argv, "on") == 0)
+ ivt.setting = 1;
+ else if (matches(*argv, "off") == 0)
+ ivt.setting = 0;
+ else
+ invarg("Invalid \"trust\" value\n", *argv);
+ ivt.vf = vf;
+ addattr_l(&req->n, sizeof(*req), IFLA_VF_TRUST, &ivt, sizeof(ivt));
+
} else if (matches(*argv, "state") == 0) {
struct ifla_vf_link_state ivl;
diff --git a/man/man8/ip-link.8.in b/man/man8/ip-link.8.in
index 131530d26f4c..5295e5461b56 100644
--- a/man/man8/ip-link.8.in
+++ b/man/man8/ip-link.8.in
@@ -142,7 +142,8 @@ ip-link \- network device configuration
.B min_tx_rate
.IR TXRATE " ] ["
.B spoofchk { on | off } ] [
-.B state { auto | enable | disable}
+.B state { auto | enable | disable} ] [
+.B trust { on | off }
] |
.br
.B master
@@ -1018,6 +1019,10 @@ parameter must be specified.
reflection of the PF link state, enable lets the VF to communicate with other VFs on
this host even if the PF link state is down, disable causes the HW to drop any packets
sent by the VF.
+.sp
+.BI trust " on|off"
+- trust the specified VF user. This enables that VF user can set a specific feature
+which may impact security and/or performance. (e.g. VF multicast promiscuous mode)
.in -8
.TP
--
2.16.3