[openib-general] Re: Solaris 10 with OpenIB OpenSM

Hal Rosenstock halr at voltaire.com
Fri Feb 11 17:11:33 PST 2005


On Fri, 2005-02-11 at 20:08, Tom Duffy wrote:
> [ Putting on OpenIB ]
> 
> On Fri, 2005-02-11 at 19:43 -0500, Hal Rosenstock wrote:
> > Hey Tom,
> > 
> > On Fri, 2005-02-11 at 19:35, Tom Duffy wrote:
> > > Solaris, you need to "ifconfig ibd0 plumb" to see it in ifconfig -a. You
> > > are further than me since you see /dev/ibd0.  You might even be there...
> > 
> > That did it :-) Thanks.
> > 
> > # ifconfig ibd0 plumb
> > # ifconfig -a
> > lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu
> > 8232 index 1
> >         inet 127.0.0.1 netmask ff000000 
> > e1000g0: flags=1004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4> mtu
> > 1500 index 2
> >         inet 10.0.2.56 netmask ffffff00 broadcast 10.0.2.255
> >         ether 0:30:48:27:21:2c 
> > ibd0: flags=1000842<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 252 index 3
> >         inet 0.0.0.0 netmask 0 
> >         ipib 0:0:4:6:fe:80:0:0:0:0:0:0:0:8:f1:4:3:96:4:e 
> > 
> > Not sure why the MTU comes up as 252 (other than it is the 256 minimum
> > minus 4 bytes overhead).
> 
> That is odd.  I don't see this when using IBSRM to manage the network:
> 
> ibd1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 2044 index 3
>         inet 192.168.0.78 netmask ffffff00 broadcast 192.168.0.255
>         ipib 0:0:0:18:0:0:0:0:0:0:12:34:0:2:c9:1:9:76:56:31 
> 
> 
> > It also doesn't like me changing the MTU.
> > ifconfig ibd0 mtu 2044
> > ifconfig: setifmtu: SIOCSLIFMTU: ibd0: Invalid argument
> 
> Huh, Nitin, any ideas?

The log indicates that the MTU is 4 which is 2048. I also saw this in
the IB trace.

Feb 11 19:39:47 [B57AEA40] -> MCMember Record dump:
                               
MGID....................0xff12401bffff0000 : 0x0000000000000001
                               
PortGid.................0xfe80000000000000 : 0x0008f1040396040e
                                qkey....................0xB1B
                                Mlid....................0xC001
                                ScopeState..............0x21
                                Rate....................0x3
                                Mtu.....................0x4
                                TClass..................0x0
                                SLFlowLabelHopLimit.....0x0


> > But when I lower the MTU on the OpenIB side, I have connectivity:
> > 
> > >From OpenIB -> Solaris
> > ping 192.168.0.2
> > PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
> > 64 bytes from 192.168.0.2: icmp_seq=1 ttl=255 time=8.57 ms
> > 64 bytes from 192.168.0.2: icmp_seq=2 ttl=255 time=0.118 ms
> > 64 bytes from 192.168.0.2: icmp_seq=3 ttl=255 time=0.127 ms
> > 
> > >From Solaris -> OpenIB
> > ping -s 192.168.0.1
> > PING 192.168.0.1: 56 data bytes
> > 64 bytes from 192.168.0.1: icmp_seq=0. time=0.306 ms
> > 64 bytes from 192.168.0.1: icmp_seq=1. time=0.232 ms
> > 64 bytes from 192.168.0.1: icmp_seq=2. time=0.191 ms
> > 64 bytes from 192.168.0.1: icmp_seq=3. time=0.180 ms
> 
> Awesome!!
> 
> > Let me know if you want the additional change to what is currently in
> > the tree. (I forget whether this matters or not for Solaris). I am
> > waiting to hear back from Eitan on this but am pretty sure it's correct.
> 
> Yes, I would like the patch.


Index: osm_sa_mcmember_record.c
===================================================================
--- osm_sa_mcmember_record.c	(revision 1745)
+++ osm_sa_mcmember_record.c	(working copy)
@@ -176,8 +176,8 @@
   p_recvd_mcmember_rec = p_ctxt->p_mcmember_rec;
   p_rcv = p_ctxt->p_rcv;
 
-  /* Why not comparing all the MGID ???? */
-  /* different scope can sneek in for the same MGID ? */
+  /* Why not compare the entire MGID ???? */
+  /* different scope can sneak in for the same MGID ? */
   /* EZ: I changed it to full compare ! */
   if (cl_memcmp(&p_mgrp->mcmember_rec.mgid,
                 &p_recvd_mcmember_rec->mgid,
@@ -732,7 +732,7 @@
 
   OSM_LOG_ENTER( p_rcv->p_log, __validate_requested_mgid );
 
-  /* 14-a : mcaut GUID must start with 0xFF */
+  /* 14-a : mcast GID must start with 0xFF */
   if (p_mcm_rec->mgid.multicast.header[0] != 0xFF)
   {
     osm_log( p_rcv->p_log, OSM_LOG_ERROR,
@@ -1009,8 +1009,8 @@
     {
 
       /*
-       * acording to the same o15-0.1.14 we must get the stored
JoinState and
-       * the request JoinState be oposite to leave - other wise just
update it
+       * according to the same o15-0.1.14 we must get the stored
JoinState and
+       * the request JoinState be opposite to leave - otherwise just
update it
        */
       port_join_state = p_mcm_port->scope_state & 0x0F;
       new_join_state = 
@@ -1419,7 +1419,7 @@
   osm_mcmr_recv_t*            const p_rcv  = p_ctxt->p_rcv;
   const ib_member_rec_t*      p_rcvd_rec   = p_ctxt->p_mcmember_rec;
   const osm_physp_t*          p_req_physp  = p_ctxt->p_req_physp;
-  ib_member_rec_t             match_rec; // since we might change
scope_state
+  ib_member_rec_t             match_rec; /* since we might change
scope_state */
   ib_net64_t                  comp_mask    = p_ctxt->comp_mask;
   osm_mcm_port_t*             p_mcm_port;
   ib_net64_t portguid = p_rcvd_rec->port_gid.unicast.interface_id;
@@ -1433,7 +1433,7 @@
           "__osm_sa_mcm_by_comp_mask_cb: "
           "Checking mlid:0x%X\n",
           cl_ntoh16(p_mgrp->mlid ));
-  /* first try to eliminate the group by MGID, MLID or P_Key */
+  /* first try to eliminate the group by MGID, MLID, or P_Key */
   if ((IB_MCR_COMPMASK_MGID & comp_mask) &&
       cl_memcmp(&p_rcvd_rec->mgid, &p_mgrp->mcmember_rec.mgid,
sizeof(ib_gid_t))) {
     goto Exit;
@@ -1490,10 +1490,10 @@
     sl_flow_hop_mask = sl_flow_hop_mask | 0x000F;
 
   if (IB_MCR_COMPMASK_FLOW & comp_mask)
-    sl_flow_hop_mask = sl_flow_hop_mask | 0x0FF0;
+    sl_flow_hop_mask = sl_flow_hop_mask | 0xFFFFFF0;
 
   if (IB_MCR_COMPMASK_HOP & comp_mask)
-    sl_flow_hop_mask = sl_flow_hop_mask | 0xF000;
+    sl_flow_hop_mask = sl_flow_hop_mask | 0xFF000000;
 
   if ((p_rcvd_rec->sl_flow_hop & sl_flow_hop_mask) !=
       (p_mgrp->mcmember_rec.sl_flow_hop & sl_flow_hop_mask)) goto Exit;



> Thanks,
> 
> -tduffy




More information about the general mailing list