From: Sasha Khapyorsky <sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org>
To: Jim Schutt <jaschut-4OHPYypu0djtX7QSmKvirg@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v3 03/17] opensm: Allow the routing engine to participate in path SL calculations.
Date: Tue, 13 Jul 2010 21:36:58 +0300 [thread overview]
Message-ID: <20100713183658.GS22860@me> (raw)
In-Reply-To: <1276631604-29230-4-git-send-email-jaschut-4OHPYypu0djtX7QSmKvirg@public.gmane.org>
Hi Jim,
On 13:53 Tue 15 Jun , Jim Schutt wrote:
> diff --git a/opensm/opensm/osm_sa_path_record.c b/opensm/opensm/osm_sa_path_record.c
> index 093c70d..a323671 100644
> --- a/opensm/opensm/osm_sa_path_record.c
> +++ b/opensm/opensm/osm_sa_path_record.c
> @@ -164,6 +164,7 @@ static ib_api_status_t pr_rcv_get_path_parms(IN osm_sa_t * sa,
> const osm_physp_t *p_dest_physp;
> const osm_prtn_t *p_prtn = NULL;
> osm_opensm_t *p_osm;
> + struct osm_routing_engine *p_re;
> const ib_port_info_t *p_pi;
> ib_api_status_t status = IB_SUCCESS;
> ib_net16_t pkey;
> @@ -180,7 +181,6 @@ static ib_api_status_t pr_rcv_get_path_parms(IN osm_sa_t * sa,
> ib_slvl_table_t *p_slvl_tbl = NULL;
> osm_qos_level_t *p_qos_level = NULL;
> uint16_t valid_sl_mask = 0xffff;
> - int is_lash;
> int hops = 0;
>
> OSM_LOG_ENTER(sa->p_log);
> @@ -192,6 +192,7 @@ static ib_api_status_t pr_rcv_get_path_parms(IN osm_sa_t * sa,
> p_src_physp = p_physp;
> p_pi = &p_physp->port_info;
> p_osm = sa->p_subn->p_osm;
> + p_re = p_osm->routing_engine_used;
>
> mtu = ib_port_info_get_mtu_cap(p_pi);
> rate = ib_port_info_compute_rate(p_pi);
> @@ -667,9 +668,6 @@ static ib_api_status_t pr_rcv_get_path_parms(IN osm_sa_t * sa,
> * Set PathRecord SL
> */
>
> - is_lash = (p_osm->routing_engine_used &&
> - p_osm->routing_engine_used->type == OSM_ROUTING_ENGINE_TYPE_LASH);
> -
> if (comp_mask & IB_PR_COMPMASK_SL) {
> /*
> * Specific SL was requested
> @@ -686,26 +684,10 @@ static ib_api_status_t pr_rcv_get_path_parms(IN osm_sa_t * sa,
> goto Exit;
> }
>
> - if (is_lash
> - && osm_get_lash_sl(p_osm, p_src_port, p_dest_port) != sl) {
> - OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 1F23: "
> - "Required PathRecord SL (%u) doesn't "
> - "match LASH SL\n", sl);
> - status = IB_NOT_FOUND;
> - goto Exit;
> - }
When specific SL is requested in PR shouldn't it verify this value by
routing engine provided (just similar as it was done with LASH), so
something like:
if (p_re && p_re->path_sl &&
sl != p_re->path_sl(p_re->context, sl, p_src_port, p_dest_port)) {
OSM_LOG("blah-blah\n");
status = IB_NOT_FOUND;
goto Exit;
}
?
Sasha
> -
> - } else if (is_lash) {
> - /*
> - * No specific SL in PathRecord request.
> - * If it's LASH routing - use its SL.
> - * slid and dest_lid are stored in network in lash.
> - */
> - sl = osm_get_lash_sl(p_osm, p_src_port, p_dest_port);
> } else if (p_qos_level && p_qos_level->sl_set) {
> /*
> - * No specific SL was requested, and we're not in
> - * LASH routing, but there is an SL in QoS level.
> + * No specific SL was requested, but there is an SL in
> + * QoS level.
> */
> sl = p_qos_level->sl;
>
> @@ -746,6 +728,14 @@ static ib_api_status_t pr_rcv_get_path_parms(IN osm_sa_t * sa,
> goto Exit;
> }
>
> + /*
> + * If the routing engine wants to have a say in path SL selection,
> + * send the currently computed SL value as a hint and let the routing
> + * engine override it.
> + */
> + if (p_re && p_re->path_sl)
> + sl = p_re->path_sl(p_re->context, sl, p_src_port, p_dest_port);
> +
> /* reset pkey when raw traffic */
> if (comp_mask & IB_PR_COMPMASK_RAWTRAFFIC &&
> cl_ntoh32(p_pr->hop_flow_raw) & (1 << 31))
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2010-07-13 18:36 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-15 19:53 [PATCH v3 00/17] opensm: Add new torus routing engine: torus-2QoS Jim Schutt
[not found] ` <1276631604-29230-1-git-send-email-jaschut-4OHPYypu0djtX7QSmKvirg@public.gmane.org>
2010-06-15 19:53 ` [PATCH v3 01/17] opensm: Prepare for routing engine input to path record SL lookup and SL2VL map setup Jim Schutt
[not found] ` <1276631604-29230-2-git-send-email-jaschut-4OHPYypu0djtX7QSmKvirg@public.gmane.org>
2010-07-07 17:06 ` Sasha Khapyorsky
2010-07-07 17:57 ` Jim Schutt
[not found] ` <1278525460.4812.22.camel-mgfCWIlwujvg4c9jKm7R2O1ftBKYq+Ku@public.gmane.org>
2010-07-07 21:03 ` Sasha Khapyorsky
2010-06-15 19:53 ` [PATCH v3 02/17] opensm: Allow the routing engine to influence SL2VL calculations Jim Schutt
2010-06-15 19:53 ` [PATCH v3 03/17] opensm: Allow the routing engine to participate in path SL calculations Jim Schutt
[not found] ` <1276631604-29230-4-git-send-email-jaschut-4OHPYypu0djtX7QSmKvirg@public.gmane.org>
2010-07-13 18:36 ` Sasha Khapyorsky [this message]
2010-07-13 20:12 ` Jim Schutt
2010-06-15 19:53 ` [PATCH v3 04/17] opensm: Track the minimum value in the fabric of data VLs supported Jim Schutt
2010-06-15 19:53 ` [PATCH v3 05/17] opensm: Add struct osm_routing_engine callback to build spanning trees for multicast Jim Schutt
2010-06-15 19:53 ` [PATCH v3 06/17] opensm: Make mcast_mgr_purge_tree() available outside osm_mcast_mgr.c Jim Schutt
2010-06-15 19:53 ` [PATCH v3 07/17] opensm: Add torus-2QoS routing engine, part 1 Jim Schutt
2010-06-15 19:53 ` [PATCH v3 09/17] opensm: Add torus-2QoS routing engine, part 3 Jim Schutt
2010-06-15 19:53 ` [PATCH v3 10/17] opensm: Update documentation to describe torus-2QoS Jim Schutt
2010-06-15 19:53 ` [PATCH v3 11/17] opensm: Enable torus-2QoS routing engine Jim Schutt
2010-06-15 19:53 ` [PATCH v3 12/17] opensm: Add opensm option to specify file name for extra torus-2QoS configuration information Jim Schutt
2010-06-15 19:53 ` [PATCH v3 13/17] opensm: Do not require -Q option for torus-2QoS routing engine Jim Schutt
2010-06-15 19:53 ` [PATCH v3 14/17] opensm: Make it possible to configure no fallback " Jim Schutt
2010-06-15 19:53 ` [PATCH v3 15/17] opensm: Avoid havoc in minhop caused by torus-2QoS persistent use of osm_port_t:priv Jim Schutt
2010-06-15 19:53 ` [PATCH v3 16/17] opensm: Avoid havoc in dump_ucast_routes() " Jim Schutt
2010-06-15 19:53 ` [PATCH v3 17/17] opensm: Cause status of unicast routing attempt to propogate to callers of osm_ucast_mgr_process() Jim Schutt
2010-06-16 14:11 ` [PATCH v3 08/17] opensm: Add new torus routing engine: torus-2QoS, part 2 Jim Schutt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100713183658.GS22860@me \
--to=sashak-smomgflxvozwk0htik3j/w@public.gmane.org \
--cc=jaschut-4OHPYypu0djtX7QSmKvirg@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox