Wireshark-bugs: [Wireshark-bugs] [Bug 13213] RPC dissector doesn't match Replies to Calls with R
Comment # 7
on bug 13213
from Chuck Lever
(In reply to Parav Pandit from comment #6)
> (In reply to Chuck Lever from comment #5)
> > The destination port for the client-to-server conversation does not match
> > either the source port or the destination port for the server-to-client
> > conversation. This defeats the RPC dissector's conversation-based XID
> > matching mechanism.
>
> Its IP over IB.
To be clear, NFS/RDMA is not the same as NFS on TCP on IPoIB.
> so TCP/NFS dissector would look for src and dest port of TCP?
Yes, NFS on TCP on IPoIB uses the port information established by the TCP
layer.
> While infiniband.c would do conversations based on src and dest qp.
Correct. Note, however, that the dest QPN for the client-to-server conversation
is not the same as the dest QPN for the server-to-client conversation.
> Thats what I see in the logs and in trace as below.
>
> > update_sport frame=13 updating sport = 546, dport=525
> > get_conversation_for_call frame=13 sport=55562 dport=111 conv=0x7f205dab1830
Neither of the dport values is 20049, which is the standards-designated TCP
port used for NFS/RDMA. So I would conclude from your log that these are not
TCP ports.
> Do packet-rpc.c find conversation based on IB srcport, destport or TCP ports?
The current logic in packet-rpc.c treats PT_TCP and PT_IBQP the same, and
expects that the pinfo will be set up so that:
In the client-to-server direction: < addr A, port A, addr B, port B >
In the server-to-client direction: < addr B, port B, addr A, port A >
But for PT_IBQP, we have:
In the client-to-server direction: < addr A, -1, addr B, dest QPN B >
In the server-to-client direction: < addr B, -1, addr A, dest QPN A >
packet-rpc.c's XID-matching mechanism doesn't work with those tuples. Just
setting up the src port in the pinfo doesn't help because "dest QPN A" != "dest
QPN B" .
To make PT_IBQP work like PT_TCP, maybe you'd need:
In the client-to-server direction: < addr A, dest QPN A, addr B, dest QPN B >
In the server-to-client direction: < addr B, dest QPN B, addr A, dest QPN A >
You are receiving this mail because:
- You are watching all bug changes.