best_dcbx protocol detailed-v1.0

29
 DCB X Base Pr otocol Rev 1.0  Task Group Da ta C enter B r idging Revision 1.0  Author Ma noj Wade k ar ( Q l ogic ), et al DCB Capability Exchange Protocol B ase S pec if ic at ion Rev 1.0 1

Upload: duk-yell-yoo

Post on 14-Jul-2015

75 views

Category:

Documents


0 download

TRANSCRIPT

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 1/29

 

DCBX Base Protoc ol Rev 1.0

 Task Group Data Center Bridging  

Revision 1.0 

Author Ma noj Wade kar (Qlogic), et a l 

DCB Capability Exc hange Protoc ol

Base Spec ification

Rev 1.0

1

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 2/29

 

DCBX Base Protoc ol Rev 1.0

Modification History

Rev Originator Comment1.0 Manoj Wadekar Initial Submitted Version

2

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 3/29

 

TABLE OF CONTENTS

TABLE OF CONTENTS............................................................................................3  

LIST OF TABLES......................................................................................................3  

LIST OF FIGURES...................................................................................................4  

Termino logy.........................................................................................................4  

Related Doc uments............................................................................................5  

Change History ....................................................Error! Boo kma rk not defined . 

1.  Authors........................................................................................................5  

2.  Introduc tion ................................................................................................7  

2.1  Goals...................................................................................................................7 2.2  Types of DCB Parameters..................................................................................9 

2.3  DCBX and LLDP...................................................................................................9 2.3.1  LLDP Mod ific ations_____________________________________________________11 

2.4  DCBX Operation...............................................................................................13 2.4.1  DC BX TLV Format ______________________________________________________14 2.4.2  DCBX Cont rol Sta te Mac hine ___________________________________________15 2.4.3  DCB Feature Sta te Mac hine ____________________________________________19 2.4.4  Mana ger Notif ica tions _________________________________________________25 

3.  DCB Features............................................................................................26  

3.1  Priority Group Feature .....................................................................................26 3.1.1  Priority Group Paramete rs ______________________________________________26 3.1.2  Priority Group TLV ______________________________________________________26 3.1.3  Priority Group Pa ramete r C omparison ___________________________________27 3.1.4  Feature Spec ific Beha vio r for Priority Group TLV __________________________27 

3.2  Priority -based Flow Control (PFC) Fea ture ....................................................28 3.2.1  Priority-b ased Flow Cont rol Para mete rs__________________________________28 3.2.2  Priority-based Flow Control TLV__________________________________________28 3.2.3  Priority-b ased Flow Control Param ete r Comparison ______________________29 3.2.4  Feature Spec ific beha vio r for PFC TLV ___________________________________29 

LIST OF TABLESTABLE 1 DCBX CONTROL TLV FIELDS........................................................................................................ 16 TABLE 2 DCBX CONTROL STATE VARIABLES ............................................................................................... 16 TABLE 3 DCB FEATURE TLV HEADER FIELD DEFINITIONS ........................................................................... 19 TABLE 4 DCBX STATE VARIABLE DEFINITIONS FOR THE DCB FEATURE STATE MACHINE............................ 21 TABLE 5 - PRIORITY GROUP PARAMETERS .................................................................................................... 26 TABLE 6 - PRIORITY GROUPS PARAMETER COMPARISON.............................................................................. 27 

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 4/29

 

DCBX Base Protoc ol Rev 1.0

TABLE 7 PRIORITY-BASED FLOW CONTROL .................................................................................................. 28 

LIST OF FIGURESFIGURE 1 - DCBX DEPLOYMENT SCENARIO ................................................................................................... 8 FIGURE 2 - TYPES OF PARAMETERS................................................................................................................. 9 FIGURE 3 - LLDP FRAME FORMAT................................................................................................................ 11 FIGURE 4 - INITIAL LLDP EXCHANGE DELAY ISSUE ..................................................................................... 12 FIGURE 5 - INITIAL FAST RETRANSMISSION OF LLDP FRAMES ..................................................................... 13 FIGURE 6 - HIGH LEVEL DCBX TLV STRUCTURES....................................................................................... 14 FIGURE 7 - DCBX CONTROL TLV DEFINITION ............................................................................................. 15 FIGURE 8 - DCBX CONTROL STATE MACHINE DIAGRAM............................................................................. 18 FIGURE 9 – DCB FEATURE TLV HEADER DEFINITION (DCBX_TLV_HEADER) ............................................ 19 FIGURE 10 – GENERIC DCB FEATURE TLV .................................................................................................. 19 FIGURE 11 - DCB FEATURE STATE MACHINE ............................................................................................... 24 FIGURE 12 - PRIORITY GROUP PARAMETERS STRUCTURE ............................................................................. 27 

FIGURE 13 - PRIORITY-BASED FLOW CONTROL PARAMETERS STRUCTURE................................................... 29 

Terminology

Term Description

BCN Backward Congestion Management

CM Congestion Management

DCB Data Center Bridging

DCBX DCB Capability Exchange Protocol

LLDP Link Layer Discovery Protocol, IEEE802.1AB

LLDPDU An LLDP PDU

NIC Network interface controller

OS Operating System.

OUI Organizationally Unique Identifier

PDU Protocol Data Unit

PFC Priority-based Flow Control (same as Per Priority Pause or Class Based Flow

Control)

PG Priority Groups

RX Receive

SNMP Simple Network Management Protocol

TLV Type Length Value

TTL Time to Live

TX Transmit

4

 

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 5/29

 

DCBX Base Protoc ol Rev 1.0

Related Documents

DCB Feature SpecificationsDefinition for new PAUSE func tion – v1.2

http://www.ieee802.org/1/files/public/dos2007/new-cm-barrass-pause-

proposal.pdf 

Packet Sched uling w ith Priority Group ing and Band width Alloc at ion for DCB

Networks

http:/ / ww w.ieee802.org/ 1/files/ pub lic/ doc s2008/ az-wa de kar-ets-prop osal-0608-

v1.01.pdf 

1. AuthorsThe follow ing peop le, with co mp any a ffiliat ions, have contribute d to the prep aration of

this proposal:

Am it Shukla – Junipe r

Anoop Gha nwa ni - Broc ad e

Anjan – Cisc oAnt hony Faustini - Cisco

Asif Hazarika – Fujitsu

Awa is Nema t – Marvell

Bruce Klemin – Qlogic

Brice Kwa n - Broad c om

Claud io DeSanti- Cisc o

Craig W. Carlson - QLogic

Dan Eisenhaue r – IBM

Danny J. Mitzel - Broc ade

Dav id Pete rson – Broc ade

Dieg o C rupniokoff – Mellano x

Dinesh Dut t - C isc o

Douglas Dreyer - IBMEd Mc Glaug hlin – Qlogic

Eric M ultane n - Intel

Ga urav Chaw la - Dell

Glenn - Broc ad e

Hemal Purohit - QLogic

Hugh Barrass – Cisc o

Ilang o G ang a - Intel

5

Irv Robinson - Intel

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 6/29

 

DCBX Base Protoc ol Rev 1.0

J. R. Rive rs – Cisco

Jeelani Syed - Junipe r

Jeffrey Lynch - IBM

Jim Larsen - Intel

Joe Pelissier - Cisc o

John Hufferd – BrocadeJohn Terry – Broc ade

Krishna Dod dapanen i - Cisc o

