All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v10 0/7]: ixgbevf: Allow querying VFs RSS indirection table and key
@ 2015-03-30 18:35 ` Vlad Zolotarov
  0 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: netdev; +Cc: jeffrey.t.kirsher, intel-wired-lan, avi, gleb, Vlad Zolotarov

Add the ethtool ops to VF driver to allow querying the RSS indirection table
and RSS Random Key. 

Currently we will support only 82599 and x540 devices. On these devices VFs share the
RSS Redirection Table and Hash Key with a PF and letting the VF query this information may
introduce some security risks. Therefore we will disable this feature by default.

The new netdev op is going to allow a system administrator to change the default behaviour with
"ip link set" command. The relevant iproute2 patch has already been sent and awaits for this series to
be accepted.

 - netdev: Add a new netdev op to allow/block VF from querying RSS Indirection Table and
   RSS Hash Key.
 - PF driver: Add new VF-PF channel commands.
 - VF driver: Utilize these new commands and add the corresponding
              ethtool callbacks.

New in v10:
   - United the for-each-VF loops in __ixgbe_enable_sriov() and
     ixgbe_configure_virtualization().
   - Drop the PRSTYPE reading since it's VF that finally modifies it (via VFPSRTYPE)
     and we will add the proper masking at the VF driver level.
   - Return more self-explaining values.
   - Expose the _locked function in the vf.h interface according
     to the current ixgbevf layering model.
   - Mask the received RETA according to the VF Rx queues configuration.
   - Added IXGBEVF_82599_RETA_SIZE macro.
   - Move the mailbox locks outside the vf.c functions.

New in v9:
   - Reduce the support to 82599 and x540 devices only.
   - ixgbe: improvements in query RETA VF-PF command implementation:
      - Use the cached RETA contents.
      - Compress the mailbox message.
   - ixgbevf: improvements in RETA query code:
      - Implement a "compression" of VF's RETA contents: pass only 2 bits
        per-entry.
      - RETA querying is done in a single mailbox operation thanks to compression.
   - Get the RSS HASH Key value from the PF's adapter->rss_key[].
   - Added IXGBEVF_RSS_HASH_KEY_SIZE macro.

New in v8:
   - Protect new mailbox operations with adapter.mbx_lock spinlock.

New in v7:
   - Add ixgbe_mbox_api_12 case in ixgbevf_set_num_queues().
   - Properly expand HW RETA into the ethtool buffer.

New in v6:
   - Add a proper return code when an VF query operations are blocked by PF.
   - Added a required get_rxnfc callback to ixgbevf_ethtool_ops.
   - Changed a description of PATCH7: set the correct ethtool options names.

New in v5:
   - Added a new netdev op to allow/block VF from querying RSS Indirection Table and
     RSS Hash Key.
   - Let VF query the RSS info only if VF is allowed to.

New in v4:
   - Forgot to run checkpatch on v3 and there were a few styling things to fix. ;)

New in v3:
   - Added a missing support for x550 devices.
   - Mask the indirection table values according to PSRTYPE[n].RQPL.
   - Minimized the number of added VF-PF commands.

New in v2:
   - Added a detailed description to patches 4 and 5.

New in v1 (compared to RFC):
   - Use "if-else" statement instead of a "switch-case" for a single option case.
     More specifically: in cases where the newly added API version is the only one
     allowed. We may consider using a "switch-case" back again when the list of
     allowed API versions in these specific places grows up.


Vlad Zolotarov (7):
  if_link: Add an additional parameter to ifla_vf_info for RSS querying
  ixgbe: Add a new netdev op to allow/prevent a VF from querying an RSS
    info
  ixgbe: Add a RETA query command to VF-PF channel API
  ixgbevf: Add a RETA query code
  ixgbe: Add GET_RSS_KEY command to VF-PF channel commands set
  ixgbevf: Add RSS Key query code
  ixgbevf: Add the appropriate ethtool ops to query RSS indirection
    table and key

 drivers/net/ethernet/intel/ixgbe/ixgbe.h          |   1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c     |   5 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h      |   5 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c    |  90 +++++++++++++++-
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h    |   2 +
 drivers/net/ethernet/intel/ixgbevf/ethtool.c      |  69 ++++++++++++
 drivers/net/ethernet/intel/ixgbevf/ixgbevf.h      |   2 +
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |   5 +-
 drivers/net/ethernet/intel/ixgbevf/mbx.h          |   5 +
 drivers/net/ethernet/intel/ixgbevf/vf.c           | 124 ++++++++++++++++++++++
 drivers/net/ethernet/intel/ixgbevf/vf.h           |   2 +
 include/linux/if_link.h                           |   1 +
 include/linux/netdevice.h                         |   8 ++
 include/uapi/linux/if_link.h                      |   8 ++
 net/core/rtnetlink.c                              |  32 ++++--
 15 files changed, 350 insertions(+), 9 deletions(-)

-- 
2.1.0

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 0/7]: ixgbevf: Allow querying VFs RSS indirection table and key
@ 2015-03-30 18:35 ` Vlad Zolotarov
  0 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: intel-wired-lan

Add the ethtool ops to VF driver to allow querying the RSS indirection table
and RSS Random Key. 

Currently we will support only 82599 and x540 devices. On these devices VFs share the
RSS Redirection Table and Hash Key with a PF and letting the VF query this information may
introduce some security risks. Therefore we will disable this feature by default.

The new netdev op is going to allow a system administrator to change the default behaviour with
"ip link set" command. The relevant iproute2 patch has already been sent and awaits for this series to
be accepted.

 - netdev: Add a new netdev op to allow/block VF from querying RSS Indirection Table and
   RSS Hash Key.
 - PF driver: Add new VF-PF channel commands.
 - VF driver: Utilize these new commands and add the corresponding
              ethtool callbacks.

New in v10:
   - United the for-each-VF loops in __ixgbe_enable_sriov() and
     ixgbe_configure_virtualization().
   - Drop the PRSTYPE reading since it's VF that finally modifies it (via VFPSRTYPE)
     and we will add the proper masking at the VF driver level.
   - Return more self-explaining values.
   - Expose the _locked function in the vf.h interface according
     to the current ixgbevf layering model.
   - Mask the received RETA according to the VF Rx queues configuration.
   - Added IXGBEVF_82599_RETA_SIZE macro.
   - Move the mailbox locks outside the vf.c functions.

New in v9:
   - Reduce the support to 82599 and x540 devices only.
   - ixgbe: improvements in query RETA VF-PF command implementation:
      - Use the cached RETA contents.
      - Compress the mailbox message.
   - ixgbevf: improvements in RETA query code:
      - Implement a "compression" of VF's RETA contents: pass only 2 bits
        per-entry.
      - RETA querying is done in a single mailbox operation thanks to compression.
   - Get the RSS HASH Key value from the PF's adapter->rss_key[].
   - Added IXGBEVF_RSS_HASH_KEY_SIZE macro.

New in v8:
   - Protect new mailbox operations with adapter.mbx_lock spinlock.

New in v7:
   - Add ixgbe_mbox_api_12 case in ixgbevf_set_num_queues().
   - Properly expand HW RETA into the ethtool buffer.

New in v6:
   - Add a proper return code when an VF query operations are blocked by PF.
   - Added a required get_rxnfc callback to ixgbevf_ethtool_ops.
   - Changed a description of PATCH7: set the correct ethtool options names.

New in v5:
   - Added a new netdev op to allow/block VF from querying RSS Indirection Table and
     RSS Hash Key.
   - Let VF query the RSS info only if VF is allowed to.

New in v4:
   - Forgot to run checkpatch on v3 and there were a few styling things to fix. ;)

New in v3:
   - Added a missing support for x550 devices.
   - Mask the indirection table values according to PSRTYPE[n].RQPL.
   - Minimized the number of added VF-PF commands.

New in v2:
   - Added a detailed description to patches 4 and 5.

New in v1 (compared to RFC):
   - Use "if-else" statement instead of a "switch-case" for a single option case.
     More specifically: in cases where the newly added API version is the only one
     allowed. We may consider using a "switch-case" back again when the list of
     allowed API versions in these specific places grows up.


Vlad Zolotarov (7):
  if_link: Add an additional parameter to ifla_vf_info for RSS querying
  ixgbe: Add a new netdev op to allow/prevent a VF from querying an RSS
    info
  ixgbe: Add a RETA query command to VF-PF channel API
  ixgbevf: Add a RETA query code
  ixgbe: Add GET_RSS_KEY command to VF-PF channel commands set
  ixgbevf: Add RSS Key query code
  ixgbevf: Add the appropriate ethtool ops to query RSS indirection
    table and key

 drivers/net/ethernet/intel/ixgbe/ixgbe.h          |   1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c     |   5 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h      |   5 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c    |  90 +++++++++++++++-
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h    |   2 +
 drivers/net/ethernet/intel/ixgbevf/ethtool.c      |  69 ++++++++++++
 drivers/net/ethernet/intel/ixgbevf/ixgbevf.h      |   2 +
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |   5 +-
 drivers/net/ethernet/intel/ixgbevf/mbx.h          |   5 +
 drivers/net/ethernet/intel/ixgbevf/vf.c           | 124 ++++++++++++++++++++++
 drivers/net/ethernet/intel/ixgbevf/vf.h           |   2 +
 include/linux/if_link.h                           |   1 +
 include/linux/netdevice.h                         |   8 ++
 include/uapi/linux/if_link.h                      |   8 ++
 net/core/rtnetlink.c                              |  32 ++++--
 15 files changed, 350 insertions(+), 9 deletions(-)

-- 
2.1.0


^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH net-next v10 1/7] if_link: Add an additional parameter to ifla_vf_info for RSS querying
  2015-03-30 18:35 ` [Intel-wired-lan] " Vlad Zolotarov
@ 2015-03-30 18:35   ` Vlad Zolotarov
  -1 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: netdev; +Cc: jeffrey.t.kirsher, intel-wired-lan, avi, gleb, Vlad Zolotarov

Add configuration setting for drivers to allow/block an RSS Redirection Table and
a Hash Key querying for discrete VFs.

On some devices VF share the mentioned above information with PF and querying it may
adduce a theoretical security risk. We want to let a system administrator to decide if he/she
wants to take this risk or not.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
---
 include/linux/if_link.h      |  1 +
 include/linux/netdevice.h    |  8 ++++++++
 include/uapi/linux/if_link.h |  8 ++++++++
 net/core/rtnetlink.c         | 32 ++++++++++++++++++++++++++------
 4 files changed, 43 insertions(+), 6 deletions(-)

diff --git a/include/linux/if_link.h b/include/linux/if_link.h
index 119130e..da49299 100644
--- a/include/linux/if_link.h
+++ b/include/linux/if_link.h
@@ -14,5 +14,6 @@ struct ifla_vf_info {
 	__u32 linkstate;
 	__u32 min_tx_rate;
 	__u32 max_tx_rate;
+	__u32 rss_query_en;
 };
 #endif /* _LINUX_IF_LINK_H */
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 08c4ab3..a858cda 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -875,6 +875,11 @@ typedef u16 (*select_queue_fallback_t)(struct net_device *dev,
  * int (*ndo_set_vf_link_state)(struct net_device *dev, int vf, int link_state);
  * int (*ndo_set_vf_port)(struct net_device *dev, int vf,
  *			  struct nlattr *port[]);
+ *
+ *      Enable or disable the VF ability to query its RSS Redirection Table and
+ *      Hash Key. This is needed since on some devices VF share this information
+ *      with PF and querying it may adduce a theoretical security risk.
+ * int (*ndo_set_vf_rss_query_en)(struct net_device *dev, int vf, bool setting);
  * int (*ndo_get_vf_port)(struct net_device *dev, int vf, struct sk_buff *skb);
  * int (*ndo_setup_tc)(struct net_device *dev, u8 tc)
  * 	Called to setup 'tc' number of traffic classes in the net device. This
@@ -1094,6 +1099,9 @@ struct net_device_ops {
 						   struct nlattr *port[]);
 	int			(*ndo_get_vf_port)(struct net_device *dev,
 						   int vf, struct sk_buff *skb);
+	int			(*ndo_set_vf_rss_query_en)(
+						   struct net_device *dev,
+						   int vf, bool setting);
 	int			(*ndo_setup_tc)(struct net_device *dev, u8 tc);
 #if IS_ENABLED(CONFIG_FCOE)
 	int			(*ndo_fcoe_enable)(struct net_device *dev);
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index 7ffb18d..d9cd192 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -465,6 +465,9 @@ enum {
 	IFLA_VF_SPOOFCHK,	/* Spoof Checking on/off switch */
 	IFLA_VF_LINK_STATE,	/* link state enable/disable/auto switch */
 	IFLA_VF_RATE,		/* Min and Max TX Bandwidth Allocation */
+	IFLA_VF_RSS_QUERY_EN,	/* RSS Redirection Table and Hash Key query
+				 * on/off switch
+				 */
 	__IFLA_VF_MAX,
 };
 
@@ -509,6 +512,11 @@ struct ifla_vf_link_state {
 	__u32 link_state;
 };
 
+struct ifla_vf_rss_query_en {
+	__u32 vf;
+	__u32 setting;
+};
+
 /* VF ports management section
  *
  *	Nested layout of set/get msg is:
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index b96ac21..dcbf568 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -818,7 +818,8 @@ static inline int rtnl_vfinfo_size(const struct net_device *dev,
 			 nla_total_size(sizeof(struct ifla_vf_vlan)) +
 			 nla_total_size(sizeof(struct ifla_vf_spoofchk)) +
 			 nla_total_size(sizeof(struct ifla_vf_rate)) +
-			 nla_total_size(sizeof(struct ifla_vf_link_state)));
+			 nla_total_size(sizeof(struct ifla_vf_link_state)) +
+			 nla_total_size(sizeof(struct ifla_vf_rss_query_en)));
 		return size;
 	} else
 		return 0;
@@ -1132,14 +1133,16 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 			struct ifla_vf_tx_rate vf_tx_rate;
 			struct ifla_vf_spoofchk vf_spoofchk;
 			struct ifla_vf_link_state vf_linkstate;
+			struct ifla_vf_rss_query_en vf_rss_query_en;
 
 			/*
 			 * Not all SR-IOV capable drivers support the
-			 * spoofcheck query.  Preset to -1 so the user
-			 * space tool can detect that the driver didn't
-			 * report anything.
+			 * spoofcheck and "RSS query enable" query.  Preset to
+			 * -1 so the user space tool can detect that the driver
+			 * didn't report anything.
 			 */
 			ivi.spoofchk = -1;
+			ivi.rss_query_en = -1;
 			memset(ivi.mac, 0, sizeof(ivi.mac));
 			/* The default value for VF link state is "auto"
 			 * IFLA_VF_LINK_STATE_AUTO which equals zero
@@ -1152,7 +1155,8 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 				vf_rate.vf =
 				vf_tx_rate.vf =
 				vf_spoofchk.vf =
-				vf_linkstate.vf = ivi.vf;
+				vf_linkstate.vf =
+				vf_rss_query_en.vf = ivi.vf;
 
 			memcpy(vf_mac.mac, ivi.mac, sizeof(ivi.mac));
 			vf_vlan.vlan = ivi.vlan;
@@ -1162,6 +1166,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 			vf_rate.max_tx_rate = ivi.max_tx_rate;
 			vf_spoofchk.setting = ivi.spoofchk;
 			vf_linkstate.link_state = ivi.linkstate;
+			vf_rss_query_en.setting = ivi.rss_query_en;
 			vf = nla_nest_start(skb, IFLA_VF_INFO);
 			if (!vf) {
 				nla_nest_cancel(skb, vfinfo);
@@ -1176,7 +1181,10 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 			    nla_put(skb, IFLA_VF_SPOOFCHK, sizeof(vf_spoofchk),
 				    &vf_spoofchk) ||
 			    nla_put(skb, IFLA_VF_LINK_STATE, sizeof(vf_linkstate),
-				    &vf_linkstate))
+				    &vf_linkstate) ||
+			    nla_put(skb, IFLA_VF_RSS_QUERY_EN,
+				    sizeof(vf_rss_query_en),
+				    &vf_rss_query_en))
 				goto nla_put_failure;
 			nla_nest_end(skb, vf);
 		}
@@ -1290,6 +1298,7 @@ static const struct nla_policy ifla_vf_policy[IFLA_VF_MAX+1] = {
 	[IFLA_VF_SPOOFCHK]	= { .len = sizeof(struct ifla_vf_spoofchk) },
 	[IFLA_VF_RATE]		= { .len = sizeof(struct ifla_vf_rate) },
 	[IFLA_VF_LINK_STATE]	= { .len = sizeof(struct ifla_vf_link_state) },
+	[IFLA_VF_RSS_QUERY_EN]	= { .len = sizeof(struct ifla_vf_rss_query_en) },
 };
 
 static const struct nla_policy ifla_port_policy[IFLA_PORT_MAX+1] = {
@@ -1500,6 +1509,17 @@ static int do_setvfinfo(struct net_device *dev, struct nlattr *attr)
 								 ivl->link_state);
 			break;
 		}
+		case IFLA_VF_RSS_QUERY_EN: {
+			struct ifla_vf_rss_query_en *ivrssq_en;
+
+			ivrssq_en = nla_data(vf);
+			err = -EOPNOTSUPP;
+			if (ops->ndo_set_vf_rss_query_en)
+				err = ops->ndo_set_vf_rss_query_en(dev,
+							    ivrssq_en->vf,
+							    ivrssq_en->setting);
+			break;
+		}
 		default:
 			err = -EINVAL;
 			break;
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 1/7] if_link: Add an additional parameter to ifla_vf_info for RSS querying
@ 2015-03-30 18:35   ` Vlad Zolotarov
  0 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: intel-wired-lan

Add configuration setting for drivers to allow/block an RSS Redirection Table and
a Hash Key querying for discrete VFs.

On some devices VF share the mentioned above information with PF and querying it may
adduce a theoretical security risk. We want to let a system administrator to decide if he/she
wants to take this risk or not.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
---
 include/linux/if_link.h      |  1 +
 include/linux/netdevice.h    |  8 ++++++++
 include/uapi/linux/if_link.h |  8 ++++++++
 net/core/rtnetlink.c         | 32 ++++++++++++++++++++++++++------
 4 files changed, 43 insertions(+), 6 deletions(-)

diff --git a/include/linux/if_link.h b/include/linux/if_link.h
index 119130e..da49299 100644
--- a/include/linux/if_link.h
+++ b/include/linux/if_link.h
@@ -14,5 +14,6 @@ struct ifla_vf_info {
 	__u32 linkstate;
 	__u32 min_tx_rate;
 	__u32 max_tx_rate;
+	__u32 rss_query_en;
 };
 #endif /* _LINUX_IF_LINK_H */
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 08c4ab3..a858cda 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -875,6 +875,11 @@ typedef u16 (*select_queue_fallback_t)(struct net_device *dev,
  * int (*ndo_set_vf_link_state)(struct net_device *dev, int vf, int link_state);
  * int (*ndo_set_vf_port)(struct net_device *dev, int vf,
  *			  struct nlattr *port[]);
+ *
+ *      Enable or disable the VF ability to query its RSS Redirection Table and
+ *      Hash Key. This is needed since on some devices VF share this information
+ *      with PF and querying it may adduce a theoretical security risk.
+ * int (*ndo_set_vf_rss_query_en)(struct net_device *dev, int vf, bool setting);
  * int (*ndo_get_vf_port)(struct net_device *dev, int vf, struct sk_buff *skb);
  * int (*ndo_setup_tc)(struct net_device *dev, u8 tc)
  * 	Called to setup 'tc' number of traffic classes in the net device. This
@@ -1094,6 +1099,9 @@ struct net_device_ops {
 						   struct nlattr *port[]);
 	int			(*ndo_get_vf_port)(struct net_device *dev,
 						   int vf, struct sk_buff *skb);
+	int			(*ndo_set_vf_rss_query_en)(
+						   struct net_device *dev,
+						   int vf, bool setting);
 	int			(*ndo_setup_tc)(struct net_device *dev, u8 tc);
 #if IS_ENABLED(CONFIG_FCOE)
 	int			(*ndo_fcoe_enable)(struct net_device *dev);
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index 7ffb18d..d9cd192 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -465,6 +465,9 @@ enum {
 	IFLA_VF_SPOOFCHK,	/* Spoof Checking on/off switch */
 	IFLA_VF_LINK_STATE,	/* link state enable/disable/auto switch */
 	IFLA_VF_RATE,		/* Min and Max TX Bandwidth Allocation */
+	IFLA_VF_RSS_QUERY_EN,	/* RSS Redirection Table and Hash Key query
+				 * on/off switch
+				 */
 	__IFLA_VF_MAX,
 };
 
@@ -509,6 +512,11 @@ struct ifla_vf_link_state {
 	__u32 link_state;
 };
 
+struct ifla_vf_rss_query_en {
+	__u32 vf;
+	__u32 setting;
+};
+
 /* VF ports management section
  *
  *	Nested layout of set/get msg is:
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index b96ac21..dcbf568 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -818,7 +818,8 @@ static inline int rtnl_vfinfo_size(const struct net_device *dev,
 			 nla_total_size(sizeof(struct ifla_vf_vlan)) +
 			 nla_total_size(sizeof(struct ifla_vf_spoofchk)) +
 			 nla_total_size(sizeof(struct ifla_vf_rate)) +
-			 nla_total_size(sizeof(struct ifla_vf_link_state)));
+			 nla_total_size(sizeof(struct ifla_vf_link_state)) +
+			 nla_total_size(sizeof(struct ifla_vf_rss_query_en)));
 		return size;
 	} else
 		return 0;
@@ -1132,14 +1133,16 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 			struct ifla_vf_tx_rate vf_tx_rate;
 			struct ifla_vf_spoofchk vf_spoofchk;
 			struct ifla_vf_link_state vf_linkstate;
+			struct ifla_vf_rss_query_en vf_rss_query_en;
 
 			/*
 			 * Not all SR-IOV capable drivers support the
-			 * spoofcheck query.  Preset to -1 so the user
-			 * space tool can detect that the driver didn't
-			 * report anything.
+			 * spoofcheck and "RSS query enable" query.  Preset to
+			 * -1 so the user space tool can detect that the driver
+			 * didn't report anything.
 			 */
 			ivi.spoofchk = -1;
+			ivi.rss_query_en = -1;
 			memset(ivi.mac, 0, sizeof(ivi.mac));
 			/* The default value for VF link state is "auto"
 			 * IFLA_VF_LINK_STATE_AUTO which equals zero
@@ -1152,7 +1155,8 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 				vf_rate.vf =
 				vf_tx_rate.vf =
 				vf_spoofchk.vf =
-				vf_linkstate.vf = ivi.vf;
+				vf_linkstate.vf =
+				vf_rss_query_en.vf = ivi.vf;
 
 			memcpy(vf_mac.mac, ivi.mac, sizeof(ivi.mac));
 			vf_vlan.vlan = ivi.vlan;
@@ -1162,6 +1166,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 			vf_rate.max_tx_rate = ivi.max_tx_rate;
 			vf_spoofchk.setting = ivi.spoofchk;
 			vf_linkstate.link_state = ivi.linkstate;
+			vf_rss_query_en.setting = ivi.rss_query_en;
 			vf = nla_nest_start(skb, IFLA_VF_INFO);
 			if (!vf) {
 				nla_nest_cancel(skb, vfinfo);
@@ -1176,7 +1181,10 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 			    nla_put(skb, IFLA_VF_SPOOFCHK, sizeof(vf_spoofchk),
 				    &vf_spoofchk) ||
 			    nla_put(skb, IFLA_VF_LINK_STATE, sizeof(vf_linkstate),
-				    &vf_linkstate))
+				    &vf_linkstate) ||
+			    nla_put(skb, IFLA_VF_RSS_QUERY_EN,
+				    sizeof(vf_rss_query_en),
+				    &vf_rss_query_en))
 				goto nla_put_failure;
 			nla_nest_end(skb, vf);
 		}
@@ -1290,6 +1298,7 @@ static const struct nla_policy ifla_vf_policy[IFLA_VF_MAX+1] = {
 	[IFLA_VF_SPOOFCHK]	= { .len = sizeof(struct ifla_vf_spoofchk) },
 	[IFLA_VF_RATE]		= { .len = sizeof(struct ifla_vf_rate) },
 	[IFLA_VF_LINK_STATE]	= { .len = sizeof(struct ifla_vf_link_state) },
+	[IFLA_VF_RSS_QUERY_EN]	= { .len = sizeof(struct ifla_vf_rss_query_en) },
 };
 
 static const struct nla_policy ifla_port_policy[IFLA_PORT_MAX+1] = {
@@ -1500,6 +1509,17 @@ static int do_setvfinfo(struct net_device *dev, struct nlattr *attr)
 								 ivl->link_state);
 			break;
 		}
+		case IFLA_VF_RSS_QUERY_EN: {
+			struct ifla_vf_rss_query_en *ivrssq_en;
+
+			ivrssq_en = nla_data(vf);
+			err = -EOPNOTSUPP;
+			if (ops->ndo_set_vf_rss_query_en)
+				err = ops->ndo_set_vf_rss_query_en(dev,
+							    ivrssq_en->vf,
+							    ivrssq_en->setting);
+			break;
+		}
 		default:
 			err = -EINVAL;
 			break;
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH net-next v10 2/7] ixgbe: Add a new netdev op to allow/prevent a VF from querying an RSS info
  2015-03-30 18:35 ` [Intel-wired-lan] " Vlad Zolotarov
@ 2015-03-30 18:35   ` Vlad Zolotarov
  -1 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: netdev; +Cc: jeffrey.t.kirsher, intel-wired-lan, avi, gleb, Vlad Zolotarov

Implements the new netdev op to allow user to enable/disable the ability
of a specific VF to query its RSS Indirection Table and an RSS Hash Key.

This patch limits the new feature support to 82599 and x540 devices only.
Support for other devices will be added later.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
---
New in v10:
   - United the for-each-VF loops in __ixgbe_enable_sriov() and
     ixgbe_configure_virtualization().
   - Use the EOPNOTSUPP error code instead of EPERM when operation is
     not supported.

New in v9:
   - Reduce the support to 82599 and x540 devices only.
---
 drivers/net/ethernet/intel/ixgbe/ixgbe.h       |  1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c  |  5 ++++
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 34 ++++++++++++++++++++++++--
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h |  2 ++
 4 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
index 42ed4b4..639aa1b 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
@@ -151,6 +151,7 @@ struct vf_data_storage {
 	u16 tx_rate;
 	u16 vlan_count;
 	u8 spoofchk_enabled;
+	bool rss_query_enabled;
 	unsigned int vf_api;
 };
 
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index a99bc5d..929f12f 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -3655,6 +3655,10 @@ static void ixgbe_configure_virtualization(struct ixgbe_adapter *adapter)
 		/* enable ethertype anti spoofing if hw supports it */
 		if (hw->mac.ops.set_ethertype_anti_spoofing)
 			hw->mac.ops.set_ethertype_anti_spoofing(hw, true, i);
+
+		/* Enable/Disable RSS query feature  */
+		ixgbe_ndo_set_vf_rss_query_en(adapter->netdev, i,
+					      adapter->vfinfo[i].rss_query_enabled);
 	}
 }
 
