Contents

Introduction

Problem

Solution

Related Cisco Support Community Discussions

Introduction

The purpose of this document is to show how to modify ingress buffers on the Cisco Nexus 7000 (N7k) Cisco Nexus 7000 48-Port 1 and 10 Gigabit Ethernet F2-Series Module (F2) and Cisco Nexus 7000 Enhanced F2-Series 48-Port Fiber 1 and 10 Gigabit Ethernet Module (F2e) linecards for Virtual Lane 3 (VL3).

Also, you will see the amount of ingress buffering capacity you gain for VL3 after modifying these values.

Problem

Using Fiber Channel over Ethernet (FCoE) multihop connections between Datacenters over distances greater than 2 kilometers can result in input drops. By default, the F2/F2e linecards have 0 pages in the latency buffer to queue packets after pause is sent and this will lead to input drops on long distance FCoE multihop interfaces.

The latency buffer is defined as follows:

PL_STOP - HWM (PL_Pause) = LB (Latency Buffer)

You'll notice the values mentioned above are displayed as pages. Each page is roughly 384 bytes.

Notice below, the ingress buffer capacity of VL3 with the default FCoE QoS policy:

EX

module-10# show hardware internal mac port 1 qos configuration | begin IB | end EB

IB

Port page limit : 3584 (1376256 Bytes)

VL#  HWM pages(bytes)  LWM pages(bytes) Used PL_STOP(HWM & LWM) SPAN

pages                    THR

0    1107 (  425088)   1035 (  397440)     0     1107   1035    100

1       2 (     768)      1 (     384)     0        2      1      1

2       2 (     768)      1 (     384)     0        2      1      1

3    1053 (  404352)   1029 (  395136)     0     1053   1029    100

4    1107 (  425088)   1083 (  415872)     0     1107   1083    100

5     231 (   88704)    159 (   61056)     0      231    159     57

6       2 (     768)      1 (     384)     0        2      1      1

7       2 (     768)      1 (     384)     0        2      1      1

Credited DWRR WT: 216 (0xd8) Uncredited DWRR WT: 144 (0x90)

DWRR honor UC = FALSE

Leak Lo weight = 0xd8, enabled = FALSE

EB

PL_STOP and High Water Mark (HWM)  is of same value. Here you can see the latency buffer has 0 pages by default. To support long distance FCoE these values will need to be modified.

Solution

First you will need to duplicate the 'default-4q-7e-in-policy' Quality of Service (QoS) policy-map:

Switch(config)# qos copy policy-map type queuing ?

*** No matching command found in current mode, matching in (exec) mode ***

default-4q-7e-in-policy   Default 7-ethernet input queuing policy

default-4q-7e-out-policy  Default 7-ethernet output queuing policy

Switch(config)# qos copy policy-map type queuing default-4q-7e-in-policy prefix 7I_

Below you will see the amount of bytes allocated to the latency buffer of VL3, after modifying the service policies.

Note: You will not see a latency buffer until you allocate ATLEAST 60% of the queue-limit to the "ndrop" policy.

Policies will be modified in increments of 10, up to 99%

60/40 ingess buffer allocation

==============================

policy-map type queuing 7I_4q-7e-in

class type queuing c-4q-7e-drop-in

service-policy type queuing 7I_4q-7e-drop-in

queue-limit percent 40

class type queuing c-4q-7e-ndrop-in

service-policy type queuing 7I_4q-7e-ndrop-in

queue-limit percent 60

interface Ethernet2/5

service-policy type queuing input 7I_4q-7e-in

module-2# show hardware internal mac port 5 qos configuration | begin IB | end EB

IB

Port page limit : 3584 (1376256 Bytes)

VL#  HWM pages(bytes)  LWM pages(bytes) Used PL_STOP(HWM & LWM) SPAN

pages                    THR

0     624 (  239616)    576 (  221184)     0      624    576    100

1       2 (     768)      1 (     384)     0        2      1      1

2     624 (  239616)    576 (  221184)     0      624    576    100

3    1913 (  734592)   1889 (  725376)     0     2126   1889    100

4       2 (     768)      1 (     384)     0        2      1      1

5     124 (   47616)     52 (   19968)     0      124     52     31

6       2 (     768)      1 (     384)     0        2      1      1

7       2 (     768)      1 (     384)     0        2      1      1

Credited DWRR WT: 216 (0xd8) Uncredited DWRR WT: 144 (0x90)

DWRR honor UC = FALSE

Leak Lo weight = 0xd8, enabled = FALSE

EB

60/40 will allocate 81792 bytes to vl3 latency buffer.

PL_STOP - HWM * 384 bytes

2126 - 1913 = 213pages * 384 = 81792 bytes

70/30 ingress buffer allocation

===============================

policy-map type queuing 7I_4q-7e-in

class type queuing c-4q-7e-drop-in

service-policy type queuing 7I_4q-7e-drop-in

queue-limit percent 30

class type queuing c-4q-7e-ndrop-in

service-policy type queuing 7I_4q-7e-ndrop-in

queue-limit percent 70

interface Ethernet2/5

service-policy type queuing input 7I_4q-7e-in

module-2# show hardware internal mac port 5 qos configuration | begin IB | end EB

IB

Port page limit : 3584 (1376256 Bytes)

VL#  HWM pages(bytes)  LWM pages(bytes) Used PL_STOP(HWM & LWM) SPAN

pages                    THR

0     463 (  177792)    415 (  159360)     0      463    415    100

1       2 (     768)      1 (     384)     0        2      1      1

2     463 (  177792)    415 (  159360)     0      463    415    100

3    1987 (  763008)   1963 (  753792)     0     2484   1963    100

4       2 (     768)      1 (     384)     0        2      1      1

5      88 (   33792)     16 (    6144)     0       88     16     22

6       2 (     768)      1 (     384)     0        2      1      1

7       2 (     768)      1 (     384)     0        2      1      1

Credited DWRR WT: 216 (0xd8) Uncredited DWRR WT: 144 (0x90)

DWRR honor UC = FALSE

Leak Lo weight = 0xd8, enabled = FALSE

EB

70/30 allocates 190848 bytes to VL3 latency buffer.

policy-map type queuing 7I_4q-7e-in

class type queuing c-4q-7e-drop-in

service-policy type queuing 7I_4q-7e-drop-in

queue-limit percent 20

class type queuing c-4q-7e-ndrop-in

service-policy type queuing 7I_4q-7e-ndrop-in

queue-limit percent 80

interface Ethernet2/5

service-policy type queuing input 7I_4q-7e-in

module-2# show hardware internal mac port 5 qos configuration | begin IB | end EB

IB

Port page limit : 3584 (1376256 Bytes)

VL#  HWM pages(bytes)  LWM pages(bytes) Used PL_STOP(HWM & LWM) SPAN

pages                    THR

0     302 (  115968)    254 (   97536)     0      302    254     75

1       2 (     768)      1 (     384)     0        2      1      1

2     302 (  115968)    254 (   97536)     0      302    254     75

3    1875 (  720000)   1851 (  710784)     0     2841   1851    100

4       2 (     768)      1 (     384)     0        2      1      1

5      52 (   19968)     46 (   17664)     0       52     46     13

6       2 (     768)      1 (     384)     0        2      1      1

7       2 (     768)      1 (     384)     0        2      1      1

Credited DWRR WT: 216 (0xd8) Uncredited DWRR WT: 144 (0x90)

DWRR honor UC = FALSE

Leak Lo weight = 0xd8, enabled = FALSE

EB

80/20 allocates 370944 bytes to VL3 latency buffer.

policy-map type queuing 7I_4q-7e-in

class type queuing c-4q-7e-drop-in

service-policy type queuing 7I_4q-7e-drop-in

queue-limit percent 10

class type queuing c-4q-7e-ndrop-in

service-policy type queuing 7I_4q-7e-ndrop-in

queue-limit percent 90

interface Ethernet2/5

service-policy type queuing input 7I_4q-7e-in

module-2# show hardware internal mac port 5 qos configuration | begin IB | end EB

IB

Port page limit : 3584 (1376256 Bytes)

VL#  HWM pages(bytes)  LWM pages(bytes) Used PL_STOP(HWM & LWM) SPAN

pages                    THR

0     141 (   54144)     93 (   35712)     0      141     93     35

1       2 (     768)      1 (     384)     0        2      1      1

2     141 (   54144)     93 (   35712)     0      141     93     35

3    1055 (  405120)   1031 (  395904)     0     3199   1031    100

4       2 (     768)      1 (     384)     0        2      1      1

5      16 (    6144)     10 (    3840)     0       16     10      4

6       2 (     768)      1 (     384)     0        2      1      1

7       2 (     768)      1 (     384)     0        2      1      1

Credited DWRR WT: 216 (0xd8) Uncredited DWRR WT: 144 (0x90)

DWRR honor UC = FALSE

Leak Lo weight = 0xd8, enabled = FALSE

EB

90/10 allocates 823296 bytes to VL3 latency buffer

policy-map type queuing 7I_4q-7e-in

class type queuing c-4q-7e-drop-in

service-policy type queuing 7I_4q-7e-drop-in

queue-limit percent 1

class type queuing c-4q-7e-ndrop-in

service-policy type queuing 7I_4q-7e-ndrop-in

queue-limit percent 99

interface Ethernet2/5

service-policy type queuing input 7I_4q-7e-in

module-2# show hardware internal mac port 5 qos configuration | begin IB | end EB

IB

Port page limit : 3584 (1376256 Bytes)

VL#  HWM pages(bytes)  LWM pages(bytes) Used PL_STOP(HWM & LWM) SPAN

pages                    THR

0      15 (    5760)      9 (    3456)     0       15      9      3

1       2 (     768)      1 (     384)     0        2      1      1

2      15 (    5760)      9 (    3456)     0       15      9      3

3    1161 (  445824)   1137 (  436608)     0     3521   1137    100

4       2 (     768)      1 (     384)     0        2      1      1

5       3 (    1152)      0 (       0)     0        3      0      1

6       2 (     768)      1 (     384)     0        2      1      1

7       2 (     768)      1 (     384)     0        2      1      1

Credited DWRR WT: 216 (0xd8) Uncredited DWRR WT: 144 (0x90)

DWRR honor UC = FALSE

Leak Lo weight = 0xd8, enabled = FALSE

EB

99/1 allocates 906240 bytes to VL3 latency buffer

Note: Each clipper asic has 6MB of buffer capacity. There are 4 ports per clipper, therefore this equates to ~1.5MB buffer capacity per port. With 99/1 you will see ~.9MB is allocated to VL3 latency buffer and the remainder is used by HWM for each VL(majority to VL3). When adding each VLs HWM with the LB of VL3 you'll see it equates to ~1.35MB buffer capacity.