Ma noj Wadekar – Qlog ic

Menu M enuc hehry - Marvell

Mike Ko – IBM

Mike Krause - HP

Parag Bhide - Emulex

Pa t Tha ler - Broad com

Ravi Shenoy - Emulex

Rena to Rec io - IBM

Robert Snively - Broc ade

Roger Hathorn - IBMSanjaya A nand – Qlog ic

Sanjay Sane – Cisc o

Shreya s Sha h - PLX

Silva no Ga i - Cisc o

Stua rt Berman - Emulex

Suresh Vobb iliset ty - Broc ade

Taufik Ma - Emulex

6

Uri Elzur - Broadcom

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 7/29

 

DCBX Base Protoc ol Rev 1.0

2.  IntroductionThis do c ument d etails the d ata c enter disco very and c ap ab ility exc hange protoc ol

(DCBX) tha t is used by DCB device s to excha nge c onfigurat ion information with d irec tly

connec ted p ee rs. The protoc ol ma y also be used for misconfigurat ion de tec tion and forconfiguration of the peer.

This doc ument d esc ribes the b ase p roto col which com prises a c ontrol state ma c hine

and a g eneric fea ture state ma chine. For ea c h fea ture that is to be supp orted b y

DCBX, the fo llow ing information must b e provided :

•  The p aramete rs to b e e xcha nged ;

•  How the p aram ete rs are used for dete c ting misc onfiguration;

•  What a ction need s to b e ta ken when a n error is de tec ted;

This doc ume nt a lso lists the above informa tion for the following fea tures:

-  Priority Groups (PG)

-  Priority-based Flow Co ntrol (PFC)

In future, it is likely tha t add itiona l fea tures ma y be added to DCBX.

2.1  GoalsThe follow ing lists the goa ls of DCBX.

Discovery of DCB cap ab ility in a pe er: DCBX is used to know ab out the c ap ab ilities of

the p ee r device . It is a means to know if the p ee r de vice supp orts a pa rticular fea ture

suc h as Priority Group s (PG) o r Priority-based Flow Co ntrol (PFC). For example, it c an

be used to de termine if two link peer de vices supp ort PFC.

DCB feature misconfiguration detection: DCBX c an b e used to d etec tmisconfigura tion of a fea ture b etw een the pee rs on a link. Misc onfigurat ion

detec tion is fea ture-spe c ific be c ause som e fea tures ma y allow asymme tric

configuration.

Peer configuration of DCB features: DCBX can be used by a device to perform

c onfigu ra tion of DCB fea tures in its link peer. The g oa l is to p rovide b asic p ee r to p ee r

configuration through DCBX in the initial version. Future versions of DCBX or another

higher layer application can build on top of this to provide more complex

configuration distribution mechanisms.

Figure 1 show s a d ep loyment scena rio for a ne twork that is using DCBX. DCBX capablelinks excha nge DCB c ap ab ility and configuration, and c onflic t a larms are sent to the

ap p rop riat e ma nag em ent stations. As an exam p le, a bo unda ry is show n indic ating

which d evice s supp ort PFC a nd w hic h do not.

7

 

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 8/29

 

DCBX Base Protoc ol Rev 1.0

Switch Management

Server Management

3

D  C  B  X  

 D C B X

D  C  B  X  

DC B X

 D C B  X

  D  C   B   X

     C    o     n      f      l      i    c

      t     a      l    a

     r     m

Conflict

alarm

D  C  B  X  

D  C  B  X  

 D C  B  X

   D   C    B    X

PFCenabledregion

 

8

Figure 1 - DCBX Deploym ent Sc ena rio

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 9/29

 

DCBX Base Protoc ol Rev 1.0

2.2  Types of DCB ParametersEac h DCB fea ture has a set o f pa rame ters. DCB parame ters a re c lassified into two

broad ca tego ries:

-  Excha nged pa rame ters: Excha nge d pa ramete rs a re sent to the p ee r. Within

these parameters, there are two sub-groups:

1.  Administered param eters: These are the c onfigured pa ramete rs.

2.  Op erat iona l parame ters: This is the op erat iona l sta te o f the related

ad ministered p a ram ete r. Op erationa l state might be d ifferent tha n the

administrative/ con figured sta te, primarily as a result of the DCBX exchange

with the pee r. Op erational pa ram eters ac c om pa ny only those administered

parame ters where the re is a possibility that the o perat iona l sta te is d ifferent

from what wa s set b y their administrato r. The o perat iona l pa rame ters a re

included in the the LLDP me ssage only for informa tiona l purposes. It might b e

used by a de vice to know wha t is the c urrent op erational state of the pee r.-  Loc al pa rameters: Loc a l pa rame ters a re no t exc ha nged in LLDP me ssage s.

Figure 2 show s the e xc hange d pa ram ete rs that a re sent to ea c h p ee r via LLDP

messages.

DCB MIB

Device A Device B

Local

parameters

Exchangedparameters

DCB MIB

Exchangedparameters

Local

parameters

Operationalparameters

Exchanged parameters

Ethernet Link

LLDP Messages

Operationalparameters

 

Figure 2 - Typ es of Parameters

2.3  DCBX and LLDPDCBX uses Link Layer Discovery Protocol (LLDP) to exchange parameters between two

link peers. LLDP is a unidirectional protocol. It advertises connectivity and managementinforma tion a bout the loc a l sta tion to ad jac ent sta tions on the same IEEE 802 LAN.

LLDP PDUs c arry Type Leng th Va lues (TLVs) c lassified as

1.  Mand ato ry TLVs: Cha ssis ID, Port ID, TTL, End of LLDPDU.

2.  Op tiona l TLVs: Basic Ma nagem ent , 802.1 and 802.3 Orga niza tiona lly Spec ific.

9

DCB exchanged pa rame ters a re p ac kag ed into Orga niza tiona lly Spec ific TLVs. The OUI

used for the DCBX TLV is 0x001B21 (IEEE OUI will be used when it bec om es ava ilab le).

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 10/29

 

DCBX Base Protoc ol Rev 1.0

Depend ing on the a mo unt of d ata req uired for all fea tures, one o r more TLVs, with

d ifferent sub -types, are d efined for DCBX. Within the DC BX TLVs, sub -TLVs a re define d for

ea c h fea ture c arried b y that TLV.

A device capable of any DCB feature must have DCBX enabled by default with an

option for DCBX to be administratively disabled.

DCBX is expec ted to op erate over a p oint to p oint link. If multip le LLDP neighbors a re

dete c ted , then DCBX behaves as if the p ee r’ s DCBX TLVs a re not p resent until the

multiple LLDP ne ighb or cond ition is no longer present . An LLDP neighbor is identified by

its log ica l MAC Service Ac cess Ide ntifier (MSAP). The log ica l MSAP is a c onc a tena tion o f

the c ha ssis ID and port ID va lues transmitte d in the LLDPDU.

LLDP gives adm inistrat or co ntrol to ena ble/ d isab le the protoc ol indep end ently on the Rx

side and Tx side . Since DCBX is an ac know led ged protoc ol which uses LLDP, for the

protoc ol to ope rate correc tly bo th LLDP Rx and Tx must be e nab led o n the interface o n

which DCBX runs. The behavior of DC BX is as follow s w ith respec t to LLDP Rx/Tx ad min

sta te cont rols:

* If either of Rx or Tx is in d isab le sta te , DCBX is d isab led on the interfac e. Ne ither the

