[ofa-general] Re: [PATCH 2/2] osm: QoS - support for MPR in qos policy

Sasha Khapyorsky sashak at voltaire.com
Thu Sep 6 05:50:44 PDT 2007


On 15:07 Thu 06 Sep     , Yevgeny Kliteynik wrote:
>  Sasha Khapyorsky wrote:
> > On 12:14 Thu 06 Sep     , Yevgeny Kliteynik wrote:
> >> Hi Sasha,
> >>
> >> This patch adds osm_qos_policy_get_qos_level_by_mpr() wrapper function 
> >> that
> >> basically does the same thing as the osm_qos_policy_get_qos_level_by_pr(),
> >> only for MultiPathRecord instead of PathRecord..
> >>
> >> -- Yevgeny
> >>
> >> Signed-off-by: Yevgeny Kliteynik <kliteyn at dev.mellanox.co.il>
> >> ---
> >>  opensm/include/opensm/osm_qos_policy.h |    8 ++++++++
> >>  opensm/opensm/osm_qos_policy.c         |   32 
> >> ++++++++++++++++++++++++++++++++
> >>  2 files changed, 40 insertions(+), 0 deletions(-)
> >>
> >> diff --git a/opensm/include/opensm/osm_qos_policy.h 
> >> b/opensm/include/opensm/osm_qos_policy.h
> >> index 11598be..0c220ee 100644
> >> --- a/opensm/include/opensm/osm_qos_policy.h
> >> +++ b/opensm/include/opensm/osm_qos_policy.h
> >> @@ -51,6 +51,7 @@
> >>  #include <complib/cl_list.h>
> >>  #include <opensm/osm_port.h>
> >>  #include <opensm/osm_sa_path_record.h>
> >> +#include <opensm/osm_sa_multipath_record.h>
> >>
> >>  #define YYSTYPE char *
> >>  #define OSM_QOS_POLICY_MAX_PORTS_ON_SWITCH  128
> >> @@ -179,6 +180,13 @@ osm_qos_level_t * osm_qos_policy_get_qos_level_by_pr(
> >>  	IN const osm_physp_t * p_dest_physp,
> >>  	IN ib_net64_t comp_mask);
> >>
> >> +osm_qos_level_t * osm_qos_policy_get_qos_level_by_mpr(
> >> +	IN const osm_qos_policy_t * p_qos_policy,
> >> +	IN const ib_multipath_rec_t * p_mpr,
> >> +	IN const osm_physp_t * p_src_physp,
> >> +	IN const osm_physp_t * p_dest_physp,
> >> +	IN ib_net64_t comp_mask);
> >> +
> >>  /***************************************************/
> >>
> >>  int osm_qos_parse_policy_file(IN osm_subn_t * const p_subn);
> >> diff --git a/opensm/opensm/osm_qos_policy.c 
> >> b/opensm/opensm/osm_qos_policy.c
> >> index 74628a5..a778bcb 100644
> >> --- a/opensm/opensm/osm_qos_policy.c
> >> +++ b/opensm/opensm/osm_qos_policy.c
> >> @@ -957,3 +957,35 @@ osm_qos_level_t * osm_qos_policy_get_qos_level_by_pr(
> >>  /***************************************************
> >>   ***************************************************/
> >>
> >> +osm_qos_level_t * osm_qos_policy_get_qos_level_by_mpr(
> >> +	IN const osm_qos_policy_t * p_qos_policy,
> >> +	IN const ib_multipath_rec_t * p_mpr,
> >> +	IN const osm_physp_t * p_src_physp,
> >> +	IN const osm_physp_t * p_dest_physp,
> >> +	IN ib_net64_t comp_mask)
> >> +{
> >> +	uint8_t params_comp_mask = 0;
> >> +
> >> +	if (!p_qos_policy)
> >> +		return NULL;
> >> +
> >> +	if (comp_mask & IB_MPR_COMPMASK_QOS_CLASS)
> >> +		params_comp_mask |= QOS_PARAMS_COMPMASK_QOS_CLASS;
> >> +		
> >> +	if (comp_mask & IB_MPR_COMPMASK_SERVICEID_MSB &&
> >> +	    comp_mask & IB_MPR_COMPMASK_SERVICEID_LSB)
> >> +		params_comp_mask |= QOS_PARAMS_COMPMASK_SERVICEID;
> >> +
> >> +	if (comp_mask & IB_MPR_COMPMASK_PKEY)
> >> +		params_comp_mask |= QOS_PARAMS_COMPMASK_PKEY;
> >> +
> >> +	return __qos_policy_get_qos_level_by_params(
> >> +		p_qos_policy, p_src_physp, p_dest_physp,
> >> +		cl_ntoh64(ib_multipath_rec_service_id(p_mpr)),
> >> +		ib_multipath_rec_qos_class(p_mpr),
> >> +		cl_ntoh16(p_mpr->pkey), params_comp_mask);
> >> +}
> >> +
> >> +/***************************************************
> >> + ***************************************************/
> >> +
> >> -- 
> >> 1.5.1.4
> > This patch does not apply. The reason is trailing newline in
> > osm_qos_policy.c file (introduced in the previous patch). I'm using
> > 'git-am --whitespace=strip', so this new line was stripped and the next
> > patch (this one) does not apply. It is better to not put empty new lines
> > at the end.
> 
>  OK.
>  Do you need a new patch?

I already edited this one by hands, so I don't need (if there will no
changes following by comments from first patch).

Sasha



More information about the general mailing list