Hello Himanshu, Please find my response inline. -----Original Message----- From: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx> Sent: Monday, October 19, 2020 8:57 PM To: Javed Hasan <jhasan@xxxxxxxxxxx> Cc: Martin K . Petersen <martin.petersen@xxxxxxxxxx>; linux-scsi@xxxxxxxxxxxxxxx; GR-QLogic-Storage-Upstream <GR-QLogic-Storage-Upstream@xxxxxxxxxxx> Subject: [EXT] Re: [PATCH 2/4] include:scsi:fc: FDMI enhancement External Email ---------------------------------------------------------------------- > On Oct 9, 2020, at 4:36 AM, Javed Hasan <jhasan@xxxxxxxxxxx> wrote: > > All the attributes added for RHBA and RPA registration. > Fall back mechanism is added in between RBHA V2 and RHBA V1 > attributes. In case RHBA get failed for RBHA V2 attributes, then we > fall back to RHBA V1 attributes registration. > > Signed-off-by: Javed Hasan <jhasan@xxxxxxxxxxx> > --- > include/scsi/fc/fc_ms.h | 59 ++++++++++++++++++++++++++++++++++------- > 1 file changed, 50 insertions(+), 9 deletions(-) > > diff --git a/include/scsi/fc/fc_ms.h b/include/scsi/fc/fc_ms.h index > 9e273fed0a85..abbd6bacc888 100644 > --- a/include/scsi/fc/fc_ms.h > +++ b/include/scsi/fc/fc_ms.h > @@ -24,6 +24,12 @@ > */ > #define FC_FDMI_SUBTYPE 0x10 /* fs_ct_hdr.ct_fs_subtype */ > > +/* > + * Management server FDMI specifications. > + */ > +#define FDMI_V1 1 /* FDMI version 1 specifications */ > +#define FDMI_V2 2 /* FDMI version 2 specifications */ > + > /* > * Management server FDMI Requests. > */ > @@ -57,22 +63,36 @@ enum fc_fdmi_hba_attr_type { > FC_FDMI_HBA_ATTR_FIRMWAREVERSION = 0x0009, > FC_FDMI_HBA_ATTR_OSNAMEVERSION = 0x000A, > FC_FDMI_HBA_ATTR_MAXCTPAYLOAD = 0x000B, > + FC_FDMI_HBA_ATTR_NODESYMBLNAME = 0x000C, > + FC_FDMI_HBA_ATTR_VENDORSPECIFICINFO = 0x000D, > + FC_FDMI_HBA_ATTR_NUMBEROFPORTS = 0x000E, > + FC_FDMI_HBA_ATTR_FABRICNAME = 0x000F, > + FC_FDMI_HBA_ATTR_BIOSVERSION = 0x0010, > + FC_FDMI_HBA_ATTR_BIOSSTATE = 0x0011, > + FC_FDMI_HBA_ATTR_VENDORIDENTIFIER = 0x00E0, > }; > > /* > * HBA Attribute Length > */ > #define FC_FDMI_HBA_ATTR_NODENAME_LEN 8 > -#define FC_FDMI_HBA_ATTR_MANUFACTURER_LEN 80 > -#define FC_FDMI_HBA_ATTR_SERIALNUMBER_LEN 80 > -#define FC_FDMI_HBA_ATTR_MODEL_LEN 256 > -#define FC_FDMI_HBA_ATTR_MODELDESCR_LEN 256 > -#define FC_FDMI_HBA_ATTR_HARDWAREVERSION_LEN 256 > -#define FC_FDMI_HBA_ATTR_DRIVERVERSION_LEN 256 > -#define FC_FDMI_HBA_ATTR_OPTIONROMVERSION_LEN 256 > -#define FC_FDMI_HBA_ATTR_FIRMWAREVERSION_LEN 256 > -#define FC_FDMI_HBA_ATTR_OSNAMEVERSION_LEN 256 > +#define FC_FDMI_HBA_ATTR_MANUFACTURER_LEN 64 > +#define FC_FDMI_HBA_ATTR_SERIALNUMBER_LEN 64 These below value of 100 seems odd. How did you decided on this value? <JH> In libfc we do have logic to split FCP commands but not for CT commands. If I am adding all attributes of RHBA then total length is going upto 2750(approx), Which is far more than 2048 and that is causing problem. Practically all version/names get covered with in 100 bytes. > +#define FC_FDMI_HBA_ATTR_MODEL_LEN 100 > +#define FC_FDMI_HBA_ATTR_MODELDESCR_LEN 100 > +#define FC_FDMI_HBA_ATTR_HARDWAREVERSION_LEN 100 > +#define FC_FDMI_HBA_ATTR_DRIVERVERSION_LEN 100 > +#define FC_FDMI_HBA_ATTR_OPTIONROMVERSION_LEN 100 > +#define FC_FDMI_HBA_ATTR_FIRMWAREVERSION_LEN 100 > +#define FC_FDMI_HBA_ATTR_OSNAMEVERSION_LEN 100 > #define FC_FDMI_HBA_ATTR_MAXCTPAYLOAD_LEN 4 > +#define FC_FDMI_HBA_ATTR_NODESYMBLNAME_LEN 100 > +#define FC_FDMI_HBA_ATTR_VENDORSPECIFICINFO_LEN 4 > +#define FC_FDMI_HBA_ATTR_NUMBEROFPORTS_LEN 4 > +#define FC_FDMI_HBA_ATTR_FABRICNAME_LEN 8 > +#define FC_FDMI_HBA_ATTR_BIOSVERSION_LEN 100 > +#define FC_FDMI_HBA_ATTR_BIOSSTATE_LEN 4 > +#define FC_FDMI_HBA_ATTR_VENDORIDENTIFIER_LEN 8 > > /* > * Port Attribute Type > @@ -84,6 +104,16 @@ enum fc_fdmi_port_attr_type { > FC_FDMI_PORT_ATTR_MAXFRAMESIZE = 0x0004, > FC_FDMI_PORT_ATTR_OSDEVICENAME = 0x0005, > FC_FDMI_PORT_ATTR_HOSTNAME = 0x0006, > + FC_FDMI_PORT_ATTR_NODENAME = 0x0007, > + FC_FDMI_PORT_ATTR_PORTNAME = 0x0008, > + FC_FDMI_PORT_ATTR_SYMBOLICNAME = 0x0009, > + FC_FDMI_PORT_ATTR_PORTTYPE = 0x000A, > + FC_FDMI_PORT_ATTR_SUPPORTEDCLASSSRVC = 0x000B, > + FC_FDMI_PORT_ATTR_FABRICNAME = 0x000C, > + FC_FDMI_PORT_ATTR_CURRENTFC4TYPE = 0x000D, > + FC_FDMI_PORT_ATTR_PORTSTATE = 0x101, > + FC_FDMI_PORT_ATTR_DISCOVEREDPORTS = 0x102, > + FC_FDMI_PORT_ATTR_PORTID = 0x103, > }; > > /* > @@ -95,6 +125,17 @@ enum fc_fdmi_port_attr_type { > #define FC_FDMI_PORT_ATTR_MAXFRAMESIZE_LEN 4 > #define FC_FDMI_PORT_ATTR_OSDEVICENAME_LEN 256 > #define FC_FDMI_PORT_ATTR_HOSTNAME_LEN 256 > +#define FC_FDMI_PORT_ATTR_NODENAME_LEN 8 > +#define FC_FDMI_PORT_ATTR_PORTNAME_LEN 8 > +#define FC_FDMI_PORT_ATTR_SYMBOLICNAME_LEN 256 > +#define FC_FDMI_PORT_ATTR_PORTTYPE_LEN 4 > +#define FC_FDMI_PORT_ATTR_SUPPORTEDCLASSSRVC_LEN 4 > +#define FC_FDMI_PORT_ATTR_FABRICNAME_LEN 8 > +#define FC_FDMI_PORT_ATTR_CURRENTFC4TYPE_LEN 32 > +#define FC_FDMI_PORT_ATTR_PORTSTATE_LEN 4 > +#define FC_FDMI_PORT_ATTR_DISCOVEREDPORTS_LEN 4 > +#define FC_FDMI_PORT_ATTR_PORTID_LEN 4 > + > > /* > * HBA Attribute ID > -- > 2.18.2 > -- Himanshu Madhani Oracle Linux Engineering