[openib-general] [PATCH v2 04/13] Connection Manager

Steve Wise swise at opengridcomputing.com
Tue Dec 5 08:47:25 PST 2006


On Tue, 2006-12-05 at 19:31 +0300, Evgeniy Polyakov wrote:
> On Tue, Dec 05, 2006 at 10:12:42AM -0600, Steve Wise (swise at opengridcomputing.com) wrote:
> > Ah.  Data from an offloaded connection cannot leak into the main stack
> > nor vice-verse.  We can take an active RDMA connection establishment as
> > an example if you want:  Once the message is sent to the HW to "setup a
> > TCP connection from addr/port a.b to addr/port c.d", then packets on
> > that connection (that 4-tuple) will always be delivered to the RDMA
> > driver, not the native stack.  If the the packet received after the
> > connection is setup is -not- an MPA reply (in this example), then the
> > connection is aborted.  Once the connection is aborted.  So no leaking
> > can happen.
>  
> And if there were a dataflow between addr/port a.b to addr/port c.d
> already, it will either terminated?
> 
> Considering the following sequence:
> handlers->t3c_handlers->sched()->work_queue->work_handlers()->for
> example CPL_PASS_ACCEPT_REQ->pass_accept_req() - it just parses incoming
> skb and sets port/addr/route and other fields to be used as a base for rdma
> connection. What if it just a usual network packet from kernelspace or 
> userspace with the same payload as should be sent by remote rdma system?
> 

That skb isn't a network packet.  Its a CPL_PASS_ACCEPT_REQ message (see
struct cpl_pass_accept_req in the Ethernet driver t3_cpl.h).  If the
RDMA driver hadn't registered to listen on that addr/port, it would
never get this skb.  Once a connection is established, the MPA messages
(and any TCP payload data) is delivered to the RDMA driver in the form
of skb's containing struct cpl_rx_data.  So these skbs aren't just TCP
packets at all.  They either control messages or TCP payload. Either way
they are encapsulated in CPL message structures.

Does this make sense?







More information about the general mailing list