@@ -8096,6 +8100,7 @@ static const struct net_device_ops ixgbe_netdev_ops = {
 	.ndo_set_vf_vlan	= ixgbe_ndo_set_vf_vlan,
 	.ndo_set_vf_rate	= ixgbe_ndo_set_vf_bw,
 	.ndo_set_vf_spoofchk	= ixgbe_ndo_set_vf_spoofchk,
+	.ndo_set_vf_rss_query_en = ixgbe_ndo_set_vf_rss_query_en,
 	.ndo_get_vf_config	= ixgbe_ndo_get_vf_config,
 	.ndo_get_stats64	= ixgbe_get_stats64,
 #ifdef CONFIG_IXGBE_DCB
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index 09a291b..2de5335 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -105,9 +105,18 @@ static int __ixgbe_enable_sriov(struct ixgbe_adapter *adapter)
 		adapter->flags2 &= ~(IXGBE_FLAG2_RSC_CAPABLE |
 				     IXGBE_FLAG2_RSC_ENABLED);
 
-		/* enable spoof checking for all VFs */
-		for (i = 0; i < adapter->num_vfs; i++)
+		for (i = 0; i < adapter->num_vfs; i++) {
+			/* enable spoof checking for all VFs */
 			adapter->vfinfo[i].spoofchk_enabled = true;
+
+			/* We support VF RSS querying only for 82599 and x540
+			 * devices at the moment. These devices share RSS
+			 * indirection table and RSS hash key with PF therefore
+			 * we want to disable the querying by default.
+			 */
+			adapter->vfinfo[i].rss_query_enabled = 0;
+		}
+
 		return 0;
 	}
 
@@ -1330,6 +1339,26 @@ int ixgbe_ndo_set_vf_spoofchk(struct net_device *netdev, int vf, bool setting)
 	return 0;
 }
 
