[ofa-general] Re: [RFC] [PATCH 1/5 v3] ib/ipoib: specify Traffic Class with PR queries for QoS support
Or Gerlitz
ogerlitz at voltaire.com
Sun Sep 16 02:04:54 PDT 2007
Sean Hefty wrote:
> To support QoS within and between subnets, modify IPoIB to request
> specific Traffic Class values with path record queries, using
> the value associated with the IPoIB broadcast group.
>
> Signed-off-by: Sean Hefty <sean.hefty at intel.com>
See some comments I made on this at v1 and v2 of the posts
http://lists.openfabrics.org/pipermail/general/2007-August/039275.html
http://lists.openfabrics.org/pipermail/general/2007-September/040312.html
Reviewed-by: Or Gerlitz <ogerlitz at voltaire.com>
> ---
> Added missing traffic class to PR component mask.
>
> drivers/infiniband/ulp/ipoib/ipoib.h | 22
> +++++++++++++++++++++-
> drivers/infiniband/ulp/ipoib/ipoib_main.c | 8 +++++---
> drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 22
> ----------------------
> 3 files changed, 26 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h
> b/drivers/infiniband/ulp/ipoib/ipoib.h
> index 285c143..fc16bce 100644
> --- a/drivers/infiniband/ulp/ipoib/ipoib.h
> +++ b/drivers/infiniband/ulp/ipoib/ipoib.h
> @@ -113,7 +113,27 @@ struct ipoib_pseudoheader {
> u8 hwaddr[INFINIBAND_ALEN];
> };
>
> -struct ipoib_mcast;
> +/* Used for all multicast joins (broadcast, IPv4 mcast and IPv6 mcast) */
> +struct ipoib_mcast {
> + struct ib_sa_mcmember_rec mcmember;
> + struct ib_sa_multicast *mc;
> + struct ipoib_ah *ah;
> +
> + struct rb_node rb_node;
> + struct list_head list;
> +
> + unsigned long created;
> + unsigned long backoff;
> +
> + unsigned long flags;
> + unsigned char logcount;
> +
> + struct list_head neigh_list;
> +
> + struct sk_buff_head pkt_queue;
> +
> + struct net_device *dev;
> +};
>
> struct ipoib_rx_buf {
> struct sk_buff *skb;
> diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c
> b/drivers/infiniband/ulp/ipoib/ipoib_main.c
> index 894b1dc..841e068 100644
> --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
> +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
> @@ -468,9 +468,10 @@ static struct ipoib_path *path_rec_create(struct
> net_device *dev, void *gid)
> INIT_LIST_HEAD(&path->neigh_list);
>
> memcpy(path->pathrec.dgid.raw, gid, sizeof (union ib_gid));
> - path->pathrec.sgid = priv->local_gid;
> - path->pathrec.pkey = cpu_to_be16(priv->pkey);
> - path->pathrec.numb_path = 1;
> + path->pathrec.sgid = priv->local_gid;
> + path->pathrec.pkey = cpu_to_be16(priv->pkey);
> + path->pathrec.numb_path = 1;
> + path->pathrec.traffic_class =
> priv->broadcast->mcmember.traffic_class;
>
> return path;
> }
> @@ -491,6 +492,7 @@ static int path_rec_start(struct net_device *dev,
> IB_SA_PATH_REC_DGID |
> IB_SA_PATH_REC_SGID |
> IB_SA_PATH_REC_NUMB_PATH |
> + IB_SA_PATH_REC_TRAFFIC_CLASS |
> IB_SA_PATH_REC_PKEY,
> 1000, GFP_ATOMIC,
> path_rec_completion,
> diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
> b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
> index aae3670..94a5709 100644
> --- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
> +++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
> @@ -57,28 +57,6 @@ MODULE_PARM_DESC(mcast_debug_level,
>
> static DEFINE_MUTEX(mcast_mutex);
>
> -/* Used for all multicast joins (broadcast, IPv4 mcast and IPv6 mcast) */
> -struct ipoib_mcast {
> - struct ib_sa_mcmember_rec mcmember;
> - struct ib_sa_multicast *mc;
> - struct ipoib_ah *ah;
> -
> - struct rb_node rb_node;
> - struct list_head list;
> -
> - unsigned long created;
> - unsigned long backoff;
> -
> - unsigned long flags;
> - unsigned char logcount;
> -
> - struct list_head neigh_list;
> -
> - struct sk_buff_head pkt_queue;
> -
> - struct net_device *dev;
> -};
> -
> struct ipoib_mcast_iter {
> struct net_device *dev;
> union ib_gid mgid;
>
More information about the general
mailing list