FC-LS-3 FABRIC PRIORITY HOW HIGH CAN YOU GET? Howard L. Johnson T11/14-117v0 T11 FC-LS-3 1
Table of Contents Brief Review Issues with Priority Possible Solutions 2
Brief Review T11/124v1 Presentation References 11/124 v1 6/6/2011 v0 3/25/2011 11/205 v2 12/15/2011 v1 11/28/2011 v0 6/6/2011 11/206 v1 6/6/2011 v0 6/6/2011 Pyramid Peak 3
Issues with Priority Where do we start and how high can we get? Priority field is 7-bits 0 indicates no priority 0x01 0x7F ascending priority Representation Large range requires lots of resources No explicit start or end Differences between hardware generations Ambiguity No inband mechanism to communicate the supported range No description of how to handle values outside of supported range Capital Peak 4
Possible Solutions FC-FS-4 / FC-LS-3 / FC-GS-7 FC-FS-4 Modify clause 12.5.2 to explicitly indicate behavior Shall start at 1 Values above supported range treated as highest supported priority Zero treated as normal or average priority FC-LS-3 Create new ELS Get F_Port Priorities Provides N_Port the ability to solicit priority characteristics i.e. supported range FC-GS-7 Create new CT command Get Fabric Attributes Provides N_Port the ability to retrieve various fabric attributes including priority representation Snowmass 5
References FC-LS-3 / FC-FS-4 6
FC-FS-4 12.5.2 Priority When supported by Nx_Ports (see FC-LS-3), the Priority field shall be used to resolve resource contention or to determine the order to deliver frames. Word 1, bits 31-24 of the Frame_Header shall be defined as the Priority field when the CS_CTL/Priority Enable bit (F_CTL, bit 17) is set to one. The Priority field contains priority information for the class of service identified by the SOF. A value of 0000000b in word 1, bits 31-25 shall indicate that no Priority has been assigned to the frame. The remaining values shall indicate, in ascending order, the relative priority of the frame (e.g., a Priority of 23h shall be considered to have a lower priority than a Priority of 57h). The Priority field is defined in table 36. Word 1, bits 31-25 shall be the priority. The priority for a sequence shall be established by the priority provided by the Sequence Initiator SOFi2 or SOFi3 frame. The Sequence Initiator should set the Priority to the same value for all frames in a given Sequence. Changing priority in subsequent frames in a sequence may result in out of order delivery of Data frames. However, priority does not in itself guarantee in order delivery. Both the Fabric and the Nx_Ports shall not be required to validate the consistency of the Priority Field throughout a Sequence. Maroon Bells 7
FC-FS-4 12.7.7 CS_CTL/Priority Enable When the CS_CTL/Priority Enable bit (bit 17) is set to zero, word 1, bits 31-24 of the Frame_Header shall be interpreted to be the CS_CTL field as described in 12.5.1.1. When CS_CTL/Priority Enable is set to one, word 1, bits 31-24 of the Frame_Header shall be interpreted to be the Priority field as described in 12.5.2. The Sequence Initiator shall set CS_CTL/Priority Enable to the same value for all frames in a given Sequence. CS_CTL/Priority Enable shall only be modified on the initial Sequence SOFi2 or SOFi3 frame. Changing CS_CTL/Priority Enable in subsequent frames may result in out of order delivery of frames. Both the Fabric and the Nx_Ports shall not be required to validate the constancy of CS_CTL/Priority Enable throughout a Sequence. Mount Elbert 14,440 8
FC-LS-3 6.6.5.4.3 Priority 6.6.5.4.3.1 Nx_Port 0 = non-zero Priority may be tolerated 1 = non-zero Priority shall be tolerated The Priority bit (word 0, bit 23) has meaning in Class 2, and 3. When an Nx_Port performs Login with another Nx_Port, is sets the Priority bit (word 0, bit 23) to one within the Class of Service to indicate tolerance for non-zero values in the Priority field (see FC-FS-3) in the frame header when CS_CTL/Priority Enable bit (F_CTL bit 17) is set to one. The other Nx_Port indicates tolerance for non-zero values in the Priority field by setting this bit to one in the LS_ACC. An Nx_Port that indicates tolerance of non-zero values in the Priority field shall not reject or otherwise deprecate a frame solely because the Priority field is non-zero. NOTE 14 Even if an Nx_Port never intends to set the Priority Field to any value other than zero, the Nx_Port may still have reason to set the Login Priority bit to one. An Nx_Port should not set a non-zero value in the Priority field in a frame sent within a class of service if Login Priority is not indicated by both the destination Nx_Port and the Fabric. If an Nx_Port sets a non-zero value in the Priority field in a frame sent within a class of service when Login Priority is not indicated by both the destination Nx_Port and the Fabric, then the results are unpredictable. 6.6.5.4.3.2 Fx_Port 0 = Priority is not supported 1 = Priority is supported The Priority bit (word 0, bit 23) has meaning in Class 2, and 3. When an Nx_Port performs Login with a Fabric, it requests support for use of the Priority field (See FC-FS-3) by setting the Priority bit (word 0, bit 23) to one. If Priority is set to one in the Login and the LS_ACC, then both the Nx_Port and Fabric have agreed that Priority is available for use. The set of values specified in table 170 give the meaning of the combination of the Priority bit. Grand Tetons 9
A word from our sponsors Rocky Mountain High T11 FC-LS-3 4/1/2014 10
This slide intentionally left blank Thank You T11 FC-LS-3 11