diff mbox

[2/5] OpenSM: dfsssp - send multicast forwarding tables to switches

Message ID 1380812586-1583-2-git-send-email-domke.j.aa@m.titech.ac.jp (mailing list archive)
State Accepted
Delegated to: Hal Rosenstock
Headers show

Commit Message

Jens Domke Oct. 3, 2013, 3:03 p.m. UTC
Issue: root switch of the mcast spanning tree was ignored.
When a port of the root switch is part of the mcast group, then
it won't be processed and non of its ports will be part of
the resulting mcast forwarding table.

Fix: remove the test for used_link==NULL, because all switches in
adj_list should have a used_link set by the prior dijkstra step
(except the root switch) => test not needed and root switch will
be included in mcast update.

Signed-off-by: Jens Domke <domke.j.aa@m.titech.ac.jp>
---
 opensm/osm_ucast_dfsssp.c |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

Comments

Hal Rosenstock Oct. 7, 2013, 12:42 p.m. UTC | #1
On 10/3/2013 11:03 AM, Jens Domke wrote:
> Issue: root switch of the mcast spanning tree was ignored.
> When a port of the root switch is part of the mcast group, then
> it won't be processed and non of its ports will be part of
> the resulting mcast forwarding table.
> 
> Fix: remove the test for used_link==NULL, because all switches in
> adj_list should have a used_link set by the prior dijkstra step
> (except the root switch) => test not needed and root switch will
> be included in mcast update.
> 
> Signed-off-by: Jens Domke <domke.j.aa@m.titech.ac.jp>

Thanks. Applied.

-- Hal
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/opensm/osm_ucast_dfsssp.c b/opensm/osm_ucast_dfsssp.c
index 9c34795..219f8bb 100644
--- a/opensm/osm_ucast_dfsssp.c
+++ b/opensm/osm_ucast_dfsssp.c
@@ -1607,13 +1607,11 @@  static int update_mcft(osm_sm_t * p_sm, vertex_t * adj_list,
 			" (%s) for MLID 0x%X\n", cl_ntoh64(adj_list[i].guid),
 			p_sw->p_node->print_desc, mlid_ho);
 
-		/* if a) no route goes thru this switch  or
-		      b) the switch does not support mcast  or
-		      c) no ports of this switch are part or the mcast group
+		/* if a) the switch does not support mcast  or
+		      b) no ports of this switch are part or the mcast group
 		   then cycle
 		 */
-		if (!(adj_list[i].used_link) ||
-		    osm_switch_supports_mcast(p_sw) == FALSE ||
+		if (osm_switch_supports_mcast(p_sw) == FALSE ||
 		    (p_sw->num_of_mcm == 0 && !(p_sw->is_mc_member)))
 			continue;