+int ixgbe_ndo_set_vf_rss_query_en(struct net_device *netdev, int vf,
+				  bool setting)
+{
+	struct ixgbe_adapter *adapter = netdev_priv(netdev);
+
+	/* This operation is currently supported only for 82599 and x540
+	 * devices.
+	 */
+	if (adapter->hw.mac.type < ixgbe_mac_82599EB ||
+	    adapter->hw.mac.type >= ixgbe_mac_X550)
+		return -EOPNOTSUPP;
+
+	if (vf >= adapter->num_vfs)
+		return -EINVAL;
+
+	adapter->vfinfo[vf].rss_query_enabled = setting;
+
+	return 0;
+}
+
 int ixgbe_ndo_get_vf_config(struct net_device *netdev,
 			    int vf, struct ifla_vf_info *ivi)
 {
@@ -1343,5 +1372,6 @@ int ixgbe_ndo_get_vf_config(struct net_device *netdev,
 	ivi->vlan = adapter->vfinfo[vf].pf_vlan;
 	ivi->qos = adapter->vfinfo[vf].pf_qos;
 	ivi->spoofchk = adapter->vfinfo[vf].spoofchk_enabled;
+	ivi->rss_query_en = adapter->vfinfo[vf].rss_query_enabled;
 	return 0;
 }
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
index 32c26d5..2c197e6 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
@@ -47,6 +47,8 @@ int ixgbe_ndo_set_vf_vlan(struct net_device *netdev, int queue, u16 vlan,
 int ixgbe_ndo_set_vf_bw(struct net_device *netdev, int vf, int min_tx_rate,
 			int max_tx_rate);
 int ixgbe_ndo_set_vf_spoofchk(struct net_device *netdev, int vf, bool setting);
+int ixgbe_ndo_set_vf_rss_query_en(struct net_device *netdev, int vf,
+				  bool setting);
 int ixgbe_ndo_get_vf_config(struct net_device *netdev,
 			    int vf, struct ifla_vf_info *ivi);
 void ixgbe_check_vf_rate_limit(struct ixgbe_adapter *adapter);
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 2/7] ixgbe: Add a new netdev op to allow/prevent a VF from querying an RSS info
@ 2015-03-30 18:35   ` Vlad Zolotarov
  0 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: intel-wired-lan

Implements the new netdev op to allow user to enable/disable the ability
of a specific VF to query its RSS Indirection Table and an RSS Hash Key.

This patch limits the new feature support to 82599 and x540 devices only.
Support for other devices will be added later.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
---
New in v10:
   - United the for-each-VF loops in __ixgbe_enable_sriov() and
     ixgbe_configure_virtualization().
   - Use the EOPNOTSUPP error code instead of EPERM when operation is
     not supported.

New in v9:
   - Reduce the support to 82599 and x540 devices only.
---
 drivers/net/ethernet/intel/ixgbe/ixgbe.h       |  1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c  |  5 ++++
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 34 ++++++++++++++++++++++++--
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h |  2 ++
 4 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
index 42ed4b4..639aa1b 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
@@ -151,6 +151,7 @@ struct vf_data_storage {
 	u16 tx_rate;
 	u16 vlan_count;
 	u8 spoofchk_enabled;
+	bool rss_query_enabled;
 	unsigned int vf_api;
 };
 
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index a99bc5d..929f12f 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -3655,6 +3655,10 @@ static void ixgbe_configure_virtualization(struct ixgbe_adapter *adapter)
 		/* enable ethertype anti spoofing if hw supports it */
 		if (hw->mac.ops.set_ethertype_anti_spoofing)
 			hw->mac.ops.set_ethertype_anti_spoofing(hw, true, i);
+
+		/* Enable/Disable RSS query feature  */
+		ixgbe_ndo_set_vf_rss_query_en(adapter->netdev, i,
+					      adapter->vfinfo[i].rss_query_enabled);
 	}
 }
 
@@ -8096,6 +8100,7 @@ static const struct net_device_ops ixgbe_netdev_ops = {
 	.ndo_set_vf_vlan	= ixgbe_ndo_set_vf_vlan,
 	.ndo_set_vf_rate	= ixgbe_ndo_set_vf_bw,
 	.ndo_set_vf_spoofchk	= ixgbe_ndo_set_vf_spoofchk,
+	.ndo_set_vf_rss_query_en = ixgbe_ndo_set_vf_rss_query_en,
 	.ndo_get_vf_config	= ixgbe_ndo_get_vf_config,
 	.ndo_get_stats64	= ixgbe_get_stats64,
 #ifdef CONFIG_IXGBE_DCB
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index 09a291b..2de5335 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -105,9 +105,18 @@ static int __ixgbe_enable_sriov(struct ixgbe_adapter *adapter)
 		adapter->flags2 &= ~(IXGBE_FLAG2_RSC_CAPABLE |
 				     IXGBE_FLAG2_RSC_ENABLED);
 
-		/* enable spoof checking for all VFs */
-		for (i = 0; i < adapter->num_vfs; i++)
+		for (i = 0; i < adapter->num_vfs; i++) {
+			/* enable spoof checking for all VFs */
 			adapter->vfinfo[i].spoofchk_enabled = true;
+
+			/* We support VF RSS querying only for 82599 and x540
+			 * devices at the moment. These devices share RSS
+			 * indirection table and RSS hash key with PF therefore
+			 * we want to disable the querying by default.
+			 */
+			adapter->vfinfo[i].rss_query_enabled = 0;
+		}
+
 		return 0;
 	}
 
@@ -1330,6 +1339,26 @@ int ixgbe_ndo_set_vf_spoofchk(struct net_device *netdev, int vf, bool setting)
 	return 0;
 }
 
+int ixgbe_ndo_set_vf_rss_query_en(struct net_device *netdev, int vf,
+				  bool setting)
+{
+	struct ixgbe_adapter *adapter = netdev_priv(netdev);
+
+	/* This operation is currently supported only for 82599 and x540
+	 * devices.
+	 */
+	if (adapter->hw.mac.type < ixgbe_mac_82599EB ||
+	    adapter->hw.mac.type >= ixgbe_mac_X550)
+		return -EOPNOTSUPP;
+
+	if (vf >= adapter->num_vfs)
+		return -EINVAL;
+
+	adapter->vfinfo[vf].rss_query_enabled = setting;
+
+	return 0;
+}
+
 int ixgbe_ndo_get_vf_config(struct net_device *netdev,
 			    int vf, struct ifla_vf_info *ivi)
 {
@@ -1343,5 +1372,6 @@ int ixgbe_ndo_get_vf_config(struct net_device *netdev,
 	ivi->vlan = adapter->vfinfo[vf].pf_vlan;
 	ivi->qos = adapter->vfinfo[vf].pf_qos;
 	ivi->spoofchk = adapter->vfinfo[vf].spoofchk_enabled;
+	ivi->rss_query_en = adapter->vfinfo[vf].rss_query_enabled;
 	return 0;
 }
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
index 32c26d5..2c197e6 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
@@ -47,6 +47,8 @@ int ixgbe_ndo_set_vf_vlan(struct net_device *netdev, int queue, u16 vlan,
 int ixgbe_ndo_set_vf_bw(struct net_device *netdev, int vf, int min_tx_rate,
 			int max_tx_rate);
 int ixgbe_ndo_set_vf_spoofchk(struct net_device *netdev, int vf, bool setting);
+int ixgbe_ndo_set_vf_rss_query_en(struct net_device *netdev, int vf,
+				  bool setting);
 int ixgbe_ndo_get_vf_config(struct net_device *netdev,
 			    int vf, struct ifla_vf_info *ivi);
 void ixgbe_check_vf_rate_limit(struct ixgbe_adapter *adapter);
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API
  2015-03-30 18:35 ` [Intel-wired-lan] " Vlad Zolotarov
@ 2015-03-30 18:35   ` Vlad Zolotarov
  -1 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: netdev; +Cc: jeffrey.t.kirsher, intel-wired-lan, avi, gleb, Vlad Zolotarov

Add this new command for 82599 and x540 devices only. Support for other devices
will be added later.

82599 and x540 VFs and PF share the same RSS redirection table (RETA). Therefore we
just return it for all VFs.

For 82599 and x540 RETA table is an array of 32 registers (128 bytes) and the maximum number of
registers that may be delivered in a single VF-PF channel command is 15. Therefore
we will deliver the whole table in 3 steps: 12, 12 and 8 registers in each
step correspondingly.

Thus this patch does the following:

  - Adds a new API version (to specify a new commands set).
  - Adds the IXGBE_VF_GET_RETA command to the VF-PF commands set.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
---
New in v10:
   - Drop the PRSTYPE reading since it's VF that finally modifies it (via VFPSRTYPE)
     and we will add the proper masking at the VF driver level.
   - Return more self-explaining values.

New in v9:
   - Reduce the support to 82599 and x540 devices only.
   - Improvements in query RETA VF-PF command implementation:
      - Use the cached RETA contents.
      - Compress the mailbox message.

New in v5:
   - Use the newly added netdev op to allow/prevent the RETA query on a per-VF basis.

New in v4:
   - Deleted an empty line in ixgbe_get_vf_reta() switch-case.

New in v3:
   - Pass the number of dwords and offset in RETA in the IXGBE_VF_GET_RETA request message.
     This allows to reduce the added command set to a single command.
   - Added a support for all devices supported by the ixgbe driver that have
     SR-IOV functions support: 82599, x540 and x550. The original code supported
     only 82599 and x540.
   - Added the masking of the RETA entries according to the PSRTYPE[n].RQPL
     value.

New in v1 (compared to RFC):
   - Use "if-else" statement instead of a "switch-case" for a single option case
     (in ixgbe_get_vf_reta()).
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h   |  4 +++
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 35 ++++++++++++++++++++++++++
 2 files changed, 39 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
index a5cb755..3522f53 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
@@ -73,6 +73,7 @@ enum ixgbe_pfvf_api_rev {
 	ixgbe_mbox_api_10,	/* API version 1.0, linux/freebsd VF driver */
 	ixgbe_mbox_api_20,	/* API version 2.0, solaris Phase1 VF driver */
 	ixgbe_mbox_api_11,	/* API version 1.1, linux/freebsd VF driver */
+	ixgbe_mbox_api_12,	/* API version 1.2, linux/freebsd VF driver */
 	/* This value should always be last */
 	ixgbe_mbox_api_unknown,	/* indicates that API version is not known */
 };
@@ -97,6 +98,9 @@ enum ixgbe_pfvf_api_rev {
 #define IXGBE_VF_TRANS_VLAN	3	/* Indication of port vlan */
 #define IXGBE_VF_DEF_QUEUE	4	/* Default queue offset */
 
+/* mailbox API, version 1.2 VF requests */
+#define IXGBE_VF_GET_RETA	0x0a	/* VF request for RETA */
+
 /* length of permanent address message returned from PF */
 #define IXGBE_VF_PERMADDR_MSG_LEN 4
 /* word in permanent address message with the current multicast type */
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index 2de5335..81f54c3 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -433,6 +433,7 @@ static s32 ixgbe_set_vf_lpe(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf)
 #endif /* CONFIG_FCOE */
 		switch (adapter->vfinfo[vf].vf_api) {
 		case ixgbe_mbox_api_11:
+		case ixgbe_mbox_api_12:
 			/*
 			 * Version 1.1 supports jumbo frames on VFs if PF has
 			 * jumbo frames enabled which means legacy VFs are
@@ -900,6 +901,7 @@ static int ixgbe_negotiate_vf_api(struct ixgbe_adapter *adapter,
 	switch (api) {
 	case ixgbe_mbox_api_10:
 	case ixgbe_mbox_api_11:
+	case ixgbe_mbox_api_12:
 		adapter->vfinfo[vf].vf_api = api;
 		return 0;
 	default:
@@ -923,6 +925,7 @@ static int ixgbe_get_vf_queues(struct ixgbe_adapter *adapter,
 	switch (adapter->vfinfo[vf].vf_api) {
 	case ixgbe_mbox_api_20:
 	case ixgbe_mbox_api_11:
+	case ixgbe_mbox_api_12:
 		break;
 	default:
 		return -1;
@@ -950,6 +953,35 @@ static int ixgbe_get_vf_queues(struct ixgbe_adapter *adapter,
 	return 0;
 }
 
+static int ixgbe_get_vf_reta(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf)
+{
+	u32 i, j;
+	u32 *out_buf = &msgbuf[1];
+	const u8 *reta = adapter->rss_indir_tbl;
+	u32 reta_size = ixgbe_rss_indir_tbl_entries(adapter);
+
+	/* Check if operation is permitted */
+	if (!adapter->vfinfo[vf].rss_query_enabled)
+		return -EPERM;
+
+	/* verify the PF is supporting the correct API */
+	if (adapter->vfinfo[vf].vf_api != ixgbe_mbox_api_12)
+		return -EOPNOTSUPP;
+
+	/* This mailbox command is supported (required) only for 82599 and x540
+	 * VFs which support up to 4 RSS queues. Therefore we will compress the
+	 * RETA by saving only 2 bits from each entry. This way we will be able
+	 * to transfer the whole RETA in a single mailbox operation.
+	 */
+	for (i = 0; i < reta_size / 16; i++) {
+		out_buf[i] = 0;
+		for (j = 0; j < 16; j++)
+			out_buf[i] |= (u32)(reta[16 * i + j] & 0x3) << (2 * j);
+	}
+
+	return 0;
+}
+
 static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
 {
 	u32 mbx_size = IXGBE_VFMAILBOX_SIZE;
@@ -1006,6 +1038,9 @@ static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
 	case IXGBE_VF_GET_QUEUES:
 		retval = ixgbe_get_vf_queues(adapter, msgbuf, vf);
 		break;
+	case IXGBE_VF_GET_RETA:
+		retval = ixgbe_get_vf_reta(adapter, msgbuf, vf);
+		break;
 	default:
 		e_err(drv, "Unhandled Msg %8.8x\n", msgbuf[0]);
 		retval = IXGBE_ERR_MBX;
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API
@ 2015-03-30 18:35   ` Vlad Zolotarov
  0 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: intel-wired-lan

Add this new command for 82599 and x540 devices only. Support for other devices
will be added later.

82599 and x540 VFs and PF share the same RSS redirection table (RETA). Therefore we
just return it for all VFs.

For 82599 and x540 RETA table is an array of 32 registers (128 bytes) and the maximum number of
registers that may be delivered in a single VF-PF channel command is 15. Therefore
we will deliver the whole table in 3 steps: 12, 12 and 8 registers in each
step correspondingly.

Thus this patch does the following:

  - Adds a new API version (to specify a new commands set).
  - Adds the IXGBE_VF_GET_RETA command to the VF-PF commands set.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
---
New in v10:
   - Drop the PRSTYPE reading since it's VF that finally modifies it (via VFPSRTYPE)
     and we will add the proper masking at the VF driver level.
   - Return more self-explaining values.

New in v9:
   - Reduce the support to 82599 and x540 devices only.
   - Improvements in query RETA VF-PF command implementation:
      - Use the cached RETA contents.
      - Compress the mailbox message.

New in v5:
   - Use the newly added netdev op to allow/prevent the RETA query on a per-VF basis.

New in v4:
   - Deleted an empty line in ixgbe_get_vf_reta() switch-case.

New in v3:
   - Pass the number of dwords and offset in RETA in the IXGBE_VF_GET_RETA request message.
     This allows to reduce the added command set to a single command.
   - Added a support for all devices supported by the ixgbe driver that have
     SR-IOV functions support: 82599, x540 and x550. The original code supported
     only 82599 and x540.
   - Added the masking of the RETA entries according to the PSRTYPE[n].RQPL
     value.

New in v1 (compared to RFC):
   - Use "if-else" statement instead of a "switch-case" for a single option case
     (in ixgbe_get_vf_reta()).
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h   |  4 +++
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 35 ++++++++++++++++++++++++++
 2 files changed, 39 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
index a5cb755..3522f53 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
@@ -73,6 +73,7 @@ enum ixgbe_pfvf_api_rev {
 	ixgbe_mbox_api_10,	/* API version 1.0, linux/freebsd VF driver */
 	ixgbe_mbox_api_20,	/* API version 2.0, solaris Phase1 VF driver */
 	ixgbe_mbox_api_11,	/* API version 1.1, linux/freebsd VF driver */
+	ixgbe_mbox_api_12,	/* API version 1.2, linux/freebsd VF driver */
 	/* This value should always be last */
 	ixgbe_mbox_api_unknown,	/* indicates that API version is not known */
 };
@@ -97,6 +98,9 @@ enum ixgbe_pfvf_api_rev {
 #define IXGBE_VF_TRANS_VLAN	3	/* Indication of port vlan */
 #define IXGBE_VF_DEF_QUEUE	4	/* Default queue offset */
 
+/* mailbox API, version 1.2 VF requests */
+#define IXGBE_VF_GET_RETA	0x0a	/* VF request for RETA */
+
 /* length of permanent address message returned from PF */
 #define IXGBE_VF_PERMADDR_MSG_LEN 4
 /* word in permanent address message with the current multicast type */
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index 2de5335..81f54c3 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -433,6 +433,7 @@ static s32 ixgbe_set_vf_lpe(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf)
 #endif /* CONFIG_FCOE */
 		switch (adapter->vfinfo[vf].vf_api) {
 		case ixgbe_mbox_api_11:
+		case ixgbe_mbox_api_12:
 			/*
 			 * Version 1.1 supports jumbo frames on VFs if PF has
 			 * jumbo frames enabled which means legacy VFs are
@@ -900,6 +901,7 @@ static int ixgbe_negotiate_vf_api(struct ixgbe_adapter *adapter,
 	switch (api) {
 	case ixgbe_mbox_api_10:
 	case ixgbe_mbox_api_11:
+	case ixgbe_mbox_api_12:
 		adapter->vfinfo[vf].vf_api = api;
 		return 0;
 	default:
@@ -923,6 +925,7 @@ static int ixgbe_get_vf_queues(struct ixgbe_adapter *adapter,
 	switch (adapter->vfinfo[vf].vf_api) {
 	case ixgbe_mbox_api_20:
 	case ixgbe_mbox_api_11:
+	case ixgbe_mbox_api_12:
 		break;
 	default:
 		return -1;
@@ -950,6 +953,35 @@ static int ixgbe_get_vf_queues(struct ixgbe_adapter *adapter,
 	return 0;
 }
 
+static int ixgbe_get_vf_reta(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf)
+{
+	u32 i, j;
+	u32 *out_buf = &msgbuf[1];
+	const u8 *reta = adapter->rss_indir_tbl;
+	u32 reta_size = ixgbe_rss_indir_tbl_entries(adapter);
+
+	/* Check if operation is permitted */
+	if (!adapter->vfinfo[vf].rss_query_enabled)
+		return -EPERM;
+
+	/* verify the PF is supporting the correct API */
+	if (adapter->vfinfo[vf].vf_api != ixgbe_mbox_api_12)
+		return -EOPNOTSUPP;
+
+	/* This mailbox command is supported (required) only for 82599 and x540
+	 * VFs which support up to 4 RSS queues. Therefore we will compress the
+	 * RETA by saving only 2 bits from each entry. This way we will be able
+	 * to transfer the whole RETA in a single mailbox operation.
+	 */
+	for (i = 0; i < reta_size / 16; i++) {
+		out_buf[i] = 0;
+		for (j = 0; j < 16; j++)
+			out_buf[i] |= (u32)(reta[16 * i + j] & 0x3) << (2 * j);
+	}
+
+	return 0;
+}
+
 static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
 {
 	u32 mbx_size = IXGBE_VFMAILBOX_SIZE;
@@ -1006,6 +1038,9 @@ static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
 	case IXGBE_VF_GET_QUEUES:
 		retval = ixgbe_get_vf_queues(adapter, msgbuf, vf);
 		break;
+	case IXGBE_VF_GET_RETA:
+		retval = ixgbe_get_vf_reta(adapter, msgbuf, vf);
+		break;
 	default:
 		e_err(drv, "Unhandled Msg %8.8x\n", msgbuf[0]);
 		retval = IXGBE_ERR_MBX;
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH net-next v10 4/7] ixgbevf: Add a RETA query code
  2015-03-30 18:35 ` [Intel-wired-lan] " Vlad Zolotarov
@ 2015-03-30 18:35   ` Vlad Zolotarov
  -1 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: netdev; +Cc: jeffrey.t.kirsher, intel-wired-lan, avi, gleb, Vlad Zolotarov

We will currently support only 82599 and x540 deviced. Support for other devices
will be added later.

   - Added a new API version support.
   - Added the query implementation in the ixgbevf.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
---
New in v10:
   - Expose the _locked function in the vf.h interface according
     to the current ixgbevf layering model.
   - Return EOPNOTSUPP in cases then operation is not supported.
   - Mask the received RETA according to the VF Rx queues configuration.
   - Added IXGBEVF_82599_RETA_SIZE macro.

New in v9:
   - Reduce the support to 82599 and x540 devices only.
   - Improvements in RETA query code:
      - Implement a "compression" of VF's RETA contents: pass only 2 bits
        per-entry.
      - RETA querying is done in a single mailbox operation thanks to compression.

New in v8:
   - Protect mailbox with a spinlock.

New in v7:
   - Add ixgbe_mbox_api_12 case in ixgbevf_set_num_queues().
   - Properly expand HW RETA into the ethtool buffer.

New in v6:
   - Add a proper return code when an operation is blocked by PF.

New in v3:
   - Adjusted to the new interface IXGBE_VF_GET_RETA command.
   - Added a proper support for x550 devices.

New in v1 (compared to RFC):
   - Use "if-else" statement instead of a "switch-case" for a single option case
     (in ixgbevf_get_reta()).
---
 drivers/net/ethernet/intel/ixgbevf/ixgbevf.h      |  1 +
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |  5 +-
 drivers/net/ethernet/intel/ixgbevf/mbx.h          |  4 ++
 drivers/net/ethernet/intel/ixgbevf/vf.c           | 70 +++++++++++++++++++++++
 drivers/net/ethernet/intel/ixgbevf/vf.h           |  1 +
 5 files changed, 80 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
index bc939a1..f317f77 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
@@ -145,6 +145,7 @@ struct ixgbevf_ring {
 #define MAX_RX_QUEUES IXGBE_VF_MAX_RX_QUEUES
 #define MAX_TX_QUEUES IXGBE_VF_MAX_TX_QUEUES
 #define IXGBEVF_MAX_RSS_QUEUES	2
+#define IXGBEVF_82599_RETA_SIZE		128
 
 #define IXGBEVF_DEFAULT_TXD	1024
 #define IXGBEVF_DEFAULT_RXD	512
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index 4ee15ad..a16d267 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -2030,7 +2030,8 @@ static void ixgbevf_init_last_counter_stats(struct ixgbevf_adapter *adapter)
 static void ixgbevf_negotiate_api(struct ixgbevf_adapter *adapter)
 {
 	struct ixgbe_hw *hw = &adapter->hw;
-	int api[] = { ixgbe_mbox_api_11,
+	int api[] = { ixgbe_mbox_api_12,
+		      ixgbe_mbox_api_11,
 		      ixgbe_mbox_api_10,
 		      ixgbe_mbox_api_unknown };
 	int err = 0, idx = 0;
@@ -2332,6 +2333,7 @@ static void ixgbevf_set_num_queues(struct ixgbevf_adapter *adapter)
 
 		switch (hw->api_version) {
 		case ixgbe_mbox_api_11:
+		case ixgbe_mbox_api_12:
 			adapter->num_rx_queues = rss;
 			adapter->num_tx_queues = rss;
 		default:
@@ -3712,6 +3714,7 @@ static int ixgbevf_change_mtu(struct net_device *netdev, int new_mtu)
 
 	switch (adapter->hw.api_version) {
 	case ixgbe_mbox_api_11:
+	case ixgbe_mbox_api_12:
 		max_possible_frame = IXGBE_MAX_JUMBO_FRAME_SIZE;
 		break;
 	default:
diff --git a/drivers/net/ethernet/intel/ixgbevf/mbx.h b/drivers/net/ethernet/intel/ixgbevf/mbx.h
index 6253e93..66e138b 100644
--- a/drivers/net/ethernet/intel/ixgbevf/mbx.h
+++ b/drivers/net/ethernet/intel/ixgbevf/mbx.h
@@ -83,6 +83,7 @@ enum ixgbe_pfvf_api_rev {
 	ixgbe_mbox_api_10,	/* API version 1.0, linux/freebsd VF driver */
 	ixgbe_mbox_api_20,	/* API version 2.0, solaris Phase1 VF driver */
 	ixgbe_mbox_api_11,	/* API version 1.1, linux/freebsd VF driver */
+	ixgbe_mbox_api_12,	/* API version 1.2, linux/freebsd VF driver */
 	/* This value should always be last */
 	ixgbe_mbox_api_unknown,	/* indicates that API version is not known */
 };
@@ -107,6 +108,9 @@ enum ixgbe_pfvf_api_rev {
 #define IXGBE_VF_TRANS_VLAN	3 /* Indication of port VLAN */
 #define IXGBE_VF_DEF_QUEUE	4 /* Default queue offset */
 
+/* mailbox API, version 1.2 VF requests */
+#define IXGBE_VF_GET_RETA	0x0a	/* VF request for RETA */
+
 /* length of permanent address message returned from PF */
 #define IXGBE_VF_PERMADDR_MSG_LEN	4
 /* word in permanent address message with the current multicast type */
diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.c b/drivers/net/ethernet/intel/ixgbevf/vf.c
index 2614fd3..7e43f88 100644
--- a/drivers/net/ethernet/intel/ixgbevf/vf.c
+++ b/drivers/net/ethernet/intel/ixgbevf/vf.c
@@ -257,6 +257,75 @@ static s32 ixgbevf_set_uc_addr_vf(struct ixgbe_hw *hw, u32 index, u8 *addr)
 }
 
 /**
+ * ixgbevf_get_reta_locked - get the RSS redirection table (RETA) contents.
+ * @adapter: pointer to the port handle
+ * @reta: buffer to fill with RETA contents.
+ * @num_rx_queues: Number of Rx queues configured for this port
+ *
+ * The "reta" buffer should be big enough to contain 32 registers.
+ *
+ * Returns: 0 on success.
+ *          if API doesn't support this operation - (-EOPNOTSUPP).
+ */
+int ixgbevf_get_reta_locked(struct ixgbe_hw *hw, u32 *reta, int num_rx_queues)
+{
+	int err, i, j;
+	u32 msgbuf[IXGBE_VFMAILBOX_SIZE];
+	u32 *hw_reta = &msgbuf[1];
+	u32 mask = 0;
+
+	/* We have to use a mailbox for 82599 and x540 devices only.
+	 * For these devices RETA has 128 entries.
+	 * Also these VFs support up to 4 RSS queues. Therefore PF will compress
+	 * 16 RETA entries in each DWORD giving 2 bits to each entry.
+	 */
+	int dwords = IXGBEVF_82599_RETA_SIZE / 16;
+
+	/* We support the RSS querying for 82599 and x540 devices only.
+	 * Thus return an error if API doesn't support RETA querying or querying
+	 * is not supported for this device type.
+	 */
+	if (hw->api_version != ixgbe_mbox_api_12 ||
+	    hw->mac.type >= ixgbe_mac_X550_vf)
+		return -EOPNOTSUPP;
+
+	msgbuf[0] = IXGBE_VF_GET_RETA;
+
+	err = hw->mbx.ops.write_posted(hw, msgbuf, 1);
+
+	if (err)
+		return err;
+
+	err = hw->mbx.ops.read_posted(hw, msgbuf, dwords + 1);
+
+	if (err)
+		return err;
+
+	msgbuf[0] &= ~IXGBE_VT_MSGTYPE_CTS;
+
+	/* If the operation has been refused by a PF return -EPERM */
+	if (msgbuf[0] == (IXGBE_VF_GET_RETA | IXGBE_VT_MSGTYPE_NACK))
+		return -EPERM;
+
+	/* If we didn't get an ACK there must have been
+	 * some sort of mailbox error so we should treat it
+	 * as such.
+	 */
+	if (msgbuf[0] != (IXGBE_VF_GET_RETA | IXGBE_VT_MSGTYPE_ACK))
+		return IXGBE_ERR_MBX;
+
+	/* ixgbevf doesn't support more than 2 queues at the moment */
+	if (num_rx_queues > 1)
+		mask = 0x1;
+
+	for (i = 0; i < dwords; i++)
+		for (j = 0; j < 16; j++)
+			reta[i * 16 + j] = (hw_reta[i] >> (2 * j)) & mask;
+
+	return 0;
+}
+
+/**
  *  ixgbevf_set_rar_vf - set device MAC address
  *  @hw: pointer to hardware structure
  *  @index: Receive address register to write
@@ -545,6 +614,7 @@ int ixgbevf_get_queues(struct ixgbe_hw *hw, unsigned int *num_tcs,
 	/* do nothing if API doesn't support ixgbevf_get_queues */
 	switch (hw->api_version) {
 	case ixgbe_mbox_api_11:
+	case ixgbe_mbox_api_12:
 		break;
 	default:
 		return 0;
diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.h b/drivers/net/ethernet/intel/ixgbevf/vf.h
index 6688250..e17f9eb 100644
--- a/drivers/net/ethernet/intel/ixgbevf/vf.h
+++ b/drivers/net/ethernet/intel/ixgbevf/vf.h
@@ -210,4 +210,5 @@ void ixgbevf_rlpml_set_vf(struct ixgbe_hw *hw, u16 max_size);
 int ixgbevf_negotiate_api_version(struct ixgbe_hw *hw, int api);
 int ixgbevf_get_queues(struct ixgbe_hw *hw, unsigned int *num_tcs,
 		       unsigned int *default_tc);
+int ixgbevf_get_reta_locked(struct ixgbe_hw *hw, u32 *reta, int num_rx_queues);
 #endif /* __IXGBE_VF_H__ */
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 4/7] ixgbevf: Add a RETA query code
@ 2015-03-30 18:35   ` Vlad Zolotarov
  0 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: intel-wired-lan

We will currently support only 82599 and x540 deviced. Support for other devices
will be added later.

   - Added a new API version support.
   - Added the query implementation in the ixgbevf.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
---
New in v10:
   - Expose the _locked function in the vf.h interface according
     to the current ixgbevf layering model.
   - Return EOPNOTSUPP in cases then operation is not supported.
   - Mask the received RETA according to the VF Rx queues configuration.
   - Added IXGBEVF_82599_RETA_SIZE macro.

New in v9:
   - Reduce the support to 82599 and x540 devices only.
   - Improvements in RETA query code:
      - Implement a "compression" of VF's RETA contents: pass only 2 bits
        per-entry.
      - RETA querying is done in a single mailbox operation thanks to compression.

New in v8:
   - Protect mailbox with a spinlock.

New in v7:
   - Add ixgbe_mbox_api_12 case in ixgbevf_set_num_queues().
   - Properly expand HW RETA into the ethtool buffer.

New in v6:
   - Add a proper return code when an operation is blocked by PF.

New in v3:
   - Adjusted to the new interface IXGBE_VF_GET_RETA command.
   - Added a proper support for x550 devices.

New in v1 (compared to RFC):
   - Use "if-else" statement instead of a "switch-case" for a single option case
     (in ixgbevf_get_reta()).
---
 drivers/net/ethernet/intel/ixgbevf/ixgbevf.h      |  1 +
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |  5 +-
 drivers/net/ethernet/intel/ixgbevf/mbx.h          |  4 ++
 drivers/net/ethernet/intel/ixgbevf/vf.c           | 70 +++++++++++++++++++++++
 drivers/net/ethernet/intel/ixgbevf/vf.h           |  1 +
 5 files changed, 80 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
index bc939a1..f317f77 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
@@ -145,6 +145,7 @@ struct ixgbevf_ring {
 #define MAX_RX_QUEUES IXGBE_VF_MAX_RX_QUEUES
 #define MAX_TX_QUEUES IXGBE_VF_MAX_TX_QUEUES
 #define IXGBEVF_MAX_RSS_QUEUES	2
+#define IXGBEVF_82599_RETA_SIZE		128
 
 #define IXGBEVF_DEFAULT_TXD	1024
 #define IXGBEVF_DEFAULT_RXD	512
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index 4ee15ad..a16d267 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -2030,7 +2030,8 @@ static void ixgbevf_init_last_counter_stats(struct ixgbevf_adapter *adapter)
 static void ixgbevf_negotiate_api(struct ixgbevf_adapter *adapter)
 {
 	struct ixgbe_hw *hw = &adapter->hw;
-	int api[] = { ixgbe_mbox_api_11,
+	int api[] = { ixgbe_mbox_api_12,
+		      ixgbe_mbox_api_11,
 		      ixgbe_mbox_api_10,
 		      ixgbe_mbox_api_unknown };
 	int err = 0, idx = 0;
@@ -2332,6 +2333,7 @@ static void ixgbevf_set_num_queues(struct ixgbevf_adapter *adapter)
 
 		switch (hw->api_version) {
 		case ixgbe_mbox_api_11:
+		case ixgbe_mbox_api_12:
 			adapter->num_rx_queues = rss;
 			adapter->num_tx_queues = rss;
 		default:
@@ -3712,6 +3714,7 @@ static int ixgbevf_change_mtu(struct net_device *netdev, int new_mtu)
 
 	switch (adapter->hw.api_version) {
 	case ixgbe_mbox_api_11:
+	case ixgbe_mbox_api_12:
 		max_possible_frame = IXGBE_MAX_JUMBO_FRAME_SIZE;
 		break;
 	default:
diff --git a/drivers/net/ethernet/intel/ixgbevf/mbx.h b/drivers/net/ethernet/intel/ixgbevf/mbx.h
index 6253e93..66e138b 100644
--- a/drivers/net/ethernet/intel/ixgbevf/mbx.h
+++ b/drivers/net/ethernet/intel/ixgbevf/mbx.h
@@ -83,6 +83,7 @@ enum ixgbe_pfvf_api_rev {
 	ixgbe_mbox_api_10,	/* API version 1.0, linux/freebsd VF driver */
 	ixgbe_mbox_api_20,	/* API version 2.0, solaris Phase1 VF driver */
 	ixgbe_mbox_api_11,	/* API version 1.1, linux/freebsd VF driver */
+	ixgbe_mbox_api_12,	/* API version 1.2, linux/freebsd VF driver */
 	/* This value should always be last */
 	ixgbe_mbox_api_unknown,	/* indicates that API version is not known */
 };
@@ -107,6 +108,9 @@ enum ixgbe_pfvf_api_rev {
 #define IXGBE_VF_TRANS_VLAN	3 /* Indication of port VLAN */
 #define IXGBE_VF_DEF_QUEUE	4 /* Default queue offset */
 
+/* mailbox API, version 1.2 VF requests */
+#define IXGBE_VF_GET_RETA	0x0a	/* VF request for RETA */
+
 /* length of permanent address message returned from PF */
 #define IXGBE_VF_PERMADDR_MSG_LEN	4
 /* word in permanent address message with the current multicast type */
diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.c b/drivers/net/ethernet/intel/ixgbevf/vf.c
index 2614fd3..7e43f88 100644
--- a/drivers/net/ethernet/intel/ixgbevf/vf.c
+++ b/drivers/net/ethernet/intel/ixgbevf/vf.c
@@ -257,6 +257,75 @@ static s32 ixgbevf_set_uc_addr_vf(struct ixgbe_hw *hw, u32 index, u8 *addr)
 }
 
 /**
+ * ixgbevf_get_reta_locked - get the RSS redirection table (RETA) contents.
+ * @adapter: pointer to the port handle
+ * @reta: buffer to fill with RETA contents.
+ * @num_rx_queues: Number of Rx queues configured for this port
+ *
+ * The "reta" buffer should be big enough to contain 32 registers.
+ *
+ * Returns: 0 on success.
+ *          if API doesn't support this operation - (-EOPNOTSUPP).
+ */
+int ixgbevf_get_reta_locked(struct ixgbe_hw *hw, u32 *reta, int num_rx_queues)
+{
+	int err, i, j;
+	u32 msgbuf[IXGBE_VFMAILBOX_SIZE];
+	u32 *hw_reta = &msgbuf[1];
+	u32 mask = 0;
+
+	/* We have to use a mailbox for 82599 and x540 devices only.
+	 * For these devices RETA has 128 entries.
+	 * Also these VFs support up to 4 RSS queues. Therefore PF will compress
+	 * 16 RETA entries in each DWORD giving 2 bits to each entry.
+	 */
+	int dwords = IXGBEVF_82599_RETA_SIZE / 16;
+
+	/* We support the RSS querying for 82599 and x540 devices only.
+	 * Thus return an error if API doesn't support RETA querying or querying
+	 * is not supported for this device type.
+	 */
+	if (hw->api_version != ixgbe_mbox_api_12 ||
+	    hw->mac.type >= ixgbe_mac_X550_vf)
+		return -EOPNOTSUPP;
+
+	msgbuf[0] = IXGBE_VF_GET_RETA;
+
+	err = hw->mbx.ops.write_posted(hw, msgbuf, 1);
+
+	if (err)
+		return err;
+
+	err = hw->mbx.ops.read_posted(hw, msgbuf, dwords + 1);
+
+	if (err)
+		return err;
+
+	msgbuf[0] &= ~IXGBE_VT_MSGTYPE_CTS;
+
+	/* If the operation has been refused by a PF return -EPERM */
+	if (msgbuf[0] == (IXGBE_VF_GET_RETA | IXGBE_VT_MSGTYPE_NACK))
+		return -EPERM;
+
+	/* If we didn't get an ACK there must have been
+	 * some sort of mailbox error so we should treat it
+	 * as such.
+	 */
+	if (msgbuf[0] != (IXGBE_VF_GET_RETA | IXGBE_VT_MSGTYPE_ACK))
+		return IXGBE_ERR_MBX;
+
+	/* ixgbevf doesn't support more than 2 queues at the moment */
+	if (num_rx_queues > 1)
+		mask = 0x1;
+
+	for (i = 0; i < dwords; i++)
+		for (j = 0; j < 16; j++)
+			reta[i * 16 + j] = (hw_reta[i] >> (2 * j)) & mask;
+
+	return 0;
+}
+
+/**
  *  ixgbevf_set_rar_vf - set device MAC address
  *  @hw: pointer to hardware structure
  *  @index: Receive address register to write
@@ -545,6 +614,7 @@ int ixgbevf_get_queues(struct ixgbe_hw *hw, unsigned int *num_tcs,
 	/* do nothing if API doesn't support ixgbevf_get_queues */
 	switch (hw->api_version) {
 	case ixgbe_mbox_api_11:
+	case ixgbe_mbox_api_12:
 		break;
 	default:
 		return 0;
diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.h b/drivers/net/ethernet/intel/ixgbevf/vf.h
index 6688250..e17f9eb 100644
--- a/drivers/net/ethernet/intel/ixgbevf/vf.h
+++ b/drivers/net/ethernet/intel/ixgbevf/vf.h
@@ -210,4 +210,5 @@ void ixgbevf_rlpml_set_vf(struct ixgbe_hw *hw, u16 max_size);
 int ixgbevf_negotiate_api_version(struct ixgbe_hw *hw, int api);
 int ixgbevf_get_queues(struct ixgbe_hw *hw, unsigned int *num_tcs,
 		       unsigned int *default_tc);
+int ixgbevf_get_reta_locked(struct ixgbe_hw *hw, u32 *reta, int num_rx_queues);
 #endif /* __IXGBE_VF_H__ */
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH net-next v10 5/7] ixgbe: Add GET_RSS_KEY command to VF-PF channel commands set
  2015-03-30 18:35 ` [Intel-wired-lan] " Vlad Zolotarov
@ 2015-03-30 18:35   ` Vlad Zolotarov
  -1 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: netdev; +Cc: jeffrey.t.kirsher, intel-wired-lan, avi, gleb, Vlad Zolotarov

For 82599 and x540 VFs and PF share the same RSS Key. Therefore we will return
the same RSS key for all VFs.

Support for other devices will be added later.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
---
New in v10:
   - Return more self-explaining values.

New in v9:
   - Reduce the support to 82599 and x540 devices only.
   - Get rid of registers access in GET_VF_RSS_KEY flow:
      - Get the RSS HASH Key value from the PF's adapter->rss_key[].

New in v5:
   - Use a newly added netdev op to allow/prevent the RSS Hash Key querying on a per-VF
     basis.

New in v3:
   - Added a support for x550 devices.

New in v1 (compared to RFC):
   - Use "if-else" statement instead of a "switch-case" for a single option case
     (in ixgbe_get_vf_rss_key()).
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h   |  1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
index 3522f53..b1e4703 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
@@ -100,6 +100,7 @@ enum ixgbe_pfvf_api_rev {
 
 /* mailbox API, version 1.2 VF requests */
 #define IXGBE_VF_GET_RETA	0x0a	/* VF request for RETA */
+#define IXGBE_VF_GET_RSS_KEY	0x0b	/* get RSS key */
 
 /* length of permanent address message returned from PF */
 #define IXGBE_VF_PERMADDR_MSG_LEN 4
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index 81f54c3..d03b592 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -982,6 +982,24 @@ static int ixgbe_get_vf_reta(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf)
 	return 0;
 }
 
+static int ixgbe_get_vf_rss_key(struct ixgbe_adapter *adapter,
+				u32 *msgbuf, u32 vf)
+{
+	u32 *rss_key = &msgbuf[1];
+
+	/* Check if the operation is permitted */
+	if (!adapter->vfinfo[vf].rss_query_enabled)
+		return -EPERM;
+
+	/* verify the PF is supporting the correct API */
+	if (adapter->vfinfo[vf].vf_api != ixgbe_mbox_api_12)
+		return -EOPNOTSUPP;
+
+	memcpy(rss_key, adapter->rss_key, sizeof(adapter->rss_key));
+
+	return 0;
+}
+
 static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
 {
 	u32 mbx_size = IXGBE_VFMAILBOX_SIZE;
@@ -1041,6 +1059,9 @@ static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
 	case IXGBE_VF_GET_RETA:
 		retval = ixgbe_get_vf_reta(adapter, msgbuf, vf);
 		break;
+	case IXGBE_VF_GET_RSS_KEY:
+		retval = ixgbe_get_vf_rss_key(adapter, msgbuf, vf);
+		break;
 	default:
 		e_err(drv, "Unhandled Msg %8.8x\n", msgbuf[0]);
 		retval = IXGBE_ERR_MBX;
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 5/7] ixgbe: Add GET_RSS_KEY command to VF-PF channel commands set
@ 2015-03-30 18:35   ` Vlad Zolotarov
  0 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: intel-wired-lan

For 82599 and x540 VFs and PF share the same RSS Key. Therefore we will return
the same RSS key for all VFs.

Support for other devices will be added later.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
---
New in v10:
   - Return more self-explaining values.

New in v9:
   - Reduce the support to 82599 and x540 devices only.
   - Get rid of registers access in GET_VF_RSS_KEY flow:
      - Get the RSS HASH Key value from the PF's adapter->rss_key[].

New in v5:
   - Use a newly added netdev op to allow/prevent the RSS Hash Key querying on a per-VF
     basis.

New in v3:
   - Added a support for x550 devices.

New in v1 (compared to RFC):
   - Use "if-else" statement instead of a "switch-case" for a single option case
     (in ixgbe_get_vf_rss_key()).
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h   |  1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
index 3522f53..b1e4703 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h
@@ -100,6 +100,7 @@ enum ixgbe_pfvf_api_rev {
 
 /* mailbox API, version 1.2 VF requests */
 #define IXGBE_VF_GET_RETA	0x0a	/* VF request for RETA */
+#define IXGBE_VF_GET_RSS_KEY	0x0b	/* get RSS key */
 
 /* length of permanent address message returned from PF */
 #define IXGBE_VF_PERMADDR_MSG_LEN 4
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index 81f54c3..d03b592 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -982,6 +982,24 @@ static int ixgbe_get_vf_reta(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf)
 	return 0;
 }
 
+static int ixgbe_get_vf_rss_key(struct ixgbe_adapter *adapter,
+				u32 *msgbuf, u32 vf)
+{
+	u32 *rss_key = &msgbuf[1];
+
+	/* Check if the operation is permitted */
+	if (!adapter->vfinfo[vf].rss_query_enabled)
+		return -EPERM;
+
+	/* verify the PF is supporting the correct API */
+	if (adapter->vfinfo[vf].vf_api != ixgbe_mbox_api_12)
+		return -EOPNOTSUPP;
+
+	memcpy(rss_key, adapter->rss_key, sizeof(adapter->rss_key));
+
+	return 0;
+}
+
 static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
 {
 	u32 mbx_size = IXGBE_VFMAILBOX_SIZE;
@@ -1041,6 +1059,9 @@ static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
 	case IXGBE_VF_GET_RETA:
 		retval = ixgbe_get_vf_reta(adapter, msgbuf, vf);
 		break;
+	case IXGBE_VF_GET_RSS_KEY:
+		retval = ixgbe_get_vf_rss_key(adapter, msgbuf, vf);
+		break;
 	default:
 		e_err(drv, "Unhandled Msg %8.8x\n", msgbuf[0]);
 		retval = IXGBE_ERR_MBX;
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH net-next v10 6/7] ixgbevf: Add RSS Key query code
  2015-03-30 18:35 ` [Intel-wired-lan] " Vlad Zolotarov
@ 2015-03-30 18:35   ` Vlad Zolotarov
  -1 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: netdev; +Cc: jeffrey.t.kirsher, intel-wired-lan, avi, gleb, Vlad Zolotarov

Add the ixgbevf_get_rss_key() function that queries the PF for an RSS Random Key
using a new VF-PF channel IXGBE_VF_GET_RSS_KEY command.

This patch adds the support for 82599 and x540 devices only. Support for other
devices will be added later.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
---
New in v10:
   - Expose the _locked function in the vf.h interface according
     to the current ixgbevf layering model.
   - Return EOPNOTSUPP in cases then operation is not supported.

New in v9:
   - Reduce the support to 82599 and x540 devices only.
   - Added IXGBEVF_RSS_HASH_KEY_SIZE macro.

New in v8:
   - Protect a mailbox access.

New in v6:
   - Return a proper return code when an operation is blocked by PF.

New in v2:
   - Added a more detailed patch description.

New in v1 (compared to RFC):
   - Use "if-else" statement instead of a "switch-case" for a single option case
     (in ixgbevf_get_rss_key()).
---
 drivers/net/ethernet/intel/ixgbevf/ixgbevf.h |  1 +
 drivers/net/ethernet/intel/ixgbevf/mbx.h     |  1 +
 drivers/net/ethernet/intel/ixgbevf/vf.c      | 54 ++++++++++++++++++++++++++++
 drivers/net/ethernet/intel/ixgbevf/vf.h      |  1 +
 4 files changed, 57 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
index f317f77..31089a1 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
@@ -146,6 +146,7 @@ struct ixgbevf_ring {
 #define MAX_TX_QUEUES IXGBE_VF_MAX_TX_QUEUES
 #define IXGBEVF_MAX_RSS_QUEUES	2
 #define IXGBEVF_82599_RETA_SIZE		128
+#define IXGBEVF_RSS_HASH_KEY_SIZE	40
 
 #define IXGBEVF_DEFAULT_TXD	1024
 #define IXGBEVF_DEFAULT_RXD	512
diff --git a/drivers/net/ethernet/intel/ixgbevf/mbx.h b/drivers/net/ethernet/intel/ixgbevf/mbx.h
index 66e138b..82f44e0 100644
--- a/drivers/net/ethernet/intel/ixgbevf/mbx.h
+++ b/drivers/net/ethernet/intel/ixgbevf/mbx.h
@@ -110,6 +110,7 @@ enum ixgbe_pfvf_api_rev {
 
 /* mailbox API, version 1.2 VF requests */
 #define IXGBE_VF_GET_RETA	0x0a	/* VF request for RETA */
+#define IXGBE_VF_GET_RSS_KEY	0x0b	/* get RSS hash key */
 
 /* length of permanent address message returned from PF */
 #define IXGBE_VF_PERMADDR_MSG_LEN	4
diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.c b/drivers/net/ethernet/intel/ixgbevf/vf.c
index 7e43f88..d1339b0 100644
--- a/drivers/net/ethernet/intel/ixgbevf/vf.c
+++ b/drivers/net/ethernet/intel/ixgbevf/vf.c
@@ -326,6 +326,60 @@ int ixgbevf_get_reta_locked(struct ixgbe_hw *hw, u32 *reta, int num_rx_queues)
 }
 
 /**
+ * ixgbevf_get_rss_key_locked - get the RSS Random Key
+ * @hw: pointer to the HW structure
+ * @rss_key: buffer to fill with RSS Hash Key contents.
+ *
+ * The "rss_key" buffer should be big enough to contain 10 registers.
+ *
+ * Returns: 0 on success.
+ *          if API doesn't support this operation - (-EOPNOTSUPP).
+ */
+int ixgbevf_get_rss_key_locked(struct ixgbe_hw *hw, u8 *rss_key)
+{
+	int err;
+	u32 msgbuf[IXGBE_VFMAILBOX_SIZE];
+
+	/* We currently support the RSS Random Key retrieval for 82599 and x540
+	 * devices only.
+	 *
+	 * Thus return an error if API doesn't support RSS Random Key retrieval
+	 * or if the operation is not supported for this device type.
+	 */
+	if (hw->api_version != ixgbe_mbox_api_12 ||
+	    hw->mac.type >= ixgbe_mac_X550_vf)
+		return -EOPNOTSUPP;
+
+	msgbuf[0] = IXGBE_VF_GET_RSS_KEY;
+	err = hw->mbx.ops.write_posted(hw, msgbuf, 1);
+
+	if (err)
+		return err;
+
+	err = hw->mbx.ops.read_posted(hw, msgbuf, 11);
+
+	if (err)
+		return err;
+
+	msgbuf[0] &= ~IXGBE_VT_MSGTYPE_CTS;
+
+	/* If the operation has been refused by a PF return -EPERM */
+	if (msgbuf[0] == (IXGBE_VF_GET_RETA | IXGBE_VT_MSGTYPE_NACK))
+		return -EPERM;
+
+	/* If we didn't get an ACK there must have been
+	 * some sort of mailbox error so we should treat it
+	 * as such.
+	 */
+	if (msgbuf[0] != (IXGBE_VF_GET_RSS_KEY | IXGBE_VT_MSGTYPE_ACK))
+		return IXGBE_ERR_MBX;
+
+	memcpy(rss_key, msgbuf + 1, IXGBEVF_RSS_HASH_KEY_SIZE);
+
+	return 0;
+}
+
+/**
  *  ixgbevf_set_rar_vf - set device MAC address
  *  @hw: pointer to hardware structure
  *  @index: Receive address register to write
diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.h b/drivers/net/ethernet/intel/ixgbevf/vf.h
index e17f9eb..d40f036 100644
--- a/drivers/net/ethernet/intel/ixgbevf/vf.h
+++ b/drivers/net/ethernet/intel/ixgbevf/vf.h
@@ -211,4 +211,5 @@ int ixgbevf_negotiate_api_version(struct ixgbe_hw *hw, int api);
 int ixgbevf_get_queues(struct ixgbe_hw *hw, unsigned int *num_tcs,
 		       unsigned int *default_tc);
 int ixgbevf_get_reta_locked(struct ixgbe_hw *hw, u32 *reta, int num_rx_queues);
+int ixgbevf_get_rss_key_locked(struct ixgbe_hw *hw, u8 *rss_key);
 #endif /* __IXGBE_VF_H__ */
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 6/7] ixgbevf: Add RSS Key query code
@ 2015-03-30 18:35   ` Vlad Zolotarov
  0 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: intel-wired-lan

Add the ixgbevf_get_rss_key() function that queries the PF for an RSS Random Key
using a new VF-PF channel IXGBE_VF_GET_RSS_KEY command.

This patch adds the support for 82599 and x540 devices only. Support for other
devices will be added later.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
---
New in v10:
   - Expose the _locked function in the vf.h interface according
     to the current ixgbevf layering model.
   - Return EOPNOTSUPP in cases then operation is not supported.

New in v9:
   - Reduce the support to 82599 and x540 devices only.
   - Added IXGBEVF_RSS_HASH_KEY_SIZE macro.

New in v8:
   - Protect a mailbox access.

New in v6:
   - Return a proper return code when an operation is blocked by PF.

New in v2:
   - Added a more detailed patch description.

New in v1 (compared to RFC):
   - Use "if-else" statement instead of a "switch-case" for a single option case
     (in ixgbevf_get_rss_key()).
---
 drivers/net/ethernet/intel/ixgbevf/ixgbevf.h |  1 +
 drivers/net/ethernet/intel/ixgbevf/mbx.h     |  1 +
 drivers/net/ethernet/intel/ixgbevf/vf.c      | 54 ++++++++++++++++++++++++++++
 drivers/net/ethernet/intel/ixgbevf/vf.h      |  1 +
 4 files changed, 57 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
index f317f77..31089a1 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
@@ -146,6 +146,7 @@ struct ixgbevf_ring {
 #define MAX_TX_QUEUES IXGBE_VF_MAX_TX_QUEUES
 #define IXGBEVF_MAX_RSS_QUEUES	2
 #define IXGBEVF_82599_RETA_SIZE		128
+#define IXGBEVF_RSS_HASH_KEY_SIZE	40
 
 #define IXGBEVF_DEFAULT_TXD	1024
 #define IXGBEVF_DEFAULT_RXD	512
diff --git a/drivers/net/ethernet/intel/ixgbevf/mbx.h b/drivers/net/ethernet/intel/ixgbevf/mbx.h
index 66e138b..82f44e0 100644
--- a/drivers/net/ethernet/intel/ixgbevf/mbx.h
+++ b/drivers/net/ethernet/intel/ixgbevf/mbx.h
@@ -110,6 +110,7 @@ enum ixgbe_pfvf_api_rev {
 
 /* mailbox API, version 1.2 VF requests */
 #define IXGBE_VF_GET_RETA	0x0a	/* VF request for RETA */
+#define IXGBE_VF_GET_RSS_KEY	0x0b	/* get RSS hash key */
 
 /* length of permanent address message returned from PF */
 #define IXGBE_VF_PERMADDR_MSG_LEN	4
diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.c b/drivers/net/ethernet/intel/ixgbevf/vf.c
index 7e43f88..d1339b0 100644
--- a/drivers/net/ethernet/intel/ixgbevf/vf.c
+++ b/drivers/net/ethernet/intel/ixgbevf/vf.c
@@ -326,6 +326,60 @@ int ixgbevf_get_reta_locked(struct ixgbe_hw *hw, u32 *reta, int num_rx_queues)
 }
 
 /**
+ * ixgbevf_get_rss_key_locked - get the RSS Random Key
+ * @hw: pointer to the HW structure
+ * @rss_key: buffer to fill with RSS Hash Key contents.
+ *
+ * The "rss_key" buffer should be big enough to contain 10 registers.
+ *
+ * Returns: 0 on success.
+ *          if API doesn't support this operation - (-EOPNOTSUPP).
+ */
+int ixgbevf_get_rss_key_locked(struct ixgbe_hw *hw, u8 *rss_key)
+{
+	int err;
+	u32 msgbuf[IXGBE_VFMAILBOX_SIZE];
+
+	/* We currently support the RSS Random Key retrieval for 82599 and x540
+	 * devices only.
+	 *
+	 * Thus return an error if API doesn't support RSS Random Key retrieval
+	 * or if the operation is not supported for this device type.
+	 */
+	if (hw->api_version != ixgbe_mbox_api_12 ||
+	    hw->mac.type >= ixgbe_mac_X550_vf)
+		return -EOPNOTSUPP;
+
+	msgbuf[0] = IXGBE_VF_GET_RSS_KEY;
+	err = hw->mbx.ops.write_posted(hw, msgbuf, 1);
+
+	if (err)
+		return err;
+
+	err = hw->mbx.ops.read_posted(hw, msgbuf, 11);
+
+	if (err)
+		return err;
+
+	msgbuf[0] &= ~IXGBE_VT_MSGTYPE_CTS;
+
+	/* If the operation has been refused by a PF return -EPERM */
+	if (msgbuf[0] == (IXGBE_VF_GET_RETA | IXGBE_VT_MSGTYPE_NACK))
+		return -EPERM;
+
+	/* If we didn't get an ACK there must have been
+	 * some sort of mailbox error so we should treat it
+	 * as such.
+	 */
+	if (msgbuf[0] != (IXGBE_VF_GET_RSS_KEY | IXGBE_VT_MSGTYPE_ACK))
+		return IXGBE_ERR_MBX;
+
+	memcpy(rss_key, msgbuf + 1, IXGBEVF_RSS_HASH_KEY_SIZE);
+
+	return 0;
+}
+
+/**
  *  ixgbevf_set_rar_vf - set device MAC address
  *  @hw: pointer to hardware structure
  *  @index: Receive address register to write
diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.h b/drivers/net/ethernet/intel/ixgbevf/vf.h
index e17f9eb..d40f036 100644
--- a/drivers/net/ethernet/intel/ixgbevf/vf.h
+++ b/drivers/net/ethernet/intel/ixgbevf/vf.h
@@ -211,4 +211,5 @@ int ixgbevf_negotiate_api_version(struct ixgbe_hw *hw, int api);
 int ixgbevf_get_queues(struct ixgbe_hw *hw, unsigned int *num_tcs,
 		       unsigned int *default_tc);
 int ixgbevf_get_reta_locked(struct ixgbe_hw *hw, u32 *reta, int num_rx_queues);
+int ixgbevf_get_rss_key_locked(struct ixgbe_hw *hw, u8 *rss_key);
 #endif /* __IXGBE_VF_H__ */
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH net-next v10 7/7] ixgbevf: Add the appropriate ethtool ops to query RSS indirection table and key
  2015-03-30 18:35 ` [Intel-wired-lan] " Vlad Zolotarov
@ 2015-03-30 18:35   ` Vlad Zolotarov
  -1 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: netdev; +Cc: jeffrey.t.kirsher, intel-wired-lan, avi, gleb, Vlad Zolotarov

Added get_rxfh_indir_size, get_rxfh_key_size and get_rxfh ethtool_ops callbacks
implementations.

This enables the ethtool's "-x" and "--show-rxfh[-indir]" options for VF devices.

This patch adds the support for 82599 and x540 devices only. Support for other
devices will be added later.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
---
New in v10:
   - Move the mailbox locks outside the vf.c functions.
   - Use IXGBEVF_82599_RETA_SIZE macro.

New in v9:
   - Use IXGBEVF_RSS_HASH_KEY_SIZE macro.

New in v6:
   - Added a required get_rxnfc callback to ixgbevf_ethtool_ops.

New in v4:
   - Removed not needed braces in if-statement in ixgbevf_get_rxfh_indir_size().

New in v3:
   - Added a proper support for x550 devices: return the correct redirection table size.

New in v2:
   - Added a detailed description to the patch.
---
 drivers/net/ethernet/intel/ixgbevf/ethtool.c | 69 ++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbevf/ethtool.c b/drivers/net/ethernet/intel/ixgbevf/ethtool.c
index e83c85b..b2f5b16 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ethtool.c
@@ -794,6 +794,71 @@ static int ixgbevf_set_coalesce(struct net_device *netdev,
 	return 0;
 }
 
+static int ixgbevf_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *info,
+			     u32 *rules __always_unused)
+{
+	struct ixgbevf_adapter *adapter = netdev_priv(dev);
+
+	switch (info->cmd) {
+	case ETHTOOL_GRXRINGS:
+		info->data = adapter->num_rx_queues;
+		return 0;
+	default:
+		hw_dbg(&adapter->hw, "Command parameters not supported\n");
+		return -EOPNOTSUPP;
+	}
+}
+
+static u32 ixgbevf_get_rxfh_indir_size(struct net_device *netdev)
+{
+	struct ixgbevf_adapter *adapter = netdev_priv(netdev);
+
+	/* We support this operation only for 82599 and x540 at the moment */
+	if (adapter->hw.mac.type < ixgbe_mac_X550_vf)
+		return IXGBEVF_82599_RETA_SIZE;
+
+	return 0;
+}
+
+static u32 ixgbevf_get_rxfh_key_size(struct net_device *netdev)
+{
+	struct ixgbevf_adapter *adapter = netdev_priv(netdev);
+
+	/* We support this operation only for 82599 and x540 at the moment */
+	if (adapter->hw.mac.type < ixgbe_mac_X550_vf)
+		return IXGBEVF_RSS_HASH_KEY_SIZE;
+
+	return 0;
+}
+
+static int ixgbevf_get_rxfh(struct net_device *netdev, u32 *indir, u8 *key,
+			    u8 *hfunc)
+{
+	struct ixgbevf_adapter *adapter = netdev_priv(netdev);
+	int err = 0;
+
+	if (hfunc)
+		*hfunc = ETH_RSS_HASH_TOP;
+
+	/* If neither indirection table nor hash key was requested - just
+	 * return a success avoiding taking any locks.
+	 */
+	if (!indir && !key)
+		return 0;
+
+	spin_lock_bh(&adapter->mbx_lock);
+	if (indir)
+		err = ixgbevf_get_reta_locked(&adapter->hw, indir,
+					      adapter->num_rx_queues);
+
+	if (!err && key)
+		err = ixgbevf_get_rss_key_locked(&adapter->hw, key);
+
+	spin_unlock_bh(&adapter->mbx_lock);
+
+	return err;
+}
+
 static const struct ethtool_ops ixgbevf_ethtool_ops = {
 	.get_settings		= ixgbevf_get_settings,
 	.get_drvinfo		= ixgbevf_get_drvinfo,
@@ -811,6 +876,10 @@ static const struct ethtool_ops ixgbevf_ethtool_ops = {
 	.get_ethtool_stats	= ixgbevf_get_ethtool_stats,
 	.get_coalesce		= ixgbevf_get_coalesce,
 	.set_coalesce		= ixgbevf_set_coalesce,
+	.get_rxnfc		= ixgbevf_get_rxnfc,
+	.get_rxfh_indir_size	= ixgbevf_get_rxfh_indir_size,
+	.get_rxfh_key_size	= ixgbevf_get_rxfh_key_size,
+	.get_rxfh		= ixgbevf_get_rxfh,
 };
 
 void ixgbevf_set_ethtool_ops(struct net_device *netdev)
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 7/7] ixgbevf: Add the appropriate ethtool ops to query RSS indirection table and key
@ 2015-03-30 18:35   ` Vlad Zolotarov
  0 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-03-30 18:35 UTC (permalink / raw)
  To: intel-wired-lan

Added get_rxfh_indir_size, get_rxfh_key_size and get_rxfh ethtool_ops callbacks
implementations.

This enables the ethtool's "-x" and "--show-rxfh[-indir]" options for VF devices.

This patch adds the support for 82599 and x540 devices only. Support for other
devices will be added later.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
---
New in v10:
   - Move the mailbox locks outside the vf.c functions.
   - Use IXGBEVF_82599_RETA_SIZE macro.

New in v9:
   - Use IXGBEVF_RSS_HASH_KEY_SIZE macro.

New in v6:
   - Added a required get_rxnfc callback to ixgbevf_ethtool_ops.

New in v4:
   - Removed not needed braces in if-statement in ixgbevf_get_rxfh_indir_size().

New in v3:
   - Added a proper support for x550 devices: return the correct redirection table size.

New in v2:
   - Added a detailed description to the patch.
---
 drivers/net/ethernet/intel/ixgbevf/ethtool.c | 69 ++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbevf/ethtool.c b/drivers/net/ethernet/intel/ixgbevf/ethtool.c
index e83c85b..b2f5b16 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ethtool.c
@@ -794,6 +794,71 @@ static int ixgbevf_set_coalesce(struct net_device *netdev,
 	return 0;
 }
 
+static int ixgbevf_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *info,
+			     u32 *rules __always_unused)
+{
+	struct ixgbevf_adapter *adapter = netdev_priv(dev);
+
+	switch (info->cmd) {
+	case ETHTOOL_GRXRINGS:
+		info->data = adapter->num_rx_queues;
+		return 0;
+	default:
+		hw_dbg(&adapter->hw, "Command parameters not supported\n");
+		return -EOPNOTSUPP;
+	}
+}
+
+static u32 ixgbevf_get_rxfh_indir_size(struct net_device *netdev)
+{
+	struct ixgbevf_adapter *adapter = netdev_priv(netdev);
+
+	/* We support this operation only for 82599 and x540 at the moment */
+	if (adapter->hw.mac.type < ixgbe_mac_X550_vf)
+		return IXGBEVF_82599_RETA_SIZE;
+
+	return 0;
+}
+
+static u32 ixgbevf_get_rxfh_key_size(struct net_device *netdev)
+{
+	struct ixgbevf_adapter *adapter = netdev_priv(netdev);
+
+	/* We support this operation only for 82599 and x540@the moment */
+	if (adapter->hw.mac.type < ixgbe_mac_X550_vf)
+		return IXGBEVF_RSS_HASH_KEY_SIZE;
+
+	return 0;
+}
+
+static int ixgbevf_get_rxfh(struct net_device *netdev, u32 *indir, u8 *key,
+			    u8 *hfunc)
+{
+	struct ixgbevf_adapter *adapter = netdev_priv(netdev);
+	int err = 0;
+
+	if (hfunc)
+		*hfunc = ETH_RSS_HASH_TOP;
+
+	/* If neither indirection table nor hash key was requested - just
+	 * return a success avoiding taking any locks.
+	 */
+	if (!indir && !key)
+		return 0;
+
+	spin_lock_bh(&adapter->mbx_lock);
+	if (indir)
+		err = ixgbevf_get_reta_locked(&adapter->hw, indir,
+					      adapter->num_rx_queues);
+
+	if (!err && key)
+		err = ixgbevf_get_rss_key_locked(&adapter->hw, key);
+
+	spin_unlock_bh(&adapter->mbx_lock);
+
+	return err;
+}
+
 static const struct ethtool_ops ixgbevf_ethtool_ops = {
 	.get_settings		= ixgbevf_get_settings,
 	.get_drvinfo		= ixgbevf_get_drvinfo,
@@ -811,6 +876,10 @@ static const struct ethtool_ops ixgbevf_ethtool_ops = {
 	.get_ethtool_stats	= ixgbevf_get_ethtool_stats,
 	.get_coalesce		= ixgbevf_get_coalesce,
 	.set_coalesce		= ixgbevf_set_coalesce,
+	.get_rxnfc		= ixgbevf_get_rxnfc,
+	.get_rxfh_indir_size	= ixgbevf_get_rxfh_indir_size,
+	.get_rxfh_key_size	= ixgbevf_get_rxfh_key_size,
+	.get_rxfh		= ixgbevf_get_rxfh,
 };
 
 void ixgbevf_set_ethtool_ops(struct net_device *netdev)
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* Re: [PATCH net-next v10 1/7] if_link: Add an additional parameter to ifla_vf_info for RSS querying
  2015-03-30 18:35   ` [Intel-wired-lan] " Vlad Zolotarov
@ 2015-03-31  7:34     ` Jeff Kirsher
  -1 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-03-31  7:34 UTC (permalink / raw)
  To: Vlad Zolotarov; +Cc: netdev, intel-wired-lan, avi, gleb

[-- Attachment #1: Type: text/plain, Size: 873 bytes --]

On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> Add configuration setting for drivers to allow/block an RSS
> Redirection Table and
> a Hash Key querying for discrete VFs.
> 
> On some devices VF share the mentioned above information with PF and
> querying it may
> adduce a theoretical security risk. We want to let a system
> administrator to decide if he/she
> wants to take this risk or not.
> 
> Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> ---
>  include/linux/if_link.h      |  1 +
>  include/linux/netdevice.h    |  8 ++++++++
>  include/uapi/linux/if_link.h |  8 ++++++++
>  net/core/rtnetlink.c         | 32 ++++++++++++++++++++++++++------
>  4 files changed, 43 insertions(+), 6 deletions(-)

Thanks Vlad, applied to my queue.
-- 
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
dev-queue

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 1/7] if_link: Add an additional parameter to ifla_vf_info for RSS querying
@ 2015-03-31  7:34     ` Jeff Kirsher
  0 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-03-31  7:34 UTC (permalink / raw)
  To: intel-wired-lan

On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> Add configuration setting for drivers to allow/block an RSS
> Redirection Table and
> a Hash Key querying for discrete VFs.
> 
> On some devices VF share the mentioned above information with PF and
> querying it may
> adduce a theoretical security risk. We want to let a system
> administrator to decide if he/she
> wants to take this risk or not.
> 
> Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> ---
>  include/linux/if_link.h      |  1 +
>  include/linux/netdevice.h    |  8 ++++++++
>  include/uapi/linux/if_link.h |  8 ++++++++
>  net/core/rtnetlink.c         | 32 ++++++++++++++++++++++++++------
>  4 files changed, 43 insertions(+), 6 deletions(-)

Thanks Vlad, applied to my queue.
-- 
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
dev-queue
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20150331/a62de709/attachment.asc>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH net-next v10 2/7] ixgbe: Add a new netdev op to allow/prevent a VF from querying an RSS info
  2015-03-30 18:35   ` [Intel-wired-lan] " Vlad Zolotarov
@ 2015-03-31  7:35     ` Jeff Kirsher
  -1 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-03-31  7:35 UTC (permalink / raw)
  To: Vlad Zolotarov; +Cc: netdev, intel-wired-lan, avi, gleb

[-- Attachment #1: Type: text/plain, Size: 1169 bytes --]

On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> Implements the new netdev op to allow user to enable/disable the
> ability
> of a specific VF to query its RSS Indirection Table and an RSS Hash
> Key.
> 
> This patch limits the new feature support to 82599 and x540 devices
> only.
> Support for other devices will be added later.
> 
> Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> ---
> New in v10:
>    - United the for-each-VF loops in __ixgbe_enable_sriov() and
>      ixgbe_configure_virtualization().
>    - Use the EOPNOTSUPP error code instead of EPERM when operation is
>      not supported.
> 
> New in v9:
>    - Reduce the support to 82599 and x540 devices only.
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe.h       |  1 +
>  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c  |  5 ++++
>  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 34
> ++++++++++++++++++++++++--
>  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h |  2 ++
>  4 files changed, 40 insertions(+), 2 deletions(-)

Thanks Vlad, applied to my queue.
-- 
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
dev-queue

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 2/7] ixgbe: Add a new netdev op to allow/prevent a VF from querying an RSS info
@ 2015-03-31  7:35     ` Jeff Kirsher
  0 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-03-31  7:35 UTC (permalink / raw)
  To: intel-wired-lan

On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> Implements the new netdev op to allow user to enable/disable the
> ability
> of a specific VF to query its RSS Indirection Table and an RSS Hash
> Key.
> 
> This patch limits the new feature support to 82599 and x540 devices
> only.
> Support for other devices will be added later.
> 
> Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> ---
> New in v10:
>    - United the for-each-VF loops in __ixgbe_enable_sriov() and
>      ixgbe_configure_virtualization().
>    - Use the EOPNOTSUPP error code instead of EPERM when operation is
>      not supported.
> 
> New in v9:
>    - Reduce the support to 82599 and x540 devices only.
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe.h       |  1 +
>  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c  |  5 ++++
>  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 34
> ++++++++++++++++++++++++--
>  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h |  2 ++
>  4 files changed, 40 insertions(+), 2 deletions(-)

Thanks Vlad, applied to my queue.
-- 
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
dev-queue
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20150331/9e72c2d8/attachment.asc>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API
  2015-03-30 18:35   ` [Intel-wired-lan] " Vlad Zolotarov
@ 2015-03-31  7:35     ` Jeff Kirsher
  -1 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-03-31  7:35 UTC (permalink / raw)
  To: Vlad Zolotarov; +Cc: netdev, intel-wired-lan, avi, gleb

[-- Attachment #1: Type: text/plain, Size: 2438 bytes --]

On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> Add this new command for 82599 and x540 devices only. Support for
> other devices
> will be added later.
> 
> 82599 and x540 VFs and PF share the same RSS redirection table (RETA).
> Therefore we
> just return it for all VFs.
> 
> For 82599 and x540 RETA table is an array of 32 registers (128 bytes)
> and the maximum number of
> registers that may be delivered in a single VF-PF channel command is
> 15. Therefore
> we will deliver the whole table in 3 steps: 12, 12 and 8 registers in
> each
> step correspondingly.
> 
> Thus this patch does the following:
> 
>   - Adds a new API version (to specify a new commands set).
>   - Adds the IXGBE_VF_GET_RETA command to the VF-PF commands set.
> 
> Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> ---
> New in v10:
>    - Drop the PRSTYPE reading since it's VF that finally modifies it
> (via VFPSRTYPE)
>      and we will add the proper masking at the VF driver level.
>    - Return more self-explaining values.
> 
> New in v9:
>    - Reduce the support to 82599 and x540 devices only.
>    - Improvements in query RETA VF-PF command implementation:
>       - Use the cached RETA contents.
>       - Compress the mailbox message.
> 
> New in v5:
>    - Use the newly added netdev op to allow/prevent the RETA query on
> a per-VF basis.
> 
> New in v4:
>    - Deleted an empty line in ixgbe_get_vf_reta() switch-case.
> 
> New in v3:
>    - Pass the number of dwords and offset in RETA in the
> IXGBE_VF_GET_RETA request message.
>      This allows to reduce the added command set to a single command.
>    - Added a support for all devices supported by the ixgbe driver
> that have
>      SR-IOV functions support: 82599, x540 and x550. The original code
> supported
>      only 82599 and x540.
>    - Added the masking of the RETA entries according to the
> PSRTYPE[n].RQPL
>      value.
> 
> New in v1 (compared to RFC):
>    - Use "if-else" statement instead of a "switch-case" for a single
> option case
>      (in ixgbe_get_vf_reta()).
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h   |  4 +++
>  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 35
> ++++++++++++++++++++++++++
>  2 files changed, 39 insertions(+)

Thanks Vlad, applied to my queue.
-- 
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
dev-queue

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API
@ 2015-03-31  7:35     ` Jeff Kirsher
  0 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-03-31  7:35 UTC (permalink / raw)
  To: intel-wired-lan

On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> Add this new command for 82599 and x540 devices only. Support for
> other devices
> will be added later.
> 
> 82599 and x540 VFs and PF share the same RSS redirection table (RETA).
> Therefore we
> just return it for all VFs.
> 
> For 82599 and x540 RETA table is an array of 32 registers (128 bytes)
> and the maximum number of
> registers that may be delivered in a single VF-PF channel command is
> 15. Therefore
> we will deliver the whole table in 3 steps: 12, 12 and 8 registers in
> each
> step correspondingly.
> 
> Thus this patch does the following:
> 
>   - Adds a new API version (to specify a new commands set).
>   - Adds the IXGBE_VF_GET_RETA command to the VF-PF commands set.
> 
> Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> ---
> New in v10:
>    - Drop the PRSTYPE reading since it's VF that finally modifies it
> (via VFPSRTYPE)
>      and we will add the proper masking at the VF driver level.
>    - Return more self-explaining values.
> 
> New in v9:
>    - Reduce the support to 82599 and x540 devices only.
>    - Improvements in query RETA VF-PF command implementation:
>       - Use the cached RETA contents.
>       - Compress the mailbox message.
> 
> New in v5:
>    - Use the newly added netdev op to allow/prevent the RETA query on
> a per-VF basis.
> 
> New in v4:
>    - Deleted an empty line in ixgbe_get_vf_reta() switch-case.
> 
> New in v3:
>    - Pass the number of dwords and offset in RETA in the
> IXGBE_VF_GET_RETA request message.
>      This allows to reduce the added command set to a single command.
>    - Added a support for all devices supported by the ixgbe driver
> that have
>      SR-IOV functions support: 82599, x540 and x550. The original code
> supported
>      only 82599 and x540.
>    - Added the masking of the RETA entries according to the
> PSRTYPE[n].RQPL
>      value.
> 
> New in v1 (compared to RFC):
>    - Use "if-else" statement instead of a "switch-case" for a single
> option case
>      (in ixgbe_get_vf_reta()).
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h   |  4 +++
>  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 35
> ++++++++++++++++++++++++++
>  2 files changed, 39 insertions(+)

Thanks Vlad, applied to my queue.
-- 
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
dev-queue
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20150331/a025a3b0/attachment.asc>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH net-next v10 4/7] ixgbevf: Add a RETA query code
  2015-03-30 18:35   ` [Intel-wired-lan] " Vlad Zolotarov
@ 2015-03-31  7:35     ` Jeff Kirsher
  -1 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-03-31  7:35 UTC (permalink / raw)
  To: Vlad Zolotarov; +Cc: netdev, intel-wired-lan, avi, gleb

[-- Attachment #1: Type: text/plain, Size: 2062 bytes --]

On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> We will currently support only 82599 and x540 deviced. Support for
> other devices
> will be added later.
> 
>    - Added a new API version support.
>    - Added the query implementation in the ixgbevf.
> 
> Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> ---
> New in v10:
>    - Expose the _locked function in the vf.h interface according
>      to the current ixgbevf layering model.
>    - Return EOPNOTSUPP in cases then operation is not supported.
>    - Mask the received RETA according to the VF Rx queues
> configuration.
>    - Added IXGBEVF_82599_RETA_SIZE macro.
> 
> New in v9:
>    - Reduce the support to 82599 and x540 devices only.
>    - Improvements in RETA query code:
>       - Implement a "compression" of VF's RETA contents: pass only 2
> bits
>         per-entry.
>       - RETA querying is done in a single mailbox operation thanks to
> compression.
> 
> New in v8:
>    - Protect mailbox with a spinlock.
> 
> New in v7:
>    - Add ixgbe_mbox_api_12 case in ixgbevf_set_num_queues().
>    - Properly expand HW RETA into the ethtool buffer.
> 
> New in v6:
>    - Add a proper return code when an operation is blocked by PF.
> 
> New in v3:
>    - Adjusted to the new interface IXGBE_VF_GET_RETA command.
>    - Added a proper support for x550 devices.
> 
> New in v1 (compared to RFC):
>    - Use "if-else" statement instead of a "switch-case" for a single
> option case
>      (in ixgbevf_get_reta()).
> ---
>  drivers/net/ethernet/intel/ixgbevf/ixgbevf.h      |  1 +
>  drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |  5 +-
>  drivers/net/ethernet/intel/ixgbevf/mbx.h          |  4 ++
>  drivers/net/ethernet/intel/ixgbevf/vf.c           | 70
> +++++++++++++++++++++++
>  drivers/net/ethernet/intel/ixgbevf/vf.h           |  1 +
>  5 files changed, 80 insertions(+), 1 deletion(-)

Thanks Vlad, applied to my queue.
-- 
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
dev-queue

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 4/7] ixgbevf: Add a RETA query code
@ 2015-03-31  7:35     ` Jeff Kirsher
  0 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-03-31  7:35 UTC (permalink / raw)
  To: intel-wired-lan

On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> We will currently support only 82599 and x540 deviced. Support for
> other devices
> will be added later.
> 
>    - Added a new API version support.
>    - Added the query implementation in the ixgbevf.
> 
> Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> ---
> New in v10:
>    - Expose the _locked function in the vf.h interface according
>      to the current ixgbevf layering model.
>    - Return EOPNOTSUPP in cases then operation is not supported.
>    - Mask the received RETA according to the VF Rx queues
> configuration.
>    - Added IXGBEVF_82599_RETA_SIZE macro.
> 
> New in v9:
>    - Reduce the support to 82599 and x540 devices only.
>    - Improvements in RETA query code:
>       - Implement a "compression" of VF's RETA contents: pass only 2
> bits
>         per-entry.
>       - RETA querying is done in a single mailbox operation thanks to
> compression.
> 
> New in v8:
>    - Protect mailbox with a spinlock.
> 
> New in v7:
>    - Add ixgbe_mbox_api_12 case in ixgbevf_set_num_queues().
>    - Properly expand HW RETA into the ethtool buffer.
> 
> New in v6:
>    - Add a proper return code when an operation is blocked by PF.
> 
> New in v3:
>    - Adjusted to the new interface IXGBE_VF_GET_RETA command.
>    - Added a proper support for x550 devices.
> 
> New in v1 (compared to RFC):
>    - Use "if-else" statement instead of a "switch-case" for a single
> option case
>      (in ixgbevf_get_reta()).
> ---
>  drivers/net/ethernet/intel/ixgbevf/ixgbevf.h      |  1 +
>  drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |  5 +-
>  drivers/net/ethernet/intel/ixgbevf/mbx.h          |  4 ++
>  drivers/net/ethernet/intel/ixgbevf/vf.c           | 70
> +++++++++++++++++++++++
>  drivers/net/ethernet/intel/ixgbevf/vf.h           |  1 +
>  5 files changed, 80 insertions(+), 1 deletion(-)

Thanks Vlad, applied to my queue.
-- 
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
dev-queue
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20150331/1ffae2ee/attachment-0001.asc>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH net-next v10 5/7] ixgbe: Add GET_RSS_KEY command to VF-PF channel commands set
  2015-03-30 18:35   ` [Intel-wired-lan] " Vlad Zolotarov
@ 2015-03-31  7:35     ` Jeff Kirsher
  -1 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-03-31  7:35 UTC (permalink / raw)
  To: Vlad Zolotarov; +Cc: netdev, intel-wired-lan, avi, gleb

[-- Attachment #1: Type: text/plain, Size: 1226 bytes --]

On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> For 82599 and x540 VFs and PF share the same RSS Key. Therefore we
> will return
> the same RSS key for all VFs.
> 
> Support for other devices will be added later.
> 
> Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> ---
> New in v10:
>    - Return more self-explaining values.
> 
> New in v9:
>    - Reduce the support to 82599 and x540 devices only.
>    - Get rid of registers access in GET_VF_RSS_KEY flow:
>       - Get the RSS HASH Key value from the PF's adapter->rss_key[].
> 
> New in v5:
>    - Use a newly added netdev op to allow/prevent the RSS Hash Key
> querying on a per-VF
>      basis.
> 
> New in v3:
>    - Added a support for x550 devices.
> 
> New in v1 (compared to RFC):
>    - Use "if-else" statement instead of a "switch-case" for a single
> option case
>      (in ixgbe_get_vf_rss_key()).
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h   |  1 +
>  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 21
> +++++++++++++++++++++
>  2 files changed, 22 insertions(+)

Thanks Vlad, applied to my queue.
-- 
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
dev-queue

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 5/7] ixgbe: Add GET_RSS_KEY command to VF-PF channel commands set
@ 2015-03-31  7:35     ` Jeff Kirsher
  0 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-03-31  7:35 UTC (permalink / raw)
  To: intel-wired-lan

On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> For 82599 and x540 VFs and PF share the same RSS Key. Therefore we
> will return
> the same RSS key for all VFs.
> 
> Support for other devices will be added later.
> 
> Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> ---
> New in v10:
>    - Return more self-explaining values.
> 
> New in v9:
>    - Reduce the support to 82599 and x540 devices only.
>    - Get rid of registers access in GET_VF_RSS_KEY flow:
>       - Get the RSS HASH Key value from the PF's adapter->rss_key[].
> 
> New in v5:
>    - Use a newly added netdev op to allow/prevent the RSS Hash Key
> querying on a per-VF
>      basis.
> 
> New in v3:
>    - Added a support for x550 devices.
> 
> New in v1 (compared to RFC):
>    - Use "if-else" statement instead of a "switch-case" for a single
> option case
>      (in ixgbe_get_vf_rss_key()).
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h   |  1 +
>  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 21
> +++++++++++++++++++++
>  2 files changed, 22 insertions(+)

Thanks Vlad, applied to my queue.
-- 
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
dev-queue
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20150331/70df4a9b/attachment.asc>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH net-next v10 6/7] ixgbevf: Add RSS Key query code
  2015-03-30 18:35   ` [Intel-wired-lan] " Vlad Zolotarov
@ 2015-03-31  7:36     ` Jeff Kirsher
  -1 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-03-31  7:36 UTC (permalink / raw)
  To: Vlad Zolotarov; +Cc: netdev, intel-wired-lan, avi, gleb

[-- Attachment #1: Type: text/plain, Size: 1511 bytes --]

On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> Add the ixgbevf_get_rss_key() function that queries the PF for an RSS
> Random Key
> using a new VF-PF channel IXGBE_VF_GET_RSS_KEY command.
> 
> This patch adds the support for 82599 and x540 devices only. Support
> for other
> devices will be added later.
> 
> Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> ---
> New in v10:
>    - Expose the _locked function in the vf.h interface according
>      to the current ixgbevf layering model.
>    - Return EOPNOTSUPP in cases then operation is not supported.
> 
> New in v9:
>    - Reduce the support to 82599 and x540 devices only.
>    - Added IXGBEVF_RSS_HASH_KEY_SIZE macro.
> 
> New in v8:
>    - Protect a mailbox access.
> 
> New in v6:
>    - Return a proper return code when an operation is blocked by PF.
> 
> New in v2:
>    - Added a more detailed patch description.
> 
> New in v1 (compared to RFC):
>    - Use "if-else" statement instead of a "switch-case" for a single
> option case
>      (in ixgbevf_get_rss_key()).
> ---
>  drivers/net/ethernet/intel/ixgbevf/ixgbevf.h |  1 +
>  drivers/net/ethernet/intel/ixgbevf/mbx.h     |  1 +
>  drivers/net/ethernet/intel/ixgbevf/vf.c      | 54
> ++++++++++++++++++++++++++++
>  drivers/net/ethernet/intel/ixgbevf/vf.h      |  1 +
>  4 files changed, 57 insertions(+)

Thanks Vlad, applied to my queue.
-- 
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
dev-queue

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 6/7] ixgbevf: Add RSS Key query code
@ 2015-03-31  7:36     ` Jeff Kirsher
  0 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-03-31  7:36 UTC (permalink / raw)
  To: intel-wired-lan

On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> Add the ixgbevf_get_rss_key() function that queries the PF for an RSS
> Random Key
> using a new VF-PF channel IXGBE_VF_GET_RSS_KEY command.
> 
> This patch adds the support for 82599 and x540 devices only. Support
> for other
> devices will be added later.
> 
> Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> ---
> New in v10:
>    - Expose the _locked function in the vf.h interface according
>      to the current ixgbevf layering model.
>    - Return EOPNOTSUPP in cases then operation is not supported.
> 
> New in v9:
>    - Reduce the support to 82599 and x540 devices only.
>    - Added IXGBEVF_RSS_HASH_KEY_SIZE macro.
> 
> New in v8:
>    - Protect a mailbox access.
> 
> New in v6:
>    - Return a proper return code when an operation is blocked by PF.
> 
> New in v2:
>    - Added a more detailed patch description.
> 
> New in v1 (compared to RFC):
>    - Use "if-else" statement instead of a "switch-case" for a single
> option case
>      (in ixgbevf_get_rss_key()).
> ---
>  drivers/net/ethernet/intel/ixgbevf/ixgbevf.h |  1 +
>  drivers/net/ethernet/intel/ixgbevf/mbx.h     |  1 +
>  drivers/net/ethernet/intel/ixgbevf/vf.c      | 54
> ++++++++++++++++++++++++++++
>  drivers/net/ethernet/intel/ixgbevf/vf.h      |  1 +
>  4 files changed, 57 insertions(+)

Thanks Vlad, applied to my queue.
-- 
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
dev-queue
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20150331/4fd30e85/attachment.asc>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH net-next v10 7/7] ixgbevf: Add the appropriate ethtool ops to query RSS indirection table and key
  2015-03-30 18:35   ` [Intel-wired-lan] " Vlad Zolotarov
@ 2015-03-31  7:36     ` Jeff Kirsher
  -1 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-03-31  7:36 UTC (permalink / raw)
  To: Vlad Zolotarov; +Cc: netdev, intel-wired-lan, avi, gleb

[-- Attachment #1: Type: text/plain, Size: 1257 bytes --]

On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> Added get_rxfh_indir_size, get_rxfh_key_size and get_rxfh ethtool_ops
> callbacks
> implementations.
> 
> This enables the ethtool's "-x" and "--show-rxfh[-indir]" options for
> VF devices.
> 
> This patch adds the support for 82599 and x540 devices only. Support
> for other
> devices will be added later.
> 
> Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> ---
> New in v10:
>    - Move the mailbox locks outside the vf.c functions.
>    - Use IXGBEVF_82599_RETA_SIZE macro.
> 
> New in v9:
>    - Use IXGBEVF_RSS_HASH_KEY_SIZE macro.
> 
> New in v6:
>    - Added a required get_rxnfc callback to ixgbevf_ethtool_ops.
> 
> New in v4:
>    - Removed not needed braces in if-statement in
> ixgbevf_get_rxfh_indir_size().
> 
> New in v3:
>    - Added a proper support for x550 devices: return the correct
> redirection table size.
> 
> New in v2:
>    - Added a detailed description to the patch.
> ---
>  drivers/net/ethernet/intel/ixgbevf/ethtool.c | 69
> ++++++++++++++++++++++++++++
>  1 file changed, 69 insertions(+)

Thanks Vlad, applied to my queue.
-- 
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
dev-queue

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 7/7] ixgbevf: Add the appropriate ethtool ops to query RSS indirection table and key
@ 2015-03-31  7:36     ` Jeff Kirsher
  0 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-03-31  7:36 UTC (permalink / raw)
  To: intel-wired-lan

On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> Added get_rxfh_indir_size, get_rxfh_key_size and get_rxfh ethtool_ops
> callbacks
> implementations.
> 
> This enables the ethtool's "-x" and "--show-rxfh[-indir]" options for
> VF devices.
> 
> This patch adds the support for 82599 and x540 devices only. Support
> for other
> devices will be added later.
> 
> Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> ---
> New in v10:
>    - Move the mailbox locks outside the vf.c functions.
>    - Use IXGBEVF_82599_RETA_SIZE macro.
> 
> New in v9:
>    - Use IXGBEVF_RSS_HASH_KEY_SIZE macro.
> 
> New in v6:
>    - Added a required get_rxnfc callback to ixgbevf_ethtool_ops.
> 
> New in v4:
>    - Removed not needed braces in if-statement in
> ixgbevf_get_rxfh_indir_size().
> 
> New in v3:
>    - Added a proper support for x550 devices: return the correct
> redirection table size.
> 
> New in v2:
>    - Added a detailed description to the patch.
> ---
>  drivers/net/ethernet/intel/ixgbevf/ethtool.c | 69
> ++++++++++++++++++++++++++++
>  1 file changed, 69 insertions(+)

Thanks Vlad, applied to my queue.
-- 
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
dev-queue
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20150331/35d65e19/attachment.asc>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* RE: [Intel-wired-lan] [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API
  2015-03-31  7:35     ` [Intel-wired-lan] " Jeff Kirsher
@ 2015-03-31 23:55       ` Tantilov, Emil S
  -1 siblings, 0 replies; 48+ messages in thread
From: Tantilov, Emil S @ 2015-03-31 23:55 UTC (permalink / raw)
  To: Kirsher, Jeffrey T, Vlad Zolotarov; +Cc: netdev, avi, intel-wired-lan, gleb

>-----Original Message-----
>From: Intel-wired-lan [mailto:intel-wired-lan-bounces@lists.osuosl.org] On Behalf Of Jeff Kirsher
>Sent: Tuesday, March 31, 2015 12:35 AM
>Subject: Re: [Intel-wired-lan] [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API
>
>On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
>> Add this new command for 82599 and x540 devices only. Support for
>> other devices
>> will be added later.
>> 
>> 82599 and x540 VFs and PF share the same RSS redirection table (RETA).
>> Therefore we just return it for all VFs.
>> 
>> For 82599 and x540 RETA table is an array of 32 registers (128 bytes)
>> and the maximum number of registers that may be delivered in a single VF-PF channel command is
>> 15. Therefore we will deliver the whole table in 3 steps: 12, 12 and 8 registers in
>> each step correspondingly.

The above paragraph no longer applies to this patch. Perhaps Jeff can strip it to avoid having to resend the 
patch just for the description.

Thanks,
Emil


^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API
@ 2015-03-31 23:55       ` Tantilov, Emil S
  0 siblings, 0 replies; 48+ messages in thread
From: Tantilov, Emil S @ 2015-03-31 23:55 UTC (permalink / raw)
  To: intel-wired-lan

>-----Original Message-----
>From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On Behalf Of Jeff Kirsher
>Sent: Tuesday, March 31, 2015 12:35 AM
>Subject: Re: [Intel-wired-lan] [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API
>
>On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
>> Add this new command for 82599 and x540 devices only. Support for
>> other devices
>> will be added later.
>> 
>> 82599 and x540 VFs and PF share the same RSS redirection table (RETA).
>> Therefore we just return it for all VFs.
>> 
>> For 82599 and x540 RETA table is an array of 32 registers (128 bytes)
>> and the maximum number of registers that may be delivered in a single VF-PF channel command is
>> 15. Therefore we will deliver the whole table in 3 steps: 12, 12 and 8 registers in
>> each step correspondingly.

The above paragraph no longer applies to this patch. Perhaps Jeff can strip it to avoid having to resend the 
patch just for the description.

Thanks,
Emil


^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [Intel-wired-lan] [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API
  2015-03-31 23:55       ` Tantilov, Emil S
@ 2015-04-01  7:29         ` Vlad Zolotarov
  -1 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-04-01  7:29 UTC (permalink / raw)
  To: Tantilov, Emil S, Kirsher, Jeffrey T; +Cc: netdev, avi, intel-wired-lan, gleb



On 04/01/15 02:55, Tantilov, Emil S wrote:
>> -----Original Message-----
>> From: Intel-wired-lan [mailto:intel-wired-lan-bounces@lists.osuosl.org] On Behalf Of Jeff Kirsher
>> Sent: Tuesday, March 31, 2015 12:35 AM
>> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API
>>
>> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
>>> Add this new command for 82599 and x540 devices only. Support for
>>> other devices
>>> will be added later.
>>>
>>> 82599 and x540 VFs and PF share the same RSS redirection table (RETA).
>>> Therefore we just return it for all VFs.
>>>
>>> For 82599 and x540 RETA table is an array of 32 registers (128 bytes)
>>> and the maximum number of registers that may be delivered in a single VF-PF channel command is
>>> 15. Therefore we will deliver the whole table in 3 steps: 12, 12 and 8 registers in
>>> each step correspondingly.
> The above paragraph no longer applies to this patch. Perhaps Jeff can strip it to avoid having to resend the
> patch just for the description.

Right. Thanks, Emil.
The "compression" implemented in v9 voids the issue above and indeed the 
last paragraph above should be stripped.
Jeff, let me know if u want me to respin the series with the fixed 
description in this patch.

thanks,
vlad

>
> Thanks,
> Emil
>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API
@ 2015-04-01  7:29         ` Vlad Zolotarov
  0 siblings, 0 replies; 48+ messages in thread
From: Vlad Zolotarov @ 2015-04-01  7:29 UTC (permalink / raw)
  To: intel-wired-lan



On 04/01/15 02:55, Tantilov, Emil S wrote:
>> -----Original Message-----
>> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On Behalf Of Jeff Kirsher
>> Sent: Tuesday, March 31, 2015 12:35 AM
>> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API
>>
>> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
>>> Add this new command for 82599 and x540 devices only. Support for
>>> other devices
>>> will be added later.
>>>
>>> 82599 and x540 VFs and PF share the same RSS redirection table (RETA).
>>> Therefore we just return it for all VFs.
>>>
>>> For 82599 and x540 RETA table is an array of 32 registers (128 bytes)
>>> and the maximum number of registers that may be delivered in a single VF-PF channel command is
>>> 15. Therefore we will deliver the whole table in 3 steps: 12, 12 and 8 registers in
>>> each step correspondingly.
> The above paragraph no longer applies to this patch. Perhaps Jeff can strip it to avoid having to resend the
> patch just for the description.

Right. Thanks, Emil.
The "compression" implemented in v9 voids the issue above and indeed the 
last paragraph above should be stripped.
Jeff, let me know if u want me to respin the series with the fixed 
description in this patch.

thanks,
vlad

>
> Thanks,
> Emil
>


^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [Intel-wired-lan] [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API
  2015-04-01  7:29         ` Vlad Zolotarov
@ 2015-04-01  7:33           ` Jeff Kirsher
  -1 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-04-01  7:33 UTC (permalink / raw)
  To: Vlad Zolotarov; +Cc: Tantilov, Emil S, netdev, avi, intel-wired-lan, gleb

[-- Attachment #1: Type: text/plain, Size: 1529 bytes --]

On Wed, 2015-04-01 at 10:29 +0300, Vlad Zolotarov wrote:
> On 04/01/15 02:55, Tantilov, Emil S wrote:
> >> -----Original Message-----
> >> From: Intel-wired-lan
> [mailto:intel-wired-lan-bounces@lists.osuosl.org] On Behalf Of Jeff
> Kirsher
> >> Sent: Tuesday, March 31, 2015 12:35 AM
> >> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 3/7] ixgbe: Add
> a RETA query command to VF-PF channel API
> >>
> >> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> >>> Add this new command for 82599 and x540 devices only. Support for
> >>> other devices
> >>> will be added later.
> >>>
> >>> 82599 and x540 VFs and PF share the same RSS redirection table
> (RETA).
> >>> Therefore we just return it for all VFs.
> >>>
> >>> For 82599 and x540 RETA table is an array of 32 registers (128
> bytes)
> >>> and the maximum number of registers that may be delivered in a
> single VF-PF channel command is
> >>> 15. Therefore we will deliver the whole table in 3 steps: 12, 12
> and 8 registers in
> >>> each step correspondingly.
> > The above paragraph no longer applies to this patch. Perhaps Jeff
> can strip it to avoid having to resend the
> > patch just for the description.
> 
> Right. Thanks, Emil.
> The "compression" implemented in v9 voids the issue above and indeed
> the 
> last paragraph above should be stripped.
> Jeff, let me know if u want me to respin the series with the fixed 
> description in this patch.

Just respin this single patch, not the entire series, please.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API
@ 2015-04-01  7:33           ` Jeff Kirsher
  0 siblings, 0 replies; 48+ messages in thread
From: Jeff Kirsher @ 2015-04-01  7:33 UTC (permalink / raw)
  To: intel-wired-lan

On Wed, 2015-04-01 at 10:29 +0300, Vlad Zolotarov wrote:
> On 04/01/15 02:55, Tantilov, Emil S wrote:
> >> -----Original Message-----
> >> From: Intel-wired-lan
> [mailto:intel-wired-lan-bounces at lists.osuosl.org] On Behalf Of Jeff
> Kirsher
> >> Sent: Tuesday, March 31, 2015 12:35 AM
> >> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 3/7] ixgbe: Add
> a RETA query command to VF-PF channel API
> >>
> >> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> >>> Add this new command for 82599 and x540 devices only. Support for
> >>> other devices
> >>> will be added later.
> >>>
> >>> 82599 and x540 VFs and PF share the same RSS redirection table
> (RETA).
> >>> Therefore we just return it for all VFs.
> >>>
> >>> For 82599 and x540 RETA table is an array of 32 registers (128
> bytes)
> >>> and the maximum number of registers that may be delivered in a
> single VF-PF channel command is
> >>> 15. Therefore we will deliver the whole table in 3 steps: 12, 12
> and 8 registers in
> >>> each step correspondingly.
> > The above paragraph no longer applies to this patch. Perhaps Jeff
> can strip it to avoid having to resend the
> > patch just for the description.
> 
> Right. Thanks, Emil.
> The "compression" implemented in v9 voids the issue above and indeed
> the 
> last paragraph above should be stripped.
> Jeff, let me know if u want me to respin the series with the fixed 
> description in this patch.

Just respin this single patch, not the entire series, please.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20150401/2d740d5e/attachment.asc>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* RE: [Intel-wired-lan] [PATCH net-next v10 7/7] ixgbevf: Add the appropriate ethtool ops to query RSS indirection table and key
  2015-03-31  7:36     ` [Intel-wired-lan] " Jeff Kirsher
@ 2015-04-10 23:12       ` Schmitt, Phillip J
  -1 siblings, 0 replies; 48+ messages in thread
From: Schmitt, Phillip J @ 2015-04-10 23:12 UTC (permalink / raw)
  To: Kirsher, Jeffrey T, Vlad Zolotarov; +Cc: netdev, avi, intel-wired-lan, gleb



> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces@lists.osuosl.org] On
> Behalf Of Jeff Kirsher
> Sent: Tuesday, March 31, 2015 12:36 AM
> To: Vlad Zolotarov
> Cc: netdev@vger.kernel.org; avi@cloudius-systems.com; intel-wired-
> lan@lists.osuosl.org; gleb@cloudius-systems.com
> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 7/7] ixgbevf: Add the
> appropriate ethtool ops to query RSS indirection table and key
> 
> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> > Added get_rxfh_indir_size, get_rxfh_key_size and get_rxfh ethtool_ops
> > callbacks implementations.
> >
> > This enables the ethtool's "-x" and "--show-rxfh[-indir]" options for
> > VF devices.
> >
> > This patch adds the support for 82599 and x540 devices only. Support
> > for other devices will be added later.
> >
> > Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> > ---
> > New in v10:
> >    - Move the mailbox locks outside the vf.c functions.
> >    - Use IXGBEVF_82599_RETA_SIZE macro.
> >
> > New in v9:
> >    - Use IXGBEVF_RSS_HASH_KEY_SIZE macro.
> >
> > New in v6:
> >    - Added a required get_rxnfc callback to ixgbevf_ethtool_ops.
> >
> > New in v4:
> >    - Removed not needed braces in if-statement in
> > ixgbevf_get_rxfh_indir_size().
> >
> > New in v3:
> >    - Added a proper support for x550 devices: return the correct
> > redirection table size.
> >
> > New in v2:
> >    - Added a detailed description to the patch.
> > ---
> >  drivers/net/ethernet/intel/ixgbevf/ethtool.c | 69
> > ++++++++++++++++++++++++++++
> >  1 file changed, 69 insertions(+)
> 
> Thanks Vlad, applied to my queue.
> --
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
> dev-queue

Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 7/7] ixgbevf: Add the appropriate ethtool ops to query RSS indirection table and key
@ 2015-04-10 23:12       ` Schmitt, Phillip J
  0 siblings, 0 replies; 48+ messages in thread
From: Schmitt, Phillip J @ 2015-04-10 23:12 UTC (permalink / raw)
  To: intel-wired-lan



> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Jeff Kirsher
> Sent: Tuesday, March 31, 2015 12:36 AM
> To: Vlad Zolotarov
> Cc: netdev at vger.kernel.org; avi at cloudius-systems.com; intel-wired-
> lan at lists.osuosl.org; gleb at cloudius-systems.com
> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 7/7] ixgbevf: Add the
> appropriate ethtool ops to query RSS indirection table and key
> 
> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> > Added get_rxfh_indir_size, get_rxfh_key_size and get_rxfh ethtool_ops
> > callbacks implementations.
> >
> > This enables the ethtool's "-x" and "--show-rxfh[-indir]" options for
> > VF devices.
> >
> > This patch adds the support for 82599 and x540 devices only. Support
> > for other devices will be added later.
> >
> > Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> > ---
> > New in v10:
> >    - Move the mailbox locks outside the vf.c functions.
> >    - Use IXGBEVF_82599_RETA_SIZE macro.
> >
> > New in v9:
> >    - Use IXGBEVF_RSS_HASH_KEY_SIZE macro.
> >
> > New in v6:
> >    - Added a required get_rxnfc callback to ixgbevf_ethtool_ops.
> >
> > New in v4:
> >    - Removed not needed braces in if-statement in
> > ixgbevf_get_rxfh_indir_size().
> >
> > New in v3:
> >    - Added a proper support for x550 devices: return the correct
> > redirection table size.
> >
> > New in v2:
> >    - Added a detailed description to the patch.
> > ---
> >  drivers/net/ethernet/intel/ixgbevf/ethtool.c | 69
> > ++++++++++++++++++++++++++++
> >  1 file changed, 69 insertions(+)
> 
> Thanks Vlad, applied to my queue.
> --
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
> dev-queue

Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* RE: [Intel-wired-lan] [PATCH net-next v10 6/7] ixgbevf: Add RSS Key query code
  2015-03-31  7:36     ` [Intel-wired-lan] " Jeff Kirsher
@ 2015-04-10 23:12       ` Schmitt, Phillip J
  -1 siblings, 0 replies; 48+ messages in thread
From: Schmitt, Phillip J @ 2015-04-10 23:12 UTC (permalink / raw)
  To: Kirsher, Jeffrey T, Vlad Zolotarov; +Cc: netdev, avi, intel-wired-lan, gleb



> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces@lists.osuosl.org] On
> Behalf Of Jeff Kirsher
> Sent: Tuesday, March 31, 2015 12:36 AM
> To: Vlad Zolotarov
> Cc: netdev@vger.kernel.org; avi@cloudius-systems.com; intel-wired-
> lan@lists.osuosl.org; gleb@cloudius-systems.com
> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 6/7] ixgbevf: Add RSS Key
> query code
> 
> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> > Add the ixgbevf_get_rss_key() function that queries the PF for an RSS
> > Random Key using a new VF-PF channel IXGBE_VF_GET_RSS_KEY command.
> >
> > This patch adds the support for 82599 and x540 devices only. Support
> > for other devices will be added later.
> >
> > Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> > ---
> > New in v10:
> >    - Expose the _locked function in the vf.h interface according
> >      to the current ixgbevf layering model.
> >    - Return EOPNOTSUPP in cases then operation is not supported.
> >
> > New in v9:
> >    - Reduce the support to 82599 and x540 devices only.
> >    - Added IXGBEVF_RSS_HASH_KEY_SIZE macro.
> >
> > New in v8:
> >    - Protect a mailbox access.
> >
> > New in v6:
> >    - Return a proper return code when an operation is blocked by PF.
> >
> > New in v2:
> >    - Added a more detailed patch description.
> >
> > New in v1 (compared to RFC):
> >    - Use "if-else" statement instead of a "switch-case" for a single
> > option case
> >      (in ixgbevf_get_rss_key()).
> > ---
> >  drivers/net/ethernet/intel/ixgbevf/ixgbevf.h |  1 +
> >  drivers/net/ethernet/intel/ixgbevf/mbx.h     |  1 +
> >  drivers/net/ethernet/intel/ixgbevf/vf.c      | 54
> > ++++++++++++++++++++++++++++
> >  drivers/net/ethernet/intel/ixgbevf/vf.h      |  1 +
> >  4 files changed, 57 insertions(+)
> 
> Thanks Vlad, applied to my queue.
> --
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
> dev-queue

Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 6/7] ixgbevf: Add RSS Key query code
@ 2015-04-10 23:12       ` Schmitt, Phillip J
  0 siblings, 0 replies; 48+ messages in thread
From: Schmitt, Phillip J @ 2015-04-10 23:12 UTC (permalink / raw)
  To: intel-wired-lan



> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Jeff Kirsher
> Sent: Tuesday, March 31, 2015 12:36 AM
> To: Vlad Zolotarov
> Cc: netdev at vger.kernel.org; avi at cloudius-systems.com; intel-wired-
> lan at lists.osuosl.org; gleb at cloudius-systems.com
> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 6/7] ixgbevf: Add RSS Key
> query code
> 
> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> > Add the ixgbevf_get_rss_key() function that queries the PF for an RSS
> > Random Key using a new VF-PF channel IXGBE_VF_GET_RSS_KEY command.
> >
> > This patch adds the support for 82599 and x540 devices only. Support
> > for other devices will be added later.
> >
> > Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> > ---
> > New in v10:
> >    - Expose the _locked function in the vf.h interface according
> >      to the current ixgbevf layering model.
> >    - Return EOPNOTSUPP in cases then operation is not supported.
> >
> > New in v9:
> >    - Reduce the support to 82599 and x540 devices only.
> >    - Added IXGBEVF_RSS_HASH_KEY_SIZE macro.
> >
> > New in v8:
> >    - Protect a mailbox access.
> >
> > New in v6:
> >    - Return a proper return code when an operation is blocked by PF.
> >
> > New in v2:
> >    - Added a more detailed patch description.
> >
> > New in v1 (compared to RFC):
> >    - Use "if-else" statement instead of a "switch-case" for a single
> > option case
> >      (in ixgbevf_get_rss_key()).
> > ---
> >  drivers/net/ethernet/intel/ixgbevf/ixgbevf.h |  1 +
> >  drivers/net/ethernet/intel/ixgbevf/mbx.h     |  1 +
> >  drivers/net/ethernet/intel/ixgbevf/vf.c      | 54
> > ++++++++++++++++++++++++++++
> >  drivers/net/ethernet/intel/ixgbevf/vf.h      |  1 +
> >  4 files changed, 57 insertions(+)
> 
> Thanks Vlad, applied to my queue.
> --
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
> dev-queue

Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* RE: [Intel-wired-lan] [PATCH net-next v10 5/7] ixgbe: Add GET_RSS_KEY command to VF-PF channel commands set
  2015-03-31  7:35     ` [Intel-wired-lan] " Jeff Kirsher
@ 2015-04-10 23:12       ` Schmitt, Phillip J
  -1 siblings, 0 replies; 48+ messages in thread
From: Schmitt, Phillip J @ 2015-04-10 23:12 UTC (permalink / raw)
  To: Kirsher, Jeffrey T, Vlad Zolotarov; +Cc: netdev, avi, intel-wired-lan, gleb



> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces@lists.osuosl.org] On
> Behalf Of Jeff Kirsher
> Sent: Tuesday, March 31, 2015 12:36 AM
> To: Vlad Zolotarov
> Cc: netdev@vger.kernel.org; avi@cloudius-systems.com; intel-wired-
> lan@lists.osuosl.org; gleb@cloudius-systems.com
> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 5/7] ixgbe: Add GET_RSS_KEY
> command to VF-PF channel commands set
> 
> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> > For 82599 and x540 VFs and PF share the same RSS Key. Therefore we
> > will return the same RSS key for all VFs.
> >
> > Support for other devices will be added later.
> >
> > Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> > ---
> > New in v10:
> >    - Return more self-explaining values.
> >
> > New in v9:
> >    - Reduce the support to 82599 and x540 devices only.
> >    - Get rid of registers access in GET_VF_RSS_KEY flow:
> >       - Get the RSS HASH Key value from the PF's adapter->rss_key[].
> >
> > New in v5:
> >    - Use a newly added netdev op to allow/prevent the RSS Hash Key
> > querying on a per-VF
> >      basis.
> >
> > New in v3:
> >    - Added a support for x550 devices.
> >
> > New in v1 (compared to RFC):
> >    - Use "if-else" statement instead of a "switch-case" for a single
> > option case
> >      (in ixgbe_get_vf_rss_key()).
> > ---
> >  drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h   |  1 +
> >  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 21
> > +++++++++++++++++++++
> >  2 files changed, 22 insertions(+)
> 
> Thanks Vlad, applied to my queue.
> --
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
> dev-queue

Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 5/7] ixgbe: Add GET_RSS_KEY command to VF-PF channel commands set
@ 2015-04-10 23:12       ` Schmitt, Phillip J
  0 siblings, 0 replies; 48+ messages in thread
From: Schmitt, Phillip J @ 2015-04-10 23:12 UTC (permalink / raw)
  To: intel-wired-lan



> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Jeff Kirsher
> Sent: Tuesday, March 31, 2015 12:36 AM
> To: Vlad Zolotarov
> Cc: netdev at vger.kernel.org; avi at cloudius-systems.com; intel-wired-
> lan at lists.osuosl.org; gleb at cloudius-systems.com
> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 5/7] ixgbe: Add GET_RSS_KEY
> command to VF-PF channel commands set
> 
> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> > For 82599 and x540 VFs and PF share the same RSS Key. Therefore we
> > will return the same RSS key for all VFs.
> >
> > Support for other devices will be added later.
> >
> > Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> > ---
> > New in v10:
> >    - Return more self-explaining values.
> >
> > New in v9:
> >    - Reduce the support to 82599 and x540 devices only.
> >    - Get rid of registers access in GET_VF_RSS_KEY flow:
> >       - Get the RSS HASH Key value from the PF's adapter->rss_key[].
> >
> > New in v5:
> >    - Use a newly added netdev op to allow/prevent the RSS Hash Key
> > querying on a per-VF
> >      basis.
> >
> > New in v3:
> >    - Added a support for x550 devices.
> >
> > New in v1 (compared to RFC):
> >    - Use "if-else" statement instead of a "switch-case" for a single
> > option case
> >      (in ixgbe_get_vf_rss_key()).
> > ---
> >  drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h   |  1 +
> >  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 21
> > +++++++++++++++++++++
> >  2 files changed, 22 insertions(+)
> 
> Thanks Vlad, applied to my queue.
> --
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
> dev-queue

Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* RE: [Intel-wired-lan] [PATCH net-next v10 4/7] ixgbevf: Add a RETA query code
  2015-03-31  7:35     ` [Intel-wired-lan] " Jeff Kirsher
@ 2015-04-10 23:12       ` Schmitt, Phillip J
  -1 siblings, 0 replies; 48+ messages in thread
From: Schmitt, Phillip J @ 2015-04-10 23:12 UTC (permalink / raw)
  To: Kirsher, Jeffrey T, Vlad Zolotarov; +Cc: netdev, avi, intel-wired-lan, gleb



> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces@lists.osuosl.org] On
> Behalf Of Jeff Kirsher
> Sent: Tuesday, March 31, 2015 12:36 AM
> To: Vlad Zolotarov
> Cc: netdev@vger.kernel.org; avi@cloudius-systems.com; intel-wired-
> lan@lists.osuosl.org; gleb@cloudius-systems.com
> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 4/7] ixgbevf: Add a RETA
> query code
> 
> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> > We will currently support only 82599 and x540 deviced. Support for
> > other devices will be added later.
> >
> >    - Added a new API version support.
> >    - Added the query implementation in the ixgbevf.
> >
> > Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> > ---
> > New in v10:
> >    - Expose the _locked function in the vf.h interface according
> >      to the current ixgbevf layering model.
> >    - Return EOPNOTSUPP in cases then operation is not supported.
> >    - Mask the received RETA according to the VF Rx queues
> > configuration.
> >    - Added IXGBEVF_82599_RETA_SIZE macro.
> >
> > New in v9:
> >    - Reduce the support to 82599 and x540 devices only.
> >    - Improvements in RETA query code:
> >       - Implement a "compression" of VF's RETA contents: pass only 2
> > bits
> >         per-entry.
> >       - RETA querying is done in a single mailbox operation thanks to
> > compression.
> >
> > New in v8:
> >    - Protect mailbox with a spinlock.
> >
> > New in v7:
> >    - Add ixgbe_mbox_api_12 case in ixgbevf_set_num_queues().
> >    - Properly expand HW RETA into the ethtool buffer.
> >
> > New in v6:
> >    - Add a proper return code when an operation is blocked by PF.
> >
> > New in v3:
> >    - Adjusted to the new interface IXGBE_VF_GET_RETA command.
> >    - Added a proper support for x550 devices.
> >
> > New in v1 (compared to RFC):
> >    - Use "if-else" statement instead of a "switch-case" for a single
> > option case
> >      (in ixgbevf_get_reta()).
> > ---
> >  drivers/net/ethernet/intel/ixgbevf/ixgbevf.h      |  1 +
> >  drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |  5 +-
> >  drivers/net/ethernet/intel/ixgbevf/mbx.h          |  4 ++
> >  drivers/net/ethernet/intel/ixgbevf/vf.c           | 70
> > +++++++++++++++++++++++
> >  drivers/net/ethernet/intel/ixgbevf/vf.h           |  1 +
> >  5 files changed, 80 insertions(+), 1 deletion(-)
> 
> Thanks Vlad, applied to my queue.
> --
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
> dev-queue

Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 4/7] ixgbevf: Add a RETA query code
@ 2015-04-10 23:12       ` Schmitt, Phillip J
  0 siblings, 0 replies; 48+ messages in thread
From: Schmitt, Phillip J @ 2015-04-10 23:12 UTC (permalink / raw)
  To: intel-wired-lan



> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Jeff Kirsher
> Sent: Tuesday, March 31, 2015 12:36 AM
> To: Vlad Zolotarov
> Cc: netdev at vger.kernel.org; avi at cloudius-systems.com; intel-wired-
> lan at lists.osuosl.org; gleb at cloudius-systems.com
> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 4/7] ixgbevf: Add a RETA
> query code
> 
> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> > We will currently support only 82599 and x540 deviced. Support for
> > other devices will be added later.
> >
> >    - Added a new API version support.
> >    - Added the query implementation in the ixgbevf.
> >
> > Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> > ---
> > New in v10:
> >    - Expose the _locked function in the vf.h interface according
> >      to the current ixgbevf layering model.
> >    - Return EOPNOTSUPP in cases then operation is not supported.
> >    - Mask the received RETA according to the VF Rx queues
> > configuration.
> >    - Added IXGBEVF_82599_RETA_SIZE macro.
> >
> > New in v9:
> >    - Reduce the support to 82599 and x540 devices only.
> >    - Improvements in RETA query code:
> >       - Implement a "compression" of VF's RETA contents: pass only 2
> > bits
> >         per-entry.
> >       - RETA querying is done in a single mailbox operation thanks to
> > compression.
> >
> > New in v8:
> >    - Protect mailbox with a spinlock.
> >
> > New in v7:
> >    - Add ixgbe_mbox_api_12 case in ixgbevf_set_num_queues().
> >    - Properly expand HW RETA into the ethtool buffer.
> >
> > New in v6:
> >    - Add a proper return code when an operation is blocked by PF.
> >
> > New in v3:
> >    - Adjusted to the new interface IXGBE_VF_GET_RETA command.
> >    - Added a proper support for x550 devices.
> >
> > New in v1 (compared to RFC):
> >    - Use "if-else" statement instead of a "switch-case" for a single
> > option case
> >      (in ixgbevf_get_reta()).
> > ---
> >  drivers/net/ethernet/intel/ixgbevf/ixgbevf.h      |  1 +
> >  drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |  5 +-
> >  drivers/net/ethernet/intel/ixgbevf/mbx.h          |  4 ++
> >  drivers/net/ethernet/intel/ixgbevf/vf.c           | 70
> > +++++++++++++++++++++++
> >  drivers/net/ethernet/intel/ixgbevf/vf.h           |  1 +
> >  5 files changed, 80 insertions(+), 1 deletion(-)
> 
> Thanks Vlad, applied to my queue.
> --
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
> dev-queue

Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* RE: [Intel-wired-lan] [PATCH net-next v10 2/7] ixgbe: Add a new netdev op to allow/prevent a VF from querying an RSS info
  2015-03-31  7:35     ` [Intel-wired-lan] " Jeff Kirsher
@ 2015-04-10 23:12       ` Schmitt, Phillip J
  -1 siblings, 0 replies; 48+ messages in thread
