Donadini Thibault
2007-Feb-21 07:20 UTC
[Lustre-discuss] Lustre wire protocol - portal_index field
Hi, Lustre protocol uses 4 portals header type : - LNET_MSG_PUT - LNET_MSG_GET - LNET_MSG_REPLY - LNET_MSG_ACK The two first contains a portal_index field (4 bytes). Does someone know which portal types are for LNET_MSG_PUT and which are for LNET_MSG_GET: .../lustre_idl.h #define CONNMGR_REQUEST_PORTAL 1 #define CONNMGR_REPLY_PORTAL 2 //#define OSC_REQUEST_PORTAL 3 #define OSC_REPLY_PORTAL 4 //#define OSC_BULK_PORTAL 5 #define OST_IO_PORTAL 6 #define OST_CREATE_PORTAL 7 #define OST_BULK_PORTAL 8 //#define MDC_REQUEST_PORTAL 9 #define MDC_REPLY_PORTAL 10 //#define MDC_BULK_PORTAL 11 #define MDS_REQUEST_PORTAL 12 //#define MDS_REPLY_PORTAL 13 #define MDS_BULK_PORTAL 14 #define LDLM_CB_REQUEST_PORTAL 15 #define LDLM_CB_REPLY_PORTAL 16 #define LDLM_CANCEL_REQUEST_PORTAL 17 #define LDLM_CANCEL_REPLY_PORTAL 18 //#define PTLBD_REQUEST_PORTAL 19 //#define PTLBD_REPLY_PORTAL 20 //#define PTLBD_BULK_PORTAL 21 #define MDS_SETATTR_PORTAL 22 #define MDS_READPAGE_PORTAL 23 #define OST_REQUEST_PORTAL 28 .... or if both portal_index fields are the same ? Regards, T.Donadini
Eric Barton
2007-Feb-26 05:52 UTC
[Lustre-discuss] Lustre wire protocol - portal_index field
> Lustre protocol uses 4 portals header type : > - LNET_MSG_PUT > - LNET_MSG_GET > - LNET_MSG_REPLY > - LNET_MSG_ACK > > The two first contains a portal_index field (4 bytes). > > Does someone know which portal types are for LNET_MSG_PUT and > which are for LNET_MSG_GET:PUT and GET messages both target ME/MDs attached to portal ''portal_index'' at the destination - i.e. your question doesn''t make sense at the LNET protocol level. However at the level of the lustre RPC, GETs are only used by servers fetching bulk data for writes - i.e. the client has already attached an ME/MD with unique matchbits (which it includes in the bulk RPC request) the relevent ???_BULK_PORTAL. In actual fact, I think it''s only ever OST RCPs that do this currently. Cheers, Eric
Donadini Thibault
2007-Feb-27 06:14 UTC
[Lustre-discuss] Lustre wire protocol - portal_index field
Eric Barton a ?crit :>> Lustre protocol uses 4 portals header type : >> - LNET_MSG_PUT >> - LNET_MSG_GET >> - LNET_MSG_REPLY >> - LNET_MSG_ACK >> >> The two first contains a portal_index field (4 bytes). >> >> Does someone know which portal types are for LNET_MSG_PUT and >> which are for LNET_MSG_GET: >> > > PUT and GET messages both target ME/MDs attached to portal ''portal_index'' at the destination - i.e. your question doesn''t make sense > at the LNET protocol level. > > However at the level of the lustre RPC, GETs are only used by servers fetching bulk data for writes - i.e. the client has already > attached an ME/MD with unique matchbits (which it includes in the bulk RPC request) the relevent ???_BULK_PORTAL. In actual fact, I > think it''s only ever OST RCPs that do this currently. > > Cheers, > Eric > > > >Ok thank you for this information, I doesn''t really know what is ME/MD so i will look at portals spec. Moreover, the latest book about lustre, and more precisely for me about the wire protocol, is old (it wasn''t lnet yet). Since, there have been modifications and additions (portal_types, structures (in lustre_idl.h), etc..) without explanations. So it'' s a little bit hard to understand the whole protocol. Is there a way to have information about the latest wire protocol modifications? (a new lustre-book or some notes for example?) Thibault