control nor fea ture sta te ma c hines should run. The LLDPDU's tha t a re g ene ra ted from this

interfac e do not ha ve any DCBX TLVs. If the pee r sends DCBX TLVs the y should b e

igno red as far as the DCBX stat e m ac hines a re c onc erned.

* When DC BX is c urrently running a nd LLDP TX is d isab led , then ac c ord ing to the LLDP

spec ifica tion, a shutdow n LLDPDU is sen t. When the pee r rec eive s this PDU, DCBX is

determined to be d isab led on the pee r. This is eq uiva lent to DC BX TLV TTL exp ired in the

Co ntrol Sta te ma c hine a nd Rx.Fea ture.present () = FALSE in the Fea ture sta te ma chine. If

for som e rea son this frame is lost, the n DCBX dep ends on sta nd ard rxInfoTTL exp iry of the

peer's LLDP TLV's.

* When DCBX is current ly running and LLDP Rx is d isab led , then a ll DCBX TLV's inc lud ing

the c ont rol TLV should b e w ithdraw n from the LLDP PDUs tha t the interfac e g ene ra tes.

The pee r's behavior shou ld b e the same as d isc ussed in the p revious case.

10

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 11/29

 

DCBX Base Protoc ol Rev 1.0

DA SA Ethtype0x88CC

LLDP PDU

Chassis IDTLV

Port IDTLV

Time ToLive

OptionalTLV

Ethernet

Frame format

PROTCOL

Type7 bits

Length9 bits

Information0 - 511 octets General TLV structure

PROTOCOLTLV

End ofLLDPDU TLV

TLVType=127

Length9 bits

OUI3 octets

Subtype1 octet

Information0 – 507 octets

Org TLV HeaderFeatureSub-TLV

FeatureSub-TLV

FeatureSub-TLV

Organizationally SpecificTLV structure

LLDP Pform

PROTOCOLControl Sub-TLV

 

Figure 3 - LLDP Fram e Form at

2.3.1  LLDP ModificationsThis sec tion lists the p roposed mo d ific a tions to the LLDP protoc ol fo r use w ith DCBX. IEEE

802.1AB REV p rojec t is c urrent ly wo rking on these mo d ific a tions. Onc e stand ard is

pub lished for IEEE 802.1AB-REV, DCBX spec ific a tion w ill be approp ria te ly mod ified .

2.3.1.1  Fast initial LLDP TransmissionsThe c urrent LLDP p roto col can result in a long delay be fore DCB pa rame ters a re

exchang ed and synchronized .

LLDP transmits a fram e a fte r:-  Transmit countd ow n timer exp irat ion (recom mende d default value = 30 sec ond s)

and txDelay expiration, OR

-  A c ond ition (sta tus or value) change in one or more o b jec ts in LLDP loc a l system

MIB. (LLDP loc a l system MIB c on ta ins on ly the ob jec ts tha t a re sen t in LLDP fram es.

This MIB c ou ld b e m erely a sub set of a larger MIB).

11

After initialization, an LLDP frame is transmitted (considering the initialization as a status

change).

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 12/29

 

DCBX Base Protoc ol Rev 1.0

An initial LLDP messag e m ight not be rec eived by t he p ee r due to different t imes at

wh ich the ir initializa tion c om pletes (see Figure 4).

PHY Link up

LLDP initialized

PHY Link up

LLDP initialized

Device A Device B

Peer parametersreceived

Peer parametersreceived

LLDP messages

X

 

Figure 4 - Initial LLDP Exchange Delay Issue

In orde r to o vercome this p rob lem, the follow ing mod ific at ion is prop osed .

The interva l for the LLDP transmission time to refresh the time r (msgTxInte rval) is set to one

sec ond for the first five transmissions a fte r LLDP initializa tion and the n reset to theadministratively configured va lue. The txDelay (minimum delay be twee n suc c essive

transmitte d LLDP fram es) is a lso set to one sec ond as a DCBX defa ult. This ensures tha t a t

sta rt up both d evice s rec eive p ee r pa ram ete rs within a short time fram e a s show n in

Figure 5.

12

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 13/29

 

DCBX Base Protoc ol Rev 1.0

PHY Link up

LLDP initialized

PHY Link up

LLDP initialized

Device A Device B

Peer parametersreceived

Peer parametersreceived

LLDP Messages

X

X

 

Figure 5 - Initia l Fast Retransmission of LLDP Fram es

Eac h time LLDP is initia lized , suc h a s link up , LLDP enters this fast t ransmission mode. LLDP

op erates in its norma l transmission m od e a t a ll other times.

2.4  DCBX OperationDCBX is defined as a DCBX c ont rol sta te m ac hine and a set o f DCB fea ture sta te

ma chines. The DCBX c ont rol sta te machine hand les ensuring tha t the tw o DCBX pee rsge t in sync by excha nging LLDPDUs a fter link up or follow ing a c onfiguration chang e.

The DCB fea ture stat e ma chines handle the loc al op erational configura tion for ea ch

fea ture by c om pa ring and synchronizing with the pee r’ s fea ture settings.

13

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 14/29

 

DCBX Base Protoc ol Rev 1.0

2.4.1  DCBX TLV FormatInforma tion ab out the DCBX c ontrol sta te a nd DCB fea ture c onfigura tion are excha nge d

with the p eer in DCBX TLVs tha t a re transmitte d v ia LLDP PDUs. Figure 6 shows the

general struc ture of the orga niza tiona lly spec ific DC BX TLV. The d eta ils of each sub -TLV

are co vered in the rema inder of the doc ument.

Figure 6 - High Leve l DCBX TLV Struc tures

The DC BX Co ntrol Sub -TLV and the set of Fea ture Sub -TLVs can be a rrang ed in any order

within the DCBX TLV. Dup lica te Sub -TLV’s (suc h a s more tha n one Sub -TLV for the same

fea ture) are not a llow ed . Duplic ate s are hand led a s a c onfigurat ion error for the

fea ture. A d up lic a te DC BX Co ntrol TLV causes an e rror for all features.

The DCBX sub -TLVs fo llow the same forma t a s an LLDP TLV – having typ e, length and

informa tion fields. The t ype field is me aningful within the c ontext of a DCBX TLV and the

lengt h spec ifies the number of oc tets in the informat ion portion of the sub -TLV.

Figure 6 shows OUI=001B21 tha t is offe red by Inte l Corp. for use by a ll the parties using

pre-sta nda rd version. Onc e IEEE 802.1 de fines the p roto c ol, ap propriate OUI nee ds to be

used as defined by IEEE standard.

2.4.1.1  Bit and Oc tet Ordering ConventionsDCBX uses the same b it and oc te t o rdering convent ions as LLDP.

[The DCBX TLV] contain[s] an integral number of octets. The

octets in [a DCBX TLV] are numbered starting from one and

increasing in the order they are put into the LLDP frame. The

bits are numbered from zero to seven, where zero is the low-order

bit.

When consecutive bits within an octet are used to represent a

binary number, the highest bit number has the most significant

value. When consecutive octets are used to represent a binarynumber, the lower octet number has the most significant value.

All TLVs respect these bit and octet ordering conventions, thus

allowing communications to take place.

In the de tails tha t follow , the follow ing d at a types a re used to d efine struc tures which

describe the eleme nts of DCBX sub -TLVs:

14