From: Schmitt, Phillip J @ 2015-04-10 23:12 UTC (permalink / raw)
  To: Kirsher, Jeffrey T, Vlad Zolotarov; +Cc: netdev, avi, intel-wired-lan, gleb



> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces@lists.osuosl.org] On
> Behalf Of Jeff Kirsher
> Sent: Tuesday, March 31, 2015 12:35 AM
> To: Vlad Zolotarov
> Cc: netdev@vger.kernel.org; avi@cloudius-systems.com; intel-wired-
> lan@lists.osuosl.org; gleb@cloudius-systems.com
> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 2/7] ixgbe: Add a new netdev
> op to allow/prevent a VF from querying an RSS info
> 
> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> > Implements the new netdev op to allow user to enable/disable the
> > ability of a specific VF to query its RSS Indirection Table and an RSS
> > Hash Key.
> >
> > This patch limits the new feature support to 82599 and x540 devices
> > only.
> > Support for other devices will be added later.
> >
> > Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> > ---
> > New in v10:
> >    - United the for-each-VF loops in __ixgbe_enable_sriov() and
> >      ixgbe_configure_virtualization().
> >    - Use the EOPNOTSUPP error code instead of EPERM when operation is
> >      not supported.
> >
> > New in v9:
> >    - Reduce the support to 82599 and x540 devices only.
> > ---
> >  drivers/net/ethernet/intel/ixgbe/ixgbe.h       |  1 +
> >  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c  |  5 ++++
> > drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 34
> > ++++++++++++++++++++++++--
> >  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h |  2 ++
> >  4 files changed, 40 insertions(+), 2 deletions(-)
> 
> Thanks Vlad, applied to my queue.
> --
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
> dev-queue

Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 2/7] ixgbe: Add a new netdev op to allow/prevent a VF from querying an RSS info
@ 2015-04-10 23:12       ` Schmitt, Phillip J
  0 siblings, 0 replies; 48+ messages in thread
From: Schmitt, Phillip J @ 2015-04-10 23:12 UTC (permalink / raw)
  To: intel-wired-lan



> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Jeff Kirsher
> Sent: Tuesday, March 31, 2015 12:35 AM
> To: Vlad Zolotarov
> Cc: netdev at vger.kernel.org; avi at cloudius-systems.com; intel-wired-
> lan at lists.osuosl.org; gleb at cloudius-systems.com
> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 2/7] ixgbe: Add a new netdev
> op to allow/prevent a VF from querying an RSS info
> 
> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> > Implements the new netdev op to allow user to enable/disable the
> > ability of a specific VF to query its RSS Indirection Table and an RSS
> > Hash Key.
> >
> > This patch limits the new feature support to 82599 and x540 devices
> > only.
> > Support for other devices will be added later.
> >
> > Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> > ---
> > New in v10:
> >    - United the for-each-VF loops in __ixgbe_enable_sriov() and
> >      ixgbe_configure_virtualization().
> >    - Use the EOPNOTSUPP error code instead of EPERM when operation is
> >      not supported.
> >
> > New in v9:
> >    - Reduce the support to 82599 and x540 devices only.
> > ---
> >  drivers/net/ethernet/intel/ixgbe/ixgbe.h       |  1 +
> >  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c  |  5 ++++
> > drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 34
> > ++++++++++++++++++++++++--
> >  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h |  2 ++
> >  4 files changed, 40 insertions(+), 2 deletions(-)
> 
> Thanks Vlad, applied to my queue.
> --
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
> dev-queue

Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* RE: [Intel-wired-lan] [PATCH net-next v10 1/7] if_link: Add an additional parameter to ifla_vf_info for RSS querying
  2015-03-31  7:34     ` [Intel-wired-lan] " Jeff Kirsher
@ 2015-04-10 23:12       ` Schmitt, Phillip J
  -1 siblings, 0 replies; 48+ messages in thread
From: Schmitt, Phillip J @ 2015-04-10 23:12 UTC (permalink / raw)
  To: Kirsher, Jeffrey T, Vlad Zolotarov; +Cc: netdev, avi, intel-wired-lan, gleb



> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces@lists.osuosl.org] On
> Behalf Of Jeff Kirsher
> Sent: Tuesday, March 31, 2015 12:35 AM
> To: Vlad Zolotarov
> Cc: netdev@vger.kernel.org; avi@cloudius-systems.com; intel-wired-
> lan@lists.osuosl.org; gleb@cloudius-systems.com
> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 1/7] if_link: Add an additional
> parameter to ifla_vf_info for RSS querying
> 
> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> > Add configuration setting for drivers to allow/block an RSS
> > Redirection Table and a Hash Key querying for discrete VFs.
> >
> > On some devices VF share the mentioned above information with PF and
> > querying it may adduce a theoretical security risk. We want to let a
> > system administrator to decide if he/she wants to take this risk or
> > not.
> >
> > Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> > ---
> >  include/linux/if_link.h      |  1 +
> >  include/linux/netdevice.h    |  8 ++++++++
> >  include/uapi/linux/if_link.h |  8 ++++++++
> >  net/core/rtnetlink.c         | 32 ++++++++++++++++++++++++++------
> >  4 files changed, 43 insertions(+), 6 deletions(-)
> 
> Thanks Vlad, applied to my queue.
> --
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
> dev-queue

Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [Intel-wired-lan] [PATCH net-next v10 1/7] if_link: Add an additional parameter to ifla_vf_info for RSS querying
@ 2015-04-10 23:12       ` Schmitt, Phillip J
  0 siblings, 0 replies; 48+ messages in thread
From: Schmitt, Phillip J @ 2015-04-10 23:12 UTC (permalink / raw)
  To: intel-wired-lan



> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Jeff Kirsher
> Sent: Tuesday, March 31, 2015 12:35 AM
> To: Vlad Zolotarov
> Cc: netdev at vger.kernel.org; avi at cloudius-systems.com; intel-wired-
> lan at lists.osuosl.org; gleb at cloudius-systems.com
> Subject: Re: [Intel-wired-lan] [PATCH net-next v10 1/7] if_link: Add an additional
> parameter to ifla_vf_info for RSS querying
> 
> On Mon, 2015-03-30 at 21:35 +0300, Vlad Zolotarov wrote:
> > Add configuration setting for drivers to allow/block an RSS
> > Redirection Table and a Hash Key querying for discrete VFs.
> >
> > On some devices VF share the mentioned above information with PF and
> > querying it may adduce a theoretical security risk. We want to let a
> > system administrator to decide if he/she wants to take this risk or
> > not.
> >
> > Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
> > ---
> >  include/linux/if_link.h      |  1 +
> >  include/linux/netdevice.h    |  8 ++++++++
> >  include/uapi/linux/if_link.h |  8 ++++++++
> >  net/core/rtnetlink.c         | 32 ++++++++++++++++++++++++++------
> >  4 files changed, 43 insertions(+), 6 deletions(-)
> 
> Thanks Vlad, applied to my queue.
> --
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
> dev-queue

Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2015-04-10 23:12 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-30 18:35 [PATCH net-next v10 0/7]: ixgbevf: Allow querying VFs RSS indirection table and key Vlad Zolotarov
2015-03-30 18:35 ` [Intel-wired-lan] " Vlad Zolotarov
2015-03-30 18:35 ` [PATCH net-next v10 1/7] if_link: Add an additional parameter to ifla_vf_info for RSS querying Vlad Zolotarov
2015-03-30 18:35   ` [Intel-wired-lan] " Vlad Zolotarov
2015-03-31  7:34   ` Jeff Kirsher
2015-03-31  7:34     ` [Intel-wired-lan] " Jeff Kirsher
2015-04-10 23:12     ` Schmitt, Phillip J
2015-04-10 23:12       ` Schmitt, Phillip J
2015-03-30 18:35 ` [PATCH net-next v10 2/7] ixgbe: Add a new netdev op to allow/prevent a VF from querying an RSS info Vlad Zolotarov
2015-03-30 18:35   ` [Intel-wired-lan] " Vlad Zolotarov
2015-03-31  7:35   ` Jeff Kirsher
2015-03-31  7:35     ` [Intel-wired-lan] " Jeff Kirsher
2015-04-10 23:12     ` Schmitt, Phillip J
2015-04-10 23:12       ` Schmitt, Phillip J
2015-03-30 18:35 ` [PATCH net-next v10 3/7] ixgbe: Add a RETA query command to VF-PF channel API Vlad Zolotarov
2015-03-30 18:35   ` [Intel-wired-lan] " Vlad Zolotarov
2015-03-31  7:35   ` Jeff Kirsher
2015-03-31  7:35     ` [Intel-wired-lan] " Jeff Kirsher
2015-03-31 23:55     ` Tantilov, Emil S
2015-03-31 23:55       ` Tantilov, Emil S
2015-04-01  7:29       ` Vlad Zolotarov
2015-04-01  7:29         ` Vlad Zolotarov
2015-04-01  7:33         ` Jeff Kirsher
2015-04-01  7:33           ` Jeff Kirsher
2015-03-30 18:35 ` [PATCH net-next v10 4/7] ixgbevf: Add a RETA query code Vlad Zolotarov
2015-03-30 18:35   ` [Intel-wired-lan] " Vlad Zolotarov
2015-03-31  7:35   ` Jeff Kirsher
2015-03-31  7:35     ` [Intel-wired-lan] " Jeff Kirsher
2015-04-10 23:12     ` Schmitt, Phillip J
2015-04-10 23:12       ` Schmitt, Phillip J
2015-03-30 18:35 ` [PATCH net-next v10 5/7] ixgbe: Add GET_RSS_KEY command to VF-PF channel commands set Vlad Zolotarov
2015-03-30 18:35   ` [Intel-wired-lan] " Vlad Zolotarov
2015-03-31  7:35   ` Jeff Kirsher
2015-03-31  7:35     ` [Intel-wired-lan] " Jeff Kirsher
2015-04-10 23:12     ` Schmitt, Phillip J
2015-04-10 23:12       ` Schmitt, Phillip J
2015-03-30 18:35 ` [PATCH net-next v10 6/7] ixgbevf: Add RSS Key query code Vlad Zolotarov
2015-03-30 18:35   ` [Intel-wired-lan] " Vlad Zolotarov
2015-03-31  7:36   ` Jeff Kirsher
2015-03-31  7:36     ` [Intel-wired-lan] " Jeff Kirsher
2015-04-10 23:12     ` Schmitt, Phillip J
2015-04-10 23:12       ` Schmitt, Phillip J
2015-03-30 18:35 ` [PATCH net-next v10 7/7] ixgbevf: Add the appropriate ethtool ops to query RSS indirection table and key Vlad Zolotarov
2015-03-30 18:35   ` [Intel-wired-lan] " Vlad Zolotarov
2015-03-31  7:36   ` Jeff Kirsher
2015-03-31  7:36     ` [Intel-wired-lan] " Jeff Kirsher
2015-04-10 23:12     ` Schmitt, Phillip J
2015-04-10 23:12       ` Schmitt, Phillip J

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.