ON THIS PAGE
Example: Configuring DCBX Application Protocol TLV Exchange
Data Center Bridging Capability Exchange protocol (DCBX) discovers the data center bridging (DCB) capabilities of connected peers by exchanging application configuration information. DCBX detects feature misconfiguration and mismatches and can configure DCB on peers. DCBX is an extension of the Link Layer Discovery Protocol (LLDP). LLDP must remain enabled on every interface on which you want to use DCBX.
LLDP and DCBX are enabled by default on all interfaces.
The switch supports DCBX application protocol exchange for Layer 2 and Layer 4 applications such as the Internet Small Computer System Interface (iSCSI). You specify applications by EtherType (for Layer 2 applications) or by the destination port and protocol (for Layer 4 applications; the protocol can be either TCP or UDP).
The switch handles Fibre Channel over Ethernet (FCoE) application protocol exchange differently than other protocols in some cases:
If FCoE is the only application for which you want to enable DCBX application protocol TLV exchange on an interface, you do not have to explicitly configure the FCoE application or an application map. By default, the switch exchanges FCoE application protocol TLVs on all interfaces that carry FCoE traffic (traffic mapped to the
fcoe
forwarding class) and have priority-based flow control (PFC) enabled on the FCoE priority (the FCoE IEEE 802.1p code point). The default priority mapping for the FCoE application is IEEE 802.1p code point 011 (the defaultfcoe
forwarding class code point).If you want an interface to use DCBX to exchange application protocol TLVs for any other applications in addition to FCoE, you must configure the applications (including FCoE), define an application map (including FCoE), and apply the application map to the interface. If you apply an application map to an interface, you must explicitly configure the FCoE application, or the interface does not exchange FCoE application protocol TLVs.
This example shows how to configure interfaces to exchange both Layer 2 and Layer 4 applications by configuring one interface to exchange iSCSI and FCoE application protocol information and configuring another interface to exchange iSCSI and Precision Time Protocol (PTP) application protocol information.
Requirements
This example uses the following hardware and software components:
Juniper Networks QFX Series device
Junos OS Release 12.1 or later for the QFX Series
Overview
The switch supports DCBX application protocol exchange for:
Layer 2 applications, defined by EtherType
Layer 4 applications, defined by destination port and protocol
DCBX also advertises PFC and enhanced transmission selection (ETS) information. See Configuring DCBX Autonegotiation for how DCBX negotiates and advertises configuration information for these features and for the applications.
DCBX is configured on a per-interface basis for each supported feature or application. For applications that you want to enable for DCBX application protocol exchange, you must:
Define the application name and configure the EtherType or the destination port and protocol (TCP or UDP) of the application. Use the EtherType for Layer 2 applications, and use the destination port and protocol for Layer 4 protocols.
Map the application to an IEEE 802.1p code point in an application map.
Add the application map to DCBX interface.
In addition, for all applications (including FCoE, even when you do not use an application map), you either must create an IEEE 802.1p classifier and apply it to the appropriate ingress interfaces or use the default classifier. A classifier maps the code points of incoming traffic to a forwarding class and a loss priority so that ingress traffic is assigned to the correct class of service (CoS). The forwarding class determines the output queue on the egress interface.
If you do not create classifiers, trunk and tagged-access ports use the unicast IEEE 802.1 default trusted classifier. Table 1 shows the default mapping of IEEE 802.1 code-point values to unicast forwarding classes and loss priorities for ports in trunk mode or tagged-access mode. Table 2 shows the default untrusted classifier IEEE 802.1 code-point values to unicast forwarding class mapping for ports in access mode.
Code Point |
Forwarding Class |
Loss Priority |
---|---|---|
be (000) |
best-effort |
low |
be1 (001) |
best-effort |
low |
ef (010) |
best-effort |
low |
ef1 (011) |
fcoe |
low |
af11 (100) |
no-loss |
low |
af12 (101) |
best-effort |
low |
nc1 (110) |
network-control |
low |
nc2 (111) |
network-control |
low |
Code Point |
Forwarding Class |
Loss Priority |
---|---|---|
000 |
best-effort |
low |
001 |
best-effort |
low |
010 |
best-effort |
low |
011 |
best-effort |
low |
100 |
best-effort |
low |
101 |
best-effort |
low |
110 |
best-effort |
low |
111 |
best-effort |
low |
Topology
This example shows how to configure DCBX application protocol exchange for three protocols (iSCSI, PTP, and FCoE) on two interfaces. One interface exchanges iSCSI and FCoE application protocol information, and the other interface exchanges iSCSI and PTP application protocol information.
You must map FCoE traffic to the interfaces on which you want to forward FCoE traffic. You must also enable PFC on the FCoE interfaces and create an ingress classifier for FCoE traffic, or else use the default classifier.
Table 3 shows the configuration components for this example.
Component |
Settings |
---|---|
Hardware |
QFX Series device |
LLDP |
Enabled by default on Ethernet interfaces |
DCBX |
Enabled by default on Ethernet interfaces |
iSCSI application (Layer 4) |
Application name— protocol— destination-port— code-points— |
PTP application (Layer 2) |
Application name— ether-type— code-points— |
FCoE application (Layer 2) |
Application name— ether-type— code-points— Note:
You explicitly configure the FCoE application because you are applying an application map to the interface. When you apply an application map to an interface, all applications must be explicitly configured and included in the application map. |
Application maps |
|
Interfaces |
|
PFC congestion notification profile for FCoE application exchange |
|
Behavior aggregate classifiers (map forwarding classes to incoming packets by the packet’s IEEE 802.1 code point) |
|
This example does not include scheduling (bandwidth allocation) configuration or lossless configuration for the iSCSI forwarding class.
Configuration
CLI Quick Configuration
To quickly configure DCBX application protocol exchange, copy the following commands, paste them in a text file, remove line breaks, change variables and details to match your network configuration, and then copy and paste the commands into the CLI at the [edit]
hierarchy level.
set applications application iSCSI protocol tcp destination-port 3260 set applications application FCoE ether-type 0x8906 set applications application PTP ether-type 0x88F7 set policy-options application-maps dcbx-iscsi-fcoe-app-map application iSCSI code-points 111 set policy-options application-maps dcbx-iscsi-fcoe-app-map application FCoE code-points 011 set policy-options application-maps dcbx-iscsi-ptp-app-map application iSCSI code-points 111 set policy-options application-maps dcbx-iscsi-ptp-app-map application PTP code-points [001 101] set protocols dcbx interface xe-0/0/10 application-map dcbx-iscsi-fcoe-app-map set protocols dcbx interface xe-0/0/11 application-map dcbx-iscsi-ptp-app-map set class-of-service congestion-notification-profile fcoe-cnp input ieee-802.1 code-point 011 pfc set class-of-service interfaces xe-0/0/10 congestion-notification-profile fcoe-cnp set class-of-service classifiers ieee-802.1 fcoe-iscsi-cl1 import default forwarding-class fcoe loss-priority high code-points 011 set class-of-service classifiers ieee-802.1 fcoe-iscsi-cl1 import default forwarding-class network-control loss-priority high code-points 111 set class-of-service classifiers ieee-802.1 iscsi-ptp-cl2 import default forwarding-class network-control loss-priority low code-points 111 set class-of-service classifiers ieee-802.1 iscsi-ptp-cl2 import default forwarding-class best-effort loss-priority low code-points [001 101] set class-of-service interfaces xe-0/0/10 unit 0 classifiers ieee-802.1 fcoe-iscsi-cl1 set class-of-service interfaces xe-0/0/11 unit 0 classifiers ieee-802.1 iscsi-ptp-cl2
Configuring DCBX Application Protocol TLV Exchange
Step-by-Step Procedure
To define the applications, map the applications to IEEE 802.1p code points, apply the applications to interfaces, and create classifiers for DCBX application protocol exchange:
Define the iSCSI application by specifying its protocol and destination port, and define the FCoE and PTP applications by specifying their EtherTypes.
[edit applications] user@switch# set application iSCSI protocol tcp destination-port 3260 user@switch# set application FCoE ether-type 0x8906 user@switch# set application PTP ether-type 0x88F7
Define an application map that maps the iSCSI and FCoE applications to IEEE 802.1p code points.
[edit policy-options] user@switch# set application-maps dcbx-iscsi-fcoe-app-map application iSCSI code-points 111 user@switch# set application-maps dcbx-iscsi-fcoe-app-map application FCoE code-points 011
Define the application map that maps the iSCSI and PTP applications to IEEE 802.1p code points.
[edit policy-options] user@switch# set application-maps dcbx-iscsi-ptp-app-map application iSCSI code-points 111 user@switch# set application-maps dcbx-iscsi-ptp-app-map application PTP code-points [001 101]
Apply the iSCSI and FCoE application map to interface
xe-0/0/10
, and apply the iSCSI and PTP application map to interfacexe-0/0/11
.[edit protocols dcbx] user@switch# set interface xe-0/0/10 application-map dcbx-iscsi-fcoe-app-map user@switch# set interface xe-0/0/11 application-map dcbx-iscsi-ptp-app-map
Create the congestion notification profile to enable PFC on the FCoE code point (
011
), and apply the congestion notification profile to interfacexe-0/0/10
.[edit class-of-service] user@switch# set congestion-notification-profile fcoe-cnp input ieee-802.1 code-point 011 pfc user@switch# set interfaces xe-0/0/10 congestion-notification-profile fcoe-cnp
Configure the classifier to apply to the interface that exchanges iSCSI and FCoE application information.
[edit class-of-service classifiers] user@switch# set ieee-802.1 fcoe-iscsi-cl1 import default forwarding-class fcoe loss-priority high code-points 011 user@switch# set ieee-802.1 fcoe-iscsi-cl1 import default forwarding-class network-control loss-priority high code-points 111
Configure the classifier to apply to the interface that exchanges iSCSI and PTP application information.
[edit class-of-service classifiers] user@switch# set ieee-802.1 iscsi-ptp-cl2 import default forwarding-class network-control loss-priority low code-points 111 user@switch# set ieee-802.1 iscsi-ptp-cl2 import default forwarding-class best-effort loss-priority low code-points [001 101]
Apply the classifiers to the appropriate interfaces.
[edit class-of-service] user@switch# set interfaces xe-0/0/10 unit 0 classifiers ieee-802.1 fcoe-iscsi-cl1 user@switch# set interfaces xe-0/0/11 unit 0 classifiers ieee-802.1 iscsi-ptp-cl2
Verification
To verify that DCBX application protocol exchange configuration has been created and is operating properly, perform these tasks:
- Verifying the Application Configuration
- Verifying the Application Map Configuration
- Verifying DCBX Application Protocol Exchange Interface Configuration
- Verifying the PFC Configuration
- Verifying the Classifier Configuration
Verifying the Application Configuration
Purpose
Verify that DCBX applications have been configured.
Action
List the applications by using the configuration mode command show applications
:
user@switch# show applications application iSCSI { protocol tcp; destination-port 3260; } application fcoe { ether-type 0x8906; } application ptp { ether-type 0x88F7; }
Meaning
The show applications
configuration mode command lists all of the configured applications and either their protocol and destination port (Layer 4 applications) or their EtherType (Layer 2 applications). The command output shows that the iSCSI application is configured with the tcp
protocol and destination port 3260
, the FCoE application is configured with the EtherType 0x8906
, and that the PTP application is configured with the EtherType 0x88F7
.
Verifying the Application Map Configuration
Purpose
Verify that the application maps have been configured.
Action
List the application maps by using the configuration mode command show policy-options application-maps
:
user@switch# show policy-options application-maps dcbx-iscsi-fcoe-app-map { application iSCSI code-points 111; application FCoE code-points 011; } dcbx-iscsi-ptp-app-map { application iSCSI code-points 111; application PTP code-points [001 101]; }
Meaning
The show policy-options application-maps
configuration mode command lists all of the configured application maps and the applications that belong to each application map. The command output shows that there are two application maps, dcbx-iscsi-fcoe-app-map
and dcbx-iscsi-ptp-app-map
.
The application map dcbx-iscsi-fcoe-app-map
consists of the iSCSI application, which is mapped to IEEE 802.1p code point 111
, and the FCoE application, which is mapped to IEEE 802.1p code point 011
.
The application map dcbx-iscsi-ptp-app-map
consists of the iSCSI application, which is mapped to IEEE 802.1p code point 111
, and the PTP application, which is mapped to IEEE 802.1p code points 001
and 101
.
Verifying DCBX Application Protocol Exchange Interface Configuration
Purpose
Verify that the application maps have been applied to the correct interfaces.
Action
List the application maps by using the configuration mode command show protocols dcbx
:
user@switch# show protocols dcbx interface xe-0/0/10.0 { application-map dcbx-iscsi-fcoe-app-map; } interface xe-0/0/11.0 { application-map dcbx-iscsi-ptp-app-map; }
Meaning
The show protocols dcbx
configuration mode command lists whether the interfaces are enabled for DCBX and lists the application map applied to each interface. The command output shows that interfaces xe-0/0/10.0
and xe-0/0/11.0
are enabled for DCBX, and that interface xe-0/0/10.0
uses application map dcbx-iscsi-fcoe-app-map
, and interface xe-0/0/11.0
uses application map dcbx-iscsi-ptp-app-map
.
Verifying the PFC Configuration
Purpose
Verify that PFC has been enabled on the FCoE code point and applied to the correct interface.
Action
Display the PFC configuration to verify that PFC is enabled on the FCoE code point (011
) in the congestion notification profile fcoe-cnp
by using the configuration mode command show class-of-service congestion-notification-profile
:
user@switch# show class-of-service congestion-notification-profile fcoe-cnp { input { ieee-802.1 { code-point 011 { pfc; } } } }
Display the class-of-service (CoS) interface information to verify that the correct interface has PFC enabled for the FCoE application by using the configuration mode command show class-of-service interfaces
:
user@switch# show class-of-service interfaces xe-0/0/10 { congestion-notification-profile fcoe-cnp; }
The sample output does not include all of the information this command can show. The output is abbreviated to focus on verifying the PFC configuration.
Meaning
The show class-of-service congestion-notification-profile
configuration mode command lists the configured congestion notification profiles. The command output shows that the congestion notification profile fcoe-cnp
has been configured and has enabled PFC on the IEEE 802.1p code point 011
(the default FCoE code point).
The show class-of-service interfaces
configuration mode command shows the interface CoS configuration. The command output shows that the congestion notification profile fcoe-cnp
, which enables PFC on the FCoE code point, is applied to interface xe-0/0/10
.
Verifying the Classifier Configuration
Purpose
Verify that the classifiers have been configured and applied to the correct interfaces.
Action
Display the classifier configuration by using the configuration mode command show class-of-service
:
user@switch# show class-of-service classifiers { ieee-802.1 fcoe-iscsi-cl1 { import default; forwarding-class network-control { loss-priority high code-points 111; } forwarding-class fcoe { loss-priority high code-points 011; } } ieee-802.1 iscsi-ptp-cl2 { import default; forwarding-class network-control { loss-priority low code-points 111; } forwarding-class best-effort { loss-priority low code-points [ 001 101 ]; } } } interfaces { xe-0/0/10 { congestion-notification-profile fcoe-cnp; unit 0 { classifiers { ieee-802.1 fcoe-iscsi-cl1; } } } xe-0/0/11 { unit 0 { classifiers { ieee-802.1 iscsi-ptp-cl2; } } } }
The sample output does not include all of the information this command can show. The output is abbreviated to focus on verifying the classifier configuration.
Meaning
The show class-of-service
configuration mode command lists the classifier and CoS interface configuration, as well as other information not shown in this example. The command output shows that there are two classifiers configured, fcoe-iscsi-cl1
and iscsi-ptp-cl2
.
Classifier fcoe-iscsi-cl1
uses the default
classifier as a template and edits the template as follows:
The forwarding class
network-control
is set to a loss priority ofhigh
and is mapped to code point111
(the code point mapped to the iSCSI application).The forwarding class
fcoe
is set to a loss priority ofhigh
and is mapped to code point011
(the code point mapped by default to the FCoE application).
Classifier iscsi-ptp-cl2
uses the default
classifier as a template and edits the template as follows:
The forwarding class
network-control
is set to a loss priority oflow
and is mapped to IEEE 802.1p code point111
(the code point mapped to the iSCSI application).The forwarding class
best-effort
is set to a loss priority oflow
and is mapped to IEEE 802.1p code points001
and101
(the code points mapped by default to the PTP application).
The command output also shows that classifier fcoe-iscsi-cl1
is mapped to interface xe-0/0/10.0
and that classifier iscsi-ptp-cl2
is mapped to interface xe-0/0/11.0
.