•  u32 - unsigned 32 b it intege r

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 15/29

 

DCBX Base Protoc ol Rev 1.0

•  u16 - unsigned 16 b it intege r

•  u8 - unsigned 8 b it intege r

Eleme nts listed first in a structu re have lowe r oc tet num be rs then subseq uent e leme nts.

Bit fields within a n elem ent o c c upy t he highe st to lowest o rde r bits of the eleme nt in the

orde r they are listed . The fo llow ing structu re shows an exam p le.

2.4.2  DCBX Control State MachineThe DCBX Control sta te ma c hine uses the DCBX Control sub -TLV to exchange informa tion

with the pe er. In ad dition, it ma intains som e a dd itiona l loc al sta te va riables to m anag e

the sta te m ac hine op eration. The TLV and stat e va riables a re d efined in the sec tions

that follow.

2.4.2.1  DCBX Control TLVFigure 7 shows the DCBX Cont rol TLV.

Figure 7 - DCBX Control TLV Definition

15

struct example_tlv {u16 type :7; // high order bit field in u16 elementu16 length :9; // low order bit field in u16 elementu32 fieldA :8; // highest order bit field in u32 elementu32 fieldB :8;u32 fieldC :3;u32 fieldD :13; // lowest order bit field in u32 element

};

SIZE = 6 octets

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 16/29

 

DCBX Base Protoc ol Rev 1.0

The follow ing ta b le lists the fields in the DCBX Co ntrol TLV.

Table 1 DCBX Control TLV Fields

Field Field -Typ e Range Desc ription

Feature-Typ e

Integ er N/A Type c od e of the DCBX Co ntrolTLV.

Leng th Integer N/ A Leng th of the DCBX Co ntrol sub -

TLV payloa d (not including the

Type and Leng th fields). The

leng th is less tha n the ma ximum

possible va lue (511) as this TLV is

pac kag ed inside the DCBX TLV

a long with o ther fea ture TLV’s.

Oper

Version

Integer 0..255 Op erat ing version of the DCBX

protoc ol. The system ad justs as

need ed to op erate at the highest

version supported by both linkpartners.

Ma x

Version

Inte ger 0..255 Highest DCBX protoc ol version

supported by the system . Version

num bers sta rt at zero. The DC BX

protoc ol must be b ac kward

c omp atible w ith a ll previous

versions.

Seq No Intege r 0 ..

(232 –1)

A value that cha nges ea c h time

an e xcha nged pa rameter in one

or mo re o f the DCB fea ture TLV’s

changes.

Ac kNo Intege r 0 ..(232 –1) The Seq No va lue from the mo strec ent pee r DCBX TLV tha t ha s

be en handled . This

ac knowled ge s to the pe er that a

spe c ific Seq No ha s be en

received.

2.4.2.2  DCBX Control State Va riablesThe following tab le lists the loc a l sta te variab les used to ma intain the DCBX Co ntrol sta te

machine.

Tab le 2 DCBX Control state va riab les

16

State

Variable

Type Rang e Desc ription

RcvdAc kNo Intege r 0 ..

(232 –1)

The ‘ Ac kNo’ from the m ost

recen t p ee r DCBX TLV tha t

ha s bee n hand led . This is an

ac know led ge ment from the

pe er that a spe c ific Seq No

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 17/29

 

DCBX Base Protoc ol Rev 1.0

has be en received.

No DC BXTLV

Received

Boolean TRUE/ FALSE This fla g is set whe n

somethingChangedRemote

eve nt is received from LLDP

and Rem ote M IB indica tes

empty DC B TLVsDCBXFeatur

eUpdate

Boo lea n TRUE/ FALSE Ind ica tes any cha nge in

DCBX Fea ture

2.4.2.3  DCBX Control State MachineIn a dd ition to the TLV fields and sta te variab les p rev iously desc ribed , the DCBX Co ntrol

state machine uses the following mechanisms:

•  somethingChangedLocal – this is an indic a tion from t he DCBX sta te m achine to

the LLDP mo dule tha t there is a new DC BX TLV to transmit.

•  somethingChangedRemote – this is an ind ica tion from the LLDP mo dule to the

DCBX Control stat e m achine that there is new information from the pee r (such a s

new DCBX TLV or da ta has exp ired ).

•  DCBXFeatureUpdate – the DCBX Co ntrol sta te m ac hine p rovides this indica tion to

the DCB Fea ture stat e ma c hines a fter it ha s rec eived the

some thingCha nged Remo te indica tion.

•  The SeqNo, DCBXFeatureUpdate and Rc vdAc kNo va riab les a re visible to the DCB

Feature state machines.

Figure 8 show s the o pe ration o f the DCBX Co ntrol sta te m achine. Note tha t the d iagram

is defined using an infinite loo p m od el (suc h as no wa iting). Imp leme nta tions might use

event wa iting me chanisms as long as the function o f the sta te m ac hine is p reserved.

A few notes c onc erning the no ta tions used in Figure 8:

•  DCBX Co ntrol TLV fields and sta te variab les a re used d irec tly suc h as Seq No)

•  Variab les from the Fea ture sta te m achines a re ide ntified b y pre-pend ing Fea ture

to the va riab le: For examp le, Fea ture.Sync d refers to a va riab le ca lled Sync d

from a Fea ture state ma c hine.

17

•  TLV field s receive d from t he p ee r a re iden tified a s: Rx.< variab le> - i.e . ‘Rx.SeqNo.

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 18/29

 

DCBX Base Protoc ol Rev 1.0

Figure 8 - DCBX Control State Mac hine Diag ram

Comm enta ry on the DCBX Control state m ac hine d iagram b y referenc e label (Dx ):

•  UpdateDCBXTLV: “C ap ture TLV” te rm imp lies inc lusion o f fea ture TLV to b e

indicated to LLDP for transmission, if the feature is advertised.

•  Pee rNotAdvertiseDCBX If the DCBX TLV from the pee r has expired , then the loc a l

side resets simila r to a link up . This is a d ifferent c ase tha n a n a c tua l link dow n,

which wo uld cause this state ma c hine to exit.

•  D13: The p ee r has sent a Co ntrol TLV with a new seq uenc e num ber. Send a ne w

Control TLV with an up da ted Ac kNo field . 

SeqNo = 0;AckNo = 0;

RcvdAckNo = 0;OperVersion =MaxVersion;

Link up

LinkUp

Do Nothing;

DWait

UCT SeqNo == RcvdAckNo &&Any Feature !Syncd SeqNo++;

somethingChangedLocal = TRUE;Capture all DCBX Feature TLVs

For all Features { FeatureSyncd = FeatureSyncd || !FeatureAdvertise};

UpdateDCBXTLV

SeqNo = 0;AckNo = 0;

RcvdAckNo = 0;OperVersion = MaxVersion;

DCBXFeatureUpdate = TRUE;

PeerNotAdvertiseDCBX(SeqNo != RcvdAckNo || All Features Syncd) &&somethingChangedRemote && NoDCBXTLVReceived

OperVersion =min(Rx.MaxVersion, MaxVersion);somethingChangedLocal = TRUE;

UpdateOperVersion

(SeqNo != RcvdAckNo || All Features Syncd) &&somethingChangedRemote &&!NoDCBXTLVReceived &&OperVersion != min(Rx.MaxVersion, MaxVersion)

RcvdAckNo = Rx.AckNo;DCBXFeatureUpdate =TRUE;

ProcessPeerTLV

(SeqNo != RcvdAckNo || All Features Syncd) &&somethingChangedRemote &&!NoDCBXTLVReceived &&OperVersion == min(Rx.MaxVersion, MaxVersion) &&OperVersion == Rx.OperVersion

AckNo = Rx.SeqNo;somethingChangedLocal=TRUE;

AckPeer

AckNo != Rx.SeqNoAckNo == Rx.SeqNo

UCT

UCT

UCT

UCT

18

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 19/29

 

DCBX Base Protoc ol Rev 1.0

2.4.3  DCB Fea ture State MachineThis sec tion defines the o perat ion of the DCB Fea ture sta te mac hine. The c onfigura tion

of ea c h DCB fea ture is ma nag ed by tha t fea ture’ s DCB Fea ture state ma c hine. All DCB

Fea ture stat e m ac hines op erate in the sam e m anner.

2.4.3.1  DCB Feature TLVFigure 9 shows the c om mo n TLV header struc ture used for a ll DCB fea ture sub -TLV’s.

Fea ture spec ific TLV pa rame ters a re p re-pend ed with this hea der.

16 bits

Type Length

Max_VersionOper_Version

EN

ER

W Reserved Sub_Type

EN=EnabledER = ErrorW=Willing

SIZE=6 Octets  

Figure 9 – DCB Fea ture TLV Header Definition (DCBX_tlv_header)

Figure 10 shows a g eneric DCB Fea ture TLV struc ture. The d eta ils of eac h fea ture spec ific

pa ramete r struc ture a re d efined in the up c om ing DCB Fea ture sec tions.

Figure 10 – Generic DCB Fea ture TLV

The follow ing tab le lists the fields in the DC B Fea ture TLVs tha t a re used to define the

op eration of the DCB Fea ture state ma c hine.

Tab le 3 DCB Fea ture TLV heade r field d efinitions

Field Typ e Range Description

Type Integ er 2..127 Type c od e of the DCB Fea ture.

Follow ing is a list o f define d

types:

1 – DCBX Co ntro l (not a

feature)

2 – Priority Groups

19

struct PROTCOL_feature _tlv {struct DCBX_tlv_header h;struct DCBX_feature_cfg desired_cfg;

};

SIZE = 6 + sizeof(struct DCBX_feature _cfg)

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 20/29

 

DCBX Base Protoc ol Rev 1.0

20

3 – Priority-based Flow Co ntro l

Leng th Integer N/ A Length of the DCB Fea ture

sub -TLV pa yload (not includ ing

the Type a nd Length fields).

The leng th is less tha n the

ma ximum possible va lue (511)as this TLV is pac kag ed inside

the DCBX TLV a long with o ther

fea ture TLV’ s.

Oper

Version

Integ er 0 .. 255 Op erat ing version of the

fea ture. The system a d justs to

op erate at the highest version

supp orted b y both link

partners.

Ma x

Version

Integer 0 .. 255 Highest fea ture version

supp orted by the system .

Version numb ers sta rt at zero.

The fea ture must be bac kwardc om pa tib le for all previous

versions.

Ena b le Boo lea n Truth

value

Loc a lly ad ministered

pa ram eter that indica tes

whe ther the DCB feature is

enab led or not.

Willing Boo lea n Truth

value

Loc a lly ad ministered

pa ram eter that indica tes

whether this feature ac ce pts

its c onfigurat ion from the p ee r

or no t. When set to TRUE, the

system uses the DesiredCfgsupp lied by a !Willing p ee r as

the Ope rCfg. A system set to

Willing m ust be c ap able of

ac ce pting a ny valid

DesiredCfg for the feature

from the pe er. If both loc a l

and rem ote system s have the

same va lue for the Willing flag ,

then the loca l Desired Cfg is

used a nd the op erationa l

outcome of the excha nge is

de termined b y the

Comp atible method o f thefeature.

Error Boolea n Truth

value

Ind ic ate s that an error has

oc c urred during the

c onfiguration e xcha nge with

the p eer. Error is a lso set to

TRUE when the Co mp atible

me thod for the fea ture fa ils.

The Fea ture turns Op erMode

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 21/29

 

DCBX Base Protoc ol Rev 1.0

to FALSE if eithe r the loc a l or

rem ote Error flag is set to TRUE.

Dup lic a te TLV’s for the same

Type/ Sub Type o r the DCBX

Control TLV a lso c auses Error to

be set to TRUE.

System e rrors a re not reflec ted

on this Error Flag .

Sub Type Inte ger 0..255 Some Fea ture TLVs ma y define

subt ypes that are spe c ific to

tha t feat ure. When subt ypes

are not d efined by a spe c ific

fea ture, sub type field shou ld

be set to zero

In ge neral, the Type a nd

SubType , ta ken tog ethe r,identify a unique fea ture tha t is

mana ged by an instance of

the DCB Fea ture Sta te

Machine.

NOTE: A node does not have to support 8 classes of service in order to be considered

capable of accepting any valid DesiredCfg. It may fulfill the requirements of the

configuration by combining priorities or priority groups requiring similar service (e.g. PFC

configurat ion and b and width ma nag em ent) into a traffic c lass. Deta ils ab out dec ision to

com bine va rious p riorities in single traffic c lass is out of sc op e of this doc ume nt.

NOTE: The TLV a lwa ys c a rries the DesiredCfg . A system uses its own Desired Cfg , the

peer’s DesiredCfg (PeerCfg) and the other bits (willing, error, etc.) to derive its OperCfg.

When bo th sides adve rtise, they should b e a ble to de rive the sam e O pe rCfg .

2.4.3.2  DCB Fea ture State VariablesThe fo llow ing ta b le lists the a dd itiona l sta te va riab les used to m a intain ea ch DCB Fea ture

state ma c hine.

Tab le 4 DCBX state va riab le definitions for the DCB Fea ture state m ac hine

21

State Variab le Typ e Rang e Desc ription

Ad vertise Boolean Truth

value

Loc a lly ad ministered

pa ram eter that indica tes

whether this fea ture isexchang ed in the DCBX

TLV. When Adve rtise is

Fa lse, received TLVs for this

feature are ignored.

Op erMod e Boo lean Truth

value

Op erational stat e of the

feature. 

Fea tureSeq No Integer 0 ..

(232 –1)

When Sync d is Fa lse, this

indica tes the va lue tha t

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 22/29

 

DCBX Base Protoc ol Rev 1.0

Seq No must bec ome e qua l

to b efore Syncd c an

be c om e True.

Sync d Boo lea n Truth

value

Indic ate s whe ther the

c urrent Desired Cfg has

be en rec eived b y the pe er.Op erCfg Struc ture NA The ac tual op erating

c onfigurat ion of the

feature. Derived from

either Desired Cfg or

PeerCfg.

Pee rCfg Structu re NA The Desired Cfg of the pee r

 – as rec eived in a DCBX TLV

from the p eer.

DesiredCfg Struc ture NA This rep resents the loc a lly

c onfigured va lues of the

feature specific

configuration.PeerWilling Boolea n Truth

value

The Willing sta te of the p ee r

 – as rec eived in a DCBX TLV

from the p eer.

LocalParamete

rChange

Boo lea n Truth

Value

Indic ate s that a

configurable DCB Feature

TLV field or sta te va riab le

has be en mo dified on the

loc a l system .

2.4.3.3  DCB Fea ture State MachineIn a dd ition to the TLV fields and sta te va riab les p rev iously desc ribed , the DCB Fea ture

state machine uses the following mechanisms:

•  DCBXFeatureUpdate – this rep resents an ind ica tion from the DCBX Co ntrol sta te

ma c hine tha t the re is new informa tion from the pee r (suc h as a new DCBX TLV or

da ta ha s expired ).

•  The Syncd va riab le from ea c h DCB Fea ture sta te m ac hine is visible to the DCBX

Co ntrol sta te ma chine.

•  Eac h feature ha s a method c alled Compatible which is used to c om pa re the

Desired Cfg and Pee rCfg.

•  Eac h feature retrieves LocalParams from non-volatile sto rage o r sets them to

de fault va lues at link up.

•  LocalParameterChange indica tes tha t a c onfigurab le DCB Fea ture TLV field or

sta te va riable ha s been mod ified on the loca l system .•  The SeqNo, DCBXFeatureUpdate and Rc vdAc kNo are control sta te ma c hine

va riab les tha t a re visible to the DC B Fea ture sta te m achines.

•  Eac h feature ha s a method c alled SetCfg which ac c ep ts two param ete rs. This

me thod is ca lled to set op erational p a ram ete rs for the g iven fea ture. First

pa ram ete r to this me thod provides configuration pa ram ete rs to b e used by the

me thod . Sec ond pa ram ete r is a Boo lean.

22

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 23/29

 

DCBX Base Protoc ol Rev 1.0

Figure 11 show s the o perat ion of the DCB Fea ture sta te m achine. Note tha t the figure is

de fined using an infinite loop model (such a s no w aiting). Imp lementa tions might use

event wa iting me chanisms as long a s the func tion of the sta te m ac hine is p reserved.

A few notes c oncerning the no ta tions used in Figure 11:

•  TLV fields and sta te va riab les a re used d irec tly (e.g. Seq No)

23

•  TLV fields received from the p ee r a re ide ntified as: Rx.<variab le> - suc h as

Rx.SeqNo.

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 24/29

 

DCBX Base Protoc ol Rev 1.0

!(LocalPrarmeterChange && Syncd) &&Advertise && DCBFeatureUpdate &&Rx.FeaturePresent() &&

(Syncd ||(RcvdAckNo== FeatureSeqNo))&&OperVersion ==

min(Rx.FeatureMaxVersion, MaxVersion)&&OperVersion != Rx.FeatureOperVersion

Syncd = !(Advertise || LocalParamsAdvertise);Enabled = LocalParamsEnabled;

Advertise = LocalParamsAdvertise;Willing = LocalParamsWilling;DesiredCfg = LocalParamsCfg;

FeatureSeqNo= SeqNo + 1;LocalParameterChange=FALSE;

SetLocalParameters

OperCfg = SetCfg(DesiredCfg, Enabled);OperMode = Enabled;

Error = FALSE;

NoAdvertise

Do Nothing;

FWait

UCT

LocalPrarmeterChange && Syncd

!(LocalPrarmeterChange && Syncd)&& Advertise && DCBFeatureUpdate &&NoDCBXTLVReceived

UCT

OperCfg= SetCfg(DesiredCfg, FALSE);

OperMode = FALSE;Syncd = FALSE;

FeatureSeqNo = SeqNo + 1;

Error = TRUE;

PeerNotAdvertiseDCBX

UCT

!(LocalPrarmeterChange && Syncd)

&& !Advertise

OperCfg= SetCfg(DesiredCfg, FALSE);OperMode = FALSE;

Syncd= TRUE;Error = TRUE;

PeerNotAdvertiseFeature

!(LocalPrarmeterChange && Syncd)

&& Advertise && DCBFeatureUpdate &&

!NoDCBXTLVReceived &&!Rx.FeaturePresent(

 

)

UCT

OperVersion =Min(Rx.FeatureMaxVersion, MaxVersion);

Syncd = FALSE;

FeatureSeqNo = SeqNo + 1;

UpdateOperVersion

!(LocalPrarmeterChange && Syncd)&& Advertise && DCBXFeatureUpdate &&

Rx.FeaturePresent() &&(Syncd ||(RcvdAckNo == FeatureSeqNo)) &&OperVersion !=

min(Rx.FeatureMaxVersion, MaxVersion)

UCT

Syncd = TRUE;

PeerUpdateOperVersion

UCT

!(LocalPrarmeterChange && Syncd)

&& Advertise && DCBXFeatureUpdate &&Rx.FeaturePresent() &&(Syncd ||(RcvdAckNo == FeatureSeqNo)) &&

OperVersion ==min(Rx.FeatureMaxVersion, MaxVersion) &&OperVersion == Rx.FeatureOperVersion

PeerCfg=Rx.FeatureCfg;PeerWilling=Rx.FeatureWilling;

GetPeerCfg

OperCfg = SetCfg(DesiredCfg, FALSE);OperMode = FALSE;

Syncd = !Error;Error = FALSE;

FeatureDisabled

OperCfg = SetCfg(PeerCfg, !RxError);

OperMode = !Rx.Error;Syncd = !Error;

Error = FALSE;

UsePeerCfg

OperCfg = SetCfg(DesiredCfg, !RX.Error);OperMode = !Rx.Error;

Syncd = !Error;

Error = FALSE;

UseLocalCfg

OperCfg = SetCfg(DesiredCfg, FALSE);

OperMode = FALSE;Syncd= Error;Error = TRUE;

CfgNotCompatible

!(Enabled &&Rx.FeatureEnabled)

FeatureSeqNo=SeqNo+1;

ErrorChangeUCT

!Syncd

!Syncd

!Syncd

!Syncd

Syncd

Syncd

Syncd

Syncd

Enabled && Rx.FeatureEnabled &&

Willing && !PeerWilling

Enabled && Rx.FeatureEnabled &&

((!Willing && PeerWilling)|| ((Willing == PeerWilling)

&& Compatible(DesiredCfg, PeerCfg)))

Enabled && Rx.FeatureEnabled &&Willing == PeerWilling

&& !Compatible(DesiredCfg, PeerCfg)

 

OperVersion = MaxVersion;OperMode = FALSE;

LocalParams = Default;

Error = False;

LinkUp

UCT

Link up

!(LocalPrarmeterChange && Syncd) &&Advertise && DCBFeatureUpdate &&Rx.FeaturePresent() &&

(Syncd ||(RcvdAckNo== FeatureSeqNo))&&OperVersion ==

min(Rx.FeatureMaxVersion, MaxVersion)&&OperVersion != Rx.FeatureOperVersion

Syncd = !(Advertise || LocalParamsAdvertise);Enabled = LocalParamsEnabled;

Advertise = LocalParamsAdvertise;Willing = LocalParamsWilling;DesiredCfg = LocalParamsCfg;

FeatureSeqNo= SeqNo + 1;LocalParameterChange=FALSE;

SetLocalParameters

Syncd = !(Advertise || LocalParamsAdvertise);Enabled = LocalParamsEnabled;

Advertise = LocalParamsAdvertise;Willing = LocalParamsWilling;DesiredCfg = LocalParamsCfg;

FeatureSeqNo= SeqNo + 1;LocalParameterChange=FALSE;

SetLocalParameters

OperCfg = SetCfg(DesiredCfg, Enabled);OperMode = Enabled;

Error = FALSE;

NoAdvertise

OperCfg = SetCfg(DesiredCfg, Enabled);OperMode = Enabled;

Error = FALSE;

NoAdvertise

Do Nothing;

FWait

Do Nothing;

FWait

UCT

LocalPrarmeterChange && Syncd

!(LocalPrarmeterChange && Syncd)&& Advertise && DCBFeatureUpdate &&NoDCBXTLVReceived

UCT

OperCfg= SetCfg(DesiredCfg, FALSE);

OperMode = FALSE;Syncd = FALSE;

FeatureSeqNo = SeqNo + 1;

Error = TRUE;

PeerNotAdvertiseDCBX

OperCfg= SetCfg(DesiredCfg, FALSE);

OperMode = FALSE;Syncd = FALSE;

FeatureSeqNo = SeqNo + 1;

Error = TRUE;

PeerNotAdvertiseDCBX

UCT

!(LocalPrarmeterChange && Syncd)

&& !Advertise

OperCfg= SetCfg(DesiredCfg, FALSE);OperMode = FALSE;

Syncd= TRUE;Error = TRUE;

PeerNotAdvertiseFeature

OperCfg= SetCfg(DesiredCfg, FALSE);OperMode = FALSE;

Syncd= TRUE;Error = TRUE;

PeerNotAdvertiseFeature

!(LocalPrarmeterChange && Syncd)

&& Advertise && DCBFeatureUpdate &&

!NoDCBXTLVReceived &&!Rx.FeaturePresent(

 

)

UCT

OperVersion =Min(Rx.FeatureMaxVersion, MaxVersion);

Syncd = FALSE;

FeatureSeqNo = SeqNo + 1;

UpdateOperVersion

OperVersion =Min(Rx.FeatureMaxVersion, MaxVersion);

Syncd = FALSE;

FeatureSeqNo = SeqNo + 1;

UpdateOperVersion

!(LocalPrarmeterChange && Syncd)&& Advertise && DCBXFeatureUpdate &&

Rx.FeaturePresent() &&(Syncd ||(RcvdAckNo == FeatureSeqNo)) &&OperVersion !=

min(Rx.FeatureMaxVersion, MaxVersion)

UCT

Syncd = TRUE;

PeerUpdateOperVersion

Syncd = TRUE;

PeerUpdateOperVersion

UCT

!(LocalPrarmeterChange && Syncd)

&& Advertise && DCBXFeatureUpdate &&Rx.FeaturePresent() &&(Syncd ||(RcvdAckNo == FeatureSeqNo)) &&

OperVersion ==min(Rx.FeatureMaxVersion, MaxVersion) &&OperVersion == Rx.FeatureOperVersion

PeerCfg=Rx.FeatureCfg;PeerWilling=Rx.FeatureWilling;

GetPeerCfg

OperCfg = SetCfg(DesiredCfg, FALSE);OperMode = FALSE;

Syncd = !Error;Error = FALSE;

FeatureDisabled

OperCfg = SetCfg(DesiredCfg, FALSE);OperMode = FALSE;

Syncd = !Error;Error = FALSE;

FeatureDisabled

OperCfg = SetCfg(PeerCfg, !RxError);

OperMode = !Rx.Error;Syncd = !Error;

Error = FALSE;

UsePeerCfg

OperCfg = SetCfg(PeerCfg, !RxError);

OperMode = !Rx.Error;Syncd = !Error;

Error = FALSE;

UsePeerCfg

OperCfg = SetCfg(DesiredCfg, !RX.Error);OperMode = !Rx.Error;

Syncd = !Error;

Error = FALSE;

UseLocalCfg

OperCfg = SetCfg(DesiredCfg, !RX.Error);OperMode = !Rx.Error;

Syncd = !Error;

Error = FALSE;

UseLocalCfg

OperCfg = SetCfg(DesiredCfg, FALSE);

OperMode = FALSE;Syncd= Error;Error = TRUE;

CfgNotCompatible

OperCfg = SetCfg(DesiredCfg, FALSE);

OperMode = FALSE;Syncd= Error;Error = TRUE;

CfgNotCompatible

!(Enabled &&Rx.FeatureEnabled)

FeatureSeqNo=SeqNo+1;

ErrorChange

FeatureSeqNo=SeqNo+1;

ErrorChangeUCT

!Syncd

!Syncd

!Syncd

!Syncd

Syncd

Syncd

Syncd

Syncd

Enabled && Rx.FeatureEnabled &&

Willing && !PeerWilling

Enabled && Rx.FeatureEnabled &&

((!Willing && PeerWilling)|| ((Willing == PeerWilling)

&& Compatible(DesiredCfg, PeerCfg)))

Enabled && Rx.FeatureEnabled &&Willing == PeerWilling

&& !Compatible(DesiredCfg, PeerCfg)

 

OperVersion = MaxVersion;OperMode = FALSE;

LocalParams = Default;

Error = False;

LinkUp

 

OperVersion = MaxVersion;OperMode = FALSE;

LocalParams = Default;

Error = False;

LinkUp

UCT

Link up

Figure 11 - DCB Fea ture State Machine

24

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 25/29

 

DCBX Base Protoc ol Rev 1.0

Comm enta ry on the DCB Fea ture state ma chine by referenc e label:

•  SetLoc alParam ete rs: If multiple fea tures expe rience a c hang e a nd set Syncd to

FALSE, it is possible tha t the first c ha nge t riggers the Co ntrol sta te m achine to sendan LLDP me ssage. Ad d itiona l pend ing changes do no t ge t sent unt il the first

c hang e has be en ac knowledg ed (per D2 of Control state ma c hine). In other

wo rds, the Seq No’s ratc het up a nd a re a cknowledg ed one va lue at a time. For

exam ple, the Ac kNo from the p ee r c ould b e 9, the loc a l Seq No is 10, and

multiple fea tures could b e pend ing with Fea tureSeq No a t 11. A PDU with Seq No

11 is not sent until an Ac kNo o f 10 is rec eived .

•  NoAd vertise (any p lac e Op erCfg is set) – The hardw are c onfigurat ion for the

fea ture ta kes plac e a t the p oint Op erCfg is set a nd the O pe rMod e is set. The

imp leme ntation might keep trac k of whether or not the Op erCfg a nd O pe rMod e

have a ctua lly cha nged and req uire an upd ate to the hardwa re c onfiguration.

•  Cfg NotC om patible – Error is exp lic itly set to TRUE here to ind ica te tha t the two

pe ers have a DCB c onfigurat ion tha t is not c om pa tible.•  SetC fg: When sec ond parame ter (Boo lean) is set to TRUE, then c onfigura tion

pa ssed by first p a ram ete r is ap plied to Op erational va lues. When sec ond

pa ram ete r is “ FALSE” , then b eha vior is fea ture d ep end ent and will be de fined in

the relevant sec tions for eac h fea ture.

2.4.4  Manager NotificationsImp lem enta tions might c hoo se to g ene rate notific at ions whe n ce rta in events oc c ur.

These typ es of events c ould include:

•  Conditions indicating possible configuration error –for example, when the

Com pa tible m ethod fails.

•  Co nditions whe re the fea ture is not p resent on the p ee r. This c an hap pe n whe n ade vice do es not supp ort a fea ture (not really a n error) or if the fea ture’ s Advertise

flag is off (p ossible c onfigu ra tion e rror).

•  The p ee r stop s respond ing – as evidenc ed by an LLDP timeout e ven t (de livered

via the some thingCha nged Remo te indica tion).

•  Eac h t ime the Error flag is set to TRUE.

25

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 26/29

 

DCBX Base Protoc ol Rev 1.0

3. DCB FeaturesThis sec tion d efine s the DCB Fea ture p a rameters and sta tistic s.

3.1  Priority Group FeatureThis sec tion d escribes the deta ils of t he Priority Group fea ture. The Priority Groups

Spec ifica tion p rovides c onfigura tion ta bles as well as a sched uling algo rithm for

ma naging b andw idth for various tra ffic c lasses on a c onve rge d link.

NOTE: Althoug h it is expec ted that DCB device s will eventua lly p rovide sched uling

functiona lity a s spe c ified in the Priority Group spe c ifica tion (or b ette r), leg ac y

imp leme nta tions exist. To enc ourage wider ad op tion, this Priority Group Fea ture a llow s

leg ac y imp leme ntations to m atc h sche duler c ap ab ilit ies to the be havior imp lied by

the Priority Group spec ifica tion a s c lose as possible. All DCBX imp leme nta tions must b e

c apab le of a dvertising the Priority Group TLV.

3.1.1  Priority Group ParametersThe follow ing t ab le lists the Priority Group parame ters.

Tab le 5 - Priority Group Paramete rs

Param eter Syntax Rang e Scop e Desc ription

NumTCsSup

ported

Integ er 0..7 Excha nged Numb er of TCs

supp orted b y device.

Number of Priority

Groups suppo rted by a

device c an not be

more than numbe r ofTCs sup ported .

Priority

Group (PG)

Allocation

Tab le

PG ID

(index)

Integ er 0..15 Excha nge d Queue band width

group

PG

Percentage

Intege r 0..100 Excha nged Percentage of link

bandwidth

Priority

Allocation

Tab le

Priority

(index)

Intege r 0..7 Excha nged

PG ID Integer 0..15 Excha nged PG to wh ich the p riority

belongs

3.1.2  Priority Group TLVFigure 12 shows Priority Group pa rameters struc ture tha t is used in the Priority Group

Feature TLV.

26

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 27/29

 

DCBX Base Protoc ol Rev 1.0

Figure 12 - Priority Group Paramete rs Structure

3.1.3  Priority Group Parameter Comp arisonTab le 6 lists how the Priority Group p arame ters of the loc a l and pee r nodes a re

co mp ared to d etermine if they matc h or not.

Tab le 6 - Priority Groups Paramete r Comp arison

Parameter Comparison

Priority Group (PG) A lloc a tion

PG ID (index) Does not need to ma tch

PG Perce ntag e Does not need to ma tch

Priority Allocation

Priority (index) Does not need to ma tc hPG ID Does not need to ma tch

Numbe r of TCs Supp orted Does not need to ma tch

3.1.4  Feature Spec ific Behavior for Priority Group TLVPriority group has spec ific be havior defined for SetC fg m ethod in fea ture state ma c hine.

Based on sec ond pa ram ete r to SetC fg func tion, follow ing ac tions shall be ta ken for

Priority Groups feature:

27

struct dcbx_pg_cfg {u8 pgid_0 :4; /* PGID of priority 0 */u8 pgid_1 :4; /* PGID of priority 1 */u8 pgid_2 :4; /* PGID of priority 2 */u8 pgid_3 :4; /* PGID of priority 3 */u8 pgid_4 :4; /* PGID of priority 4 */

u8 pgid_5 :4; /* PGID of priority 5 */u8 pgid_6 :4; /* PGID of priority 6 */u8 pgid_7 :4; /* PGID of priority 7 */u8 pg_percentage[8]; /* Index is PGID */u8 num_tcs_supported;

}SIZE = 13 octets

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 28/29

 

DCBX Base Protoc ol Rev 1.0

-  When Boo lean is set to TRUE, configuration passed by first p arame ter to the

me thod shall be app lied to o pe rat ional values. Fea ture shall be “ Enab led ” .

-  When sec ond parame ter (Boo lean) is set to FALSE, loc a l co nfiguration

(Desired Cfg) shall be ap plied to op erational va lues and fea ture sha ll be

“ Enabled” .

3.2  Priority-based Flow Control (PFC) FeatureThis sec tion d escribes the deta ils of the Priority-based Flow Co ntrol fea ture. This fea ture is

imp ortant to provide “ no-drop” pac ket de livery for ce rta in traffic c lasses while

ma intaining existing LAN beha vior for othe r traffic c lasses on c onverge d link.

NOTE: Leg ac y imp lementa tions tha t do no t support Priority-based Flow C ont rol can signa l

this by set ting "Ena b le" to FALSE. This ef fec tively d isab les the Priority-ba sed Flow Co ntrol

fea ture at w hich time the p ee rs fall bac k to configured 802.3x PAUSE beha vior. All DCBX

impleme nta tions must be c apab le of a dvertising the Priority-based Flow C ont rol TLV.

3.2.1  Priority-based Flow Control ParametersTab le 7 lists the Priority-ba sed Flow Co ntrol p aram eters.

Tab le 7 Priority-b ased Flow Control

Paramete r Syntax Rang

e

Scope Description

NumTCPFCS

upported

Intege r 1..8 Excha nged Numb er of TCs tha t

can simultane ously

support PFC.

PFC Co nfig Tab le

Priority

(index)

Integ er 0..7 Excha nged Priority va lue as

de fined 3-bit field b y

802.1QAdmin

mode

Intege r 0..1 Excha nged Administrative PFC

mode.

0: Disab led

1: Enabled

PFC Enabled means

that flow c ontrol in

both d irec tions (Rx

and Tx) is ena b led .

3.2.2  Priority-based Flow Control TLV

Figure 13 shows the Priority-based Flow Control parameters structure that is used in thePriority-based Flow Co ntrol Fea ture TLV.

struc t dcbx_pfc _c fg {

u8 pfc _ena ble; / * bitmap of priorities with PFC ena b led */ 

u8 num_tcs_supported ;

28

}

5/12/2018 Best_DCBX Protocol Detailed-V1.0 - slidepdf.com

http://slidepdf.com/reader/full/bestdcbx-protocol-detailed-v10 29/29

 

DCBX Base Protoc ol Rev 1.0

Figure 13 - Priority-b ased Flow Control Paramete rs Structure

3.2.3  Priority-based Flow Control Parameter ComparisonLoc al and rem ote p aram ete r c om pa rison for Adm in Mod e is done as follow s:

foreach (user_priority){

if ((localAdminMode == Disabled == remoteAdminMode)||

(localAdminMode == Enabled == remoteAdminMode)){

Comparison successful – configuration match …

}else{

Comparison fails – configuration mismatch …break

}}

3.2.4  Fea ture Spec ific behavior for PFC TLVPFC TLV has spec ific beha vior defined for SetC fg m ethod in fea ture sta te m achine.

Based on sec ond pa ram ete r to SetC fg func tion, follow ing ac tions shall be ta ken for

Priority Groups feature:

-  When Boolea n is set to TRUE, co nfiguration passed by first pa rameter to the

me thod shall be app lied to o pe rat ional values. Fea ture shall be “ Enab led ” .-  When sec ond parame ter (Boo lean) is set t o FALSE then feat ure sha ll be

“Disabled”.

29