Message ID | 20190405230423.4316-2-jsmart2021@gmail.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | a7dff3ad4787381a3aa831d558fb720b8f354435 |
Headers | show |
Series | scsi fc FPIN event support | expand |
On Fri, 2019-04-05 at 16:04 -0700, James Smart wrote: > T11 has introduced a new Fabric Notifications mechanism whereby the > fabric can notify a port of events occurring in the fabric. > The notifications are given by the FPIN ELS. > > Add the FPIN ELS definitions to the kernel. > > Signed-off-by: James Smart <jsmart2021@gmail.com> > --- > include/uapi/scsi/fc/fc_els.h | 33 +++++++++++++++++++++++++++++++++ > 1 file changed, 33 insertions(+) > > diff --git a/include/uapi/scsi/fc/fc_els.h b/include/uapi/scsi/fc/fc_els.h > index b7e0a5ed40de..a81c53508cc6 100644 > --- a/include/uapi/scsi/fc/fc_els.h > +++ b/include/uapi/scsi/fc/fc_els.h > @@ -52,6 +52,7 @@ enum fc_els_cmd { > ELS_RRQ = 0x12, /* reinstate recovery qualifier */ > ELS_REC = 0x13, /* read exchange concise */ > ELS_SRR = 0x14, /* sequence retransmission request */ > + ELS_FPIN = 0x16, /* Fabric Performance Impact Notification */ > ELS_PRLI = 0x20, /* process login */ > ELS_PRLO = 0x21, /* process logout */ > ELS_SCN = 0x22, /* state change notification */ > @@ -119,6 +120,7 @@ enum fc_els_cmd { > [ELS_RRQ] = "RRQ", \ > [ELS_REC] = "REC", \ > [ELS_SRR] = "SRR", \ > + [ELS_FPIN] = "FPIN", \ > [ELS_PRLI] = "PRLI", \ > [ELS_PRLO] = "PRLO", \ > [ELS_SCN] = "SCN", \ > @@ -829,4 +831,35 @@ enum fc_els_clid_ic { > ELS_CLID_IC_LIP = 8, /* receiving LIP */ > }; > > + > +/* > + * Fabric Notification Descriptor Tag values > + */ > +enum fc_fn_dtag { > + ELS_FN_DTAG_LNK_INTEGRITY = 0x00020001, /* Link Integrity */ > + ELS_FN_DTAG_PEER_CONGEST = 0x00020003, /* Peer Congestion */ > + ELS_FN_DTAG_CONGESTION = 0x00020004, /* Congestion */ > +}; > + > +/* > + * Fabric Notification Descriptor > + */ > +struct fc_fn_desc { > + __be32 fn_desc_tag; /* Notification Descriptor Tag */ > + __be32 fn_desc_value_len; /* Length of Descriptor Value field > + * (in bytes) > + */ > + __u8 fn_desc_value[0]; /* Descriptor Value */ > +}; > + > +/* > + * ELS_FPIN - Fabric Performance Impact Notification > + */ > +struct fc_els_fpin { > + __u8 fpin_cmd; /* command (0x16) */ > + __u8 fpin_zero[3]; /* specified as zero - part of cmd */ > + __be32 fpin_desc_cnt; /* count of descriptors */ > + struct fc_fn_desc fpin_desc[0]; /* Descriptor list */ > +}; > + > #endif /* _FC_ELS_H_ */ Reviewed-by: Ewan D. Milne <emilne@redhat.com>
diff --git a/include/uapi/scsi/fc/fc_els.h b/include/uapi/scsi/fc/fc_els.h index b7e0a5ed40de..a81c53508cc6 100644 --- a/include/uapi/scsi/fc/fc_els.h +++ b/include/uapi/scsi/fc/fc_els.h @@ -52,6 +52,7 @@ enum fc_els_cmd { ELS_RRQ = 0x12, /* reinstate recovery qualifier */ ELS_REC = 0x13, /* read exchange concise */ ELS_SRR = 0x14, /* sequence retransmission request */ + ELS_FPIN = 0x16, /* Fabric Performance Impact Notification */ ELS_PRLI = 0x20, /* process login */ ELS_PRLO = 0x21, /* process logout */ ELS_SCN = 0x22, /* state change notification */ @@ -119,6 +120,7 @@ enum fc_els_cmd { [ELS_RRQ] = "RRQ", \ [ELS_REC] = "REC", \ [ELS_SRR] = "SRR", \ + [ELS_FPIN] = "FPIN", \ [ELS_PRLI] = "PRLI", \ [ELS_PRLO] = "PRLO", \ [ELS_SCN] = "SCN", \ @@ -829,4 +831,35 @@ enum fc_els_clid_ic { ELS_CLID_IC_LIP = 8, /* receiving LIP */ }; + +/* + * Fabric Notification Descriptor Tag values + */ +enum fc_fn_dtag { + ELS_FN_DTAG_LNK_INTEGRITY = 0x00020001, /* Link Integrity */ + ELS_FN_DTAG_PEER_CONGEST = 0x00020003, /* Peer Congestion */ + ELS_FN_DTAG_CONGESTION = 0x00020004, /* Congestion */ +}; + +/* + * Fabric Notification Descriptor + */ +struct fc_fn_desc { + __be32 fn_desc_tag; /* Notification Descriptor Tag */ + __be32 fn_desc_value_len; /* Length of Descriptor Value field + * (in bytes) + */ + __u8 fn_desc_value[0]; /* Descriptor Value */ +}; + +/* + * ELS_FPIN - Fabric Performance Impact Notification + */ +struct fc_els_fpin { + __u8 fpin_cmd; /* command (0x16) */ + __u8 fpin_zero[3]; /* specified as zero - part of cmd */ + __be32 fpin_desc_cnt; /* count of descriptors */ + struct fc_fn_desc fpin_desc[0]; /* Descriptor list */ +}; + #endif /* _FC_ELS_H_ */
T11 has introduced a new Fabric Notifications mechanism whereby the fabric can notify a port of events occurring in the fabric. The notifications are given by the FPIN ELS. Add the FPIN ELS definitions to the kernel. Signed-off-by: James Smart <jsmart2021@gmail.com> --- include/uapi/scsi/fc/fc_els.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+)