Skip to contentSkip to conversation

ibswitches command displays wrong information when switch description string includes "base"

DISCUSSION pierre orzechowski 3 participants 3 messages Jan 7, 2012 – Jan 12, 2012 1 message not in the archive InfiniBand

lore
Share & tools
lore
#0 lore raw

Hello,

We have a customer reporting an issue with the "ibswitches" command part of the infiniband-diags package.
If the switch description includes the string "base" anywhere, then the match operation in the awk section of ibwitches does not behave as expected and output is garbled.

Example :

[root@slcc09sw-ib2 tmp]# grep Switch ibnetdisc.out

Switch  36 "S-002128468ee1a0a0"         # "SUN DCS 36P QDR basesw-ib3 10.242.48.23" enhanced port 0 lid 1 lmc 0
Switch  36 "S-0021286cc8a3a0a0"         # "SUN DCS 46P QDR slcc09sw-ib3 10.242.48.24" enhanced port 0 lid 12 lmc 0

[root@slcc09sw-ib2 tmp]# ibswitches ibnetdisc.out
Switch : 0x002128468ee1a0a0 ports 36 "SUN DCS 36P QDR base port 0 lid 1 lmc 0
Switch : 0x0021286cc8a3a0a0 ports 36 "SUN DCS 46P QDR slcc09sw-ib3 10.242.48.24" enhanced port 0 lid 12 lmc 0

The 1 liner workaround we have is to replace in red :
echo "$text" | awk '

/^Switch/       {
                        l=$0
                        desc=substr(l, match(l, "#[ \t]*")+RLENGTH)
                        pi=match(desc, "port 0.*")
                        pinfo=substr(desc, pi)
                        desc=substr(desc, 1, pi-2)

type="base"
ti=match(desc, type)
...

With

echo "$text" | awk '

/^Switch/       {
                        l=$0
                        desc=substr(l, match(l, "#[ \t]*")+RLENGTH)
                        pi=match(desc, "port 0.*")
                        pinfo=substr(desc, pi)
                        desc=substr(desc, 1, pi-2)

type="\base\"
ti=match(desc, type)
...

Thanks for your help in reviewing this potential defect. Apologies if posting to the wrong mailing list.

Best regards,
Pierre Orzechowski

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

A message that is not in the archive (sent off-list or not yet received): [email protected]

#2 lore raw
Quoted 5 lines · pierre orzechowski

We have a customer reporting an issue with the "ibswitches" command part of the infiniband-diags package.
If the switch description includes the string "base" anywhere, then the match operation in the awk section of ibwitches does not behave as expected and output is garbled.

These shell tools have all been de-supported by the infiniband-diags maintainer, exactly because they are prone to these sorts of problems due to inherent design flaws.

The recommendation is to use the new C based commands, but there is not an exact correspondence.

python-rdma's ibtool command has work-alikes for all of the old commands that do not have these issues for people who absolutely must have the old commands.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw
In reply to a message not in the archive

While Jason is correct that I am working to deprecate the scripts this bug still exists in the 1.5 branch.

Thanks for pointing this out. As Open Fabrics is doing an additional 1.5 release I will attempt to fix before that release.

Thanks,
Ira

Quoted 56 lines · On Fri, 6 Jan 2012 16:22:32 -0800 pierre orzechowski…

Hello,

We have a customer reporting an issue with the "ibswitches" command part of the infiniband-diags package.
If the switch description includes the string "base" anywhere, then the match operation in the awk section of ibwitches does not behave as expected and output is garbled.

Example :

[root@slcc09sw-ib2 tmp]# grep Switch ibnetdisc.out
Switch 36 "S-002128468ee1a0a0" # "SUN DCS 36P QDR basesw-ib3
10.242.48.23" enhanced port 0 lid 1 lmc 0
Switch 36 "S-0021286cc8a3a0a0" # "SUN DCS 46P QDR slcc09sw-ib3
10.242.48.24" enhanced port 0 lid 12 lmc 0 [root@slcc09sw-ib2 tmp]# ibswitches ibnetdisc.out
Switch : 0x002128468ee1a0a0 ports 36 "SUN DCS 36P QDR base port 0 lid 1 lmc 0
Switch : 0x0021286cc8a3a0a0 ports 36 "SUN DCS 46P QDR slcc09sw-ib3 10.242.48.24" enhanced port 0 lid 12 lmc 0

The 1 liner workaround we have is to replace in red :
echo "$text" | awk '

/^Switch/       {
                         l=$0
                         desc=substr(l, match(l, "#[ \t]*")+RLENGTH)
                         pi=match(desc, "port 0.*")
                         pinfo=substr(desc, pi)
                         desc=substr(desc, 1, pi-2)

type="base"
ti=match(desc, type)
...

With

echo "$text" | awk '

/^Switch/       {
                         l=$0
                         desc=substr(l, match(l, "#[ \t]*")+RLENGTH)
                         pi=match(desc, "port 0.*")
                         pinfo=substr(desc, pi)
                         desc=substr(desc, 1, pi-2)

type="\base\"
ti=match(desc, type)
...

Thanks for your help in reviewing this potential defect. Apologies if posting to the wrong mailing list.

Best regards,
Pierre Orzechowski

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 9 lines
Ira Weiny
Member of Technical Staff
Lawrence Livermore National Lab
925-423-8008
[email protected]
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html