Inhalt

Einführung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Hintergrundinformationen

Fehlerbehebung

Fehlerbehebung bei ELAM auf Modulen der F3-Serie ohne Breakout-Kabel

Fehlerbehebung bei ELAM auf F3-Modulen mit Breakout-Kabeln

Einführung

In diesem Dokument wird beschrieben, wie Hardware-Weiterleitungsprobleme bei Modulen der F3-Serie für Cisco Nexus Switches der Serie 7000 behoben werden.

Voraussetzungen

Anforderungen

Cisco empfiehlt, sich mit dem Cisco Nexus-Betriebssystem (NX-OS) und der grundlegenden Nexus-Architektur vertraut zu machen, bevor Sie mit den in diesem Dokument beschriebenen Informationen fortfahren.

Verwendete Komponenten

Die Informationen in diesem Dokument basieren auf den folgenden Software- und Hardwareversionen:

- Cisco Nexus Switches der Serie 7000 (N7K)

- Module der Cisco N7K F3-Serie (N7K-F312FQ-25, 10/40-Gigabit-Ethernet-Module mit 12 Ports)

- Cisco NX-OS 6.2.8a und höher

Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.

Hintergrundinformationen

Dieses Dokument konzentriert sich in erster Linie auf einige der integrierten Tools, die zur Hardware-Fehlerbehebung verwendet werden, wenn der Softwareteil der Weiterleitungstabelle oder Kontrollebene ausgeschöpft ist. Ein solches Tool ist das Embedded Logic Analyzer Module (ELAM), ein anwendungsspezifischer integrierter Schaltkreis (Application-Specific Integrated Circuit, ASIC), der ein einzelnes Paket erfasst und zeigt, wie das Eingangspaket nach der Weiterleitung auf dem Data BUS (DBUS) und dem Result BUS (RBUS) angezeigt wird.

Der ASIC ist in die Weiterleitungspipeline eingebettet und kann ein Paket in Echtzeit ohne Beeinträchtigung der Leistung oder Kontrollebenen-Ressourcen erfassen. So können Sie beispielsweise folgende Fragen beantworten:

- Hat das Paket die Forwarding Engine (FE) erreicht?

- Auf welchem Port und welchem VLAN wird das Paket empfangen?

- Wie wird das Paket angezeigt (Layer 2- (L2-) oder Layer 4- (L4-) Daten)?

- Wie wird das Paket geändert, und wo wird es gesendet?

ELAM ist ein leistungsstarkes, präzises und nicht störendes Tool, das häufig von Technikern des Cisco Technical Assistance Center (TAC) verwendet wird, die auf Hardware-Switching-Plattformen arbeiten. Es ist jedoch wichtig zu wissen, dass das ELAM-Tool jeweils nur ein Paket erfasst. Das heißt, das erste Paket, das nach der Auslösung des ELAM empfangen wird.

Fehlerbehebung

In diesem Abschnitt wird die Fehlerbehebung für ELAM auf einem Modul der F3-Serie in Bereitstellungen beschrieben, bei denen kein Breakout-Kabel verwendet wird, sowie in Bereitstellungen, bei denen Breakout-Kabel verwendet werden.

Fehlerbehebung bei ELAM auf Modulen der F3-Serie ohne Breakout-Kabel

Dies ist die Topologie, die für die Beispiele in diesem Abschnitt verwendet wird:

+-------------+                   +-------------+                     +------------+

|             |                   |             |                     |            |

|             |                   |             |                     |            |

|             | e3/3-4     e3/1-2 |             | e3/5           e3/7 |            |

|  N7K2       +-------------------+   N7K1      +---------------------+  N7K3      |

|             +-------------------+             | .1         L3    .3 |            |

|             |   Po1(Trunk)      |             |   192.168.13.0/24   |            |

|             |                   |             |                     |            |

+-------------+                   +-------------+                     +------------+

Vlan 10 SVI                         Vlan10 SVI

IP add 192.168.12.2/24              IP add 192.168.12.1/24

Hier einige Hinweise zu dieser Topologie:

- Auf den N7Ks wird NX-OS Version 6.2.8a ausgeführt.

- Pings werden von der N7K2 VLAN 10-Schnittstelle an die Remote-IP-Adresse 192.168.12.1 gesendet.

- Das ELAM erfasst Pakete auf dem N7K1.

- Es wird ein N7K-F312FQ-25 verwendet, ein 10/40-Gigabit-Ethernet-Modul mit 12 Ports, das in Steckplatz 3 eingesetzt wird.

Bevor Sie mit der Fehlerbehebung in Ihrem System beginnen, sollten Sie die grundlegende Konnektivität bestätigen:

N7K2# ping 192.168.13.3

PING 192.168.13.3 (192.168.13.3): 56 data bytes

64 bytes from 192.168.13.3: icmp_seq=0 ttl=253 time=1.513 ms

64 bytes from 192.168.13.3: icmp_seq=1 ttl=253 time=1.062 ms

64 bytes from 192.168.13.3: icmp_seq=2 ttl=253 time=0.822 ms

64 bytes from 192.168.13.3: icmp_seq=3 ttl=253 time=0.830 ms

64 bytes from 192.168.13.3: icmp_seq=4 ttl=253 time=0.845 ms

--- 192.168.13.3 ping statistics ---

5 packets transmitted, 5 packets received, 0.00% packet loss

round-trip min/avg/max = 0.822/1.014/1.513 ms

N7K2# show ip route 192.168.13.3

IP Route Table for VRF "default"

'*' denotes best ucast next-hop

'**' denotes best mcast next-hop

'[x/y]' denotes [preference/metric]

'%<string>' in via output denotes VRF <string>

192.168.13.0/24, ubest/mbest: 1/0

*via 192.168.12.1, [1/0], 01:20:36, static

!--- The next command verifies the Address Resolution Protocol (ARP) for the next hop.

N7K2# show ip arp 192.168.12.1

----SNIP----

IP ARP Table

Total number of entries: 1

Address         Age       MAC Address     Interface

192.168.12.1    00:10:29  e4c7.2210.a142  Vlan10

Sie sollten auch die MAC-Adresserkennung (Media Access Control) auf der Supervisor Engine (Sup) und das Modul für den nächsten Hop überprüfen:

N7K2# show mac address-table address e4c7.2210.a142

!--- This command output shows the MAC learning on the Sup (software).

Legend:

* - primary entry, G - Gateway MAC, (R) - Routed MAC, O - Overlay MAC

age - seconds since last seen,+ - primary entry using vPC Peer-Link,

(T) - True, (F) - False

VLAN     MAC Address      Type      age     Secure NTFY Ports/SWID.SSID.LID

---------+-----------------+--------+---------+------+----+------------------

* 10       e4c7.2210.a142    dynamic   120        F    F    Po1

Diese Ausgabe zeigt die MAC-Lernfunktion auf dem Modul/der Hardware an. Um jedoch die Schnittstelle zu kennen, müssen Sie den Index konvertieren:

N7K2# show hardware mac address-table 3 address e4c7.2210.a142

FE | Valid| PI|  BD  |      MAC      | Index | Stat| SW  | Modi| Age| Tmr| GM| Sec|

|      |   |      |               |       |  ic |     | fied|Byte| Sel|   | ure|

---|------|---|------|---------------|-------|-----|-----|-----|----|----|---|----|

1    1     1   41    e4c7.2210.a142  0x00a2a   0   0x089   1    185   1    0    0

| TR| NT| RM| RMA| Cap| Fld|Always| PV | RD| NN| UC|PI_E8| VIF | SWID| SSWID|  LID  |

| AP| FY|   |    |ture|    | Learn|    |   |   |   |     |     |     |      |       |

|---|---|---|----|----|----|------|----|---|---|---|-----|-----|-----|------|-------|

0   0   0    0    0    0    0    0x00  0   0   1    0   0x000 0x000  0x000 0x00a2a

N7K2# show system  internal pixm info ltl 0x00a2a

!--- This is the index that was received in the previous output.

---SNIP---

PC_TYPE    PORT    LTL      RES_ID       LTL_FLAG      CB_FLAG      MEMB_CNT

------------------------------------------------------------------------------

Normal    Po1     0x0a2a    0x16000000   0x00000000    0x00000002   2

Member rbh rbh_cnt

Eth3/4   0x000000f0   0x04

Eth3/3   0x0000000f   0x04

---SNIP---

Geben Sie diese Befehle ein, um die VDC-Nummer (Virtual Device Context) zu erhalten (in diesem Beispiel lautet sie 3), und überprüfen Sie die MAC-Adresse direkt auf dem Modul:

N7K2# show vdc

---SNIP---

vdc_id  vdc_name  state   mac                 type        lc

------  --------  -----   ----------          ---------   ---

3       N7K2      active  e4:c7:22:10:a1:43   Ethernet    f3

module-3#attach module 3

module-3# vdc 3

!--- This data is obtained from the previous command output.

module-3# show mac address-table address e4c7.2210.a142

Legend:

* - primary entry, G - Gateway MAC, (R) - Routed MAC, (d) - dec

Age - seconds since last seen,,+ - primary entry using vPC Peer-Link

(T) - True, (F) - False, h - hex, d - decimal

VDC = 3

FE  VLAN/BD MAC Address    Type     Age   Secure  NTFY   Ports/SWID.SSID.LID(d)

-----+------+-------------+--------+------+------+------+-----------------------

*  1    10  e4c7.2210.a142  dynamic 360        F     F    Po1

Bestimmen Sie die Verbindung auf Port-Channel 1, die für die Weiterleitung des Datenverkehrs auf dem Sup von N7K2 verwendet wird, sowie die Verbindung, die zum Senden einer Antwort von N7K3 verwendet wird, wenn Port-Channel 1 von N7K1 an N7K2 verwendet wird:

N7K2# show port-channel load-balance forwarding-path interface port-channel 1 src-ip

192.168.12.2 dst-ip 192.168.13.3 module 3

Module 3: Missing params will be substituted by 0's.

Load-balance Algorithm: src-dst ip

RBH: 0xd2       Outgoing port id: Ethernet3/3

N7K1# show port-channel load-balance forwarding-path interface port-channel 1 src-ip

192.168.13.3 dst-ip 192.168.12.2 module 3

Module 3: Missing params will be substituted by 0's.

Load-balance Algorithm: src-dst ip

RBH: 0xd2       Outgoing port id: Ethernet3/1

Senden Sie ein Ping von N7K2 (IP-Adresse 192.168.12.2), und erfassen Sie die Pakete auf N7K1 in Eingangsrichtung, um zu bestätigen, dass die Pakete an N7K3 weitergeleitet werden (IP-Adresse 192.168.13.3).

Bevor Sie den Ping senden, sollten Sie über Kenntnisse der Hardware-Erstellung verfügen. Gehen Sie wie folgt vor, um die Erstellung zu verstehen:

1. Schließen Sie das Modul an:

N7K1# attach module 3

Attaching to module 3 ...

To exit type 'exit', to abort type '$.'

2. Identifizieren Sie die Flanker-Instanz. Der Flanker ist ein Switch on Chip (SOC) ASIC für das Modul der F3-Serie. Jeder Flanker ist zwei externen Ports am Modul zugeordnet (die Informationen variieren je Modultyp und sind spezifisch für N7K-F312FQ-25).

Das Modul verfügt über 12 Ports, und jeder ASIC ist zwei Ports an der Vorderseite zugeordnet. Das bedeutet, dass 6 (0-5) Flanker-Instanzen auf dem Modul verfügbar sind (die Instanzanzahl ist nullbasiert).
Hinweis: Stellen Sie sicher, dass Sie über Administratorrechte für das Netzwerk verfügen, bevor Sie beginnen.
Wenn Sie das Paket erfassen, das von N7K2 über Port-Channel 1 auf N7K1 erreicht wird, suchen Sie nach den Ports (e3/1 und e3/2), die den einzelnen Instanzen zugeordnet sind:

module-3# show hardware internal dev-port-map

--------------------------------------------------------------

CARD_TYPE:       12 port 40G

>Front Panel ports:12

--------------------------------------------------------------

Device name             Dev role              Abbr num_inst:

--------------------------------------------------------------

> Flanker Eth Mac Driver DEV_ETHERNET_MAC       MAC_0  6

> Flanker Fwd Driver     DEV_LAYER_2_LOOKUP     L2LKP  6

!--- Check for the L2LKP number for ports 1 and 2.

> Flanker Xbar Driver    DEV_XBAR_INTF          XBAR_INTF 6

> Flanker Queue Driver   DEV_QUEUEING           QUEUE  6

> Sacramento Xbar ASIC   DEV_SWITCH_FABRIC      SWICHF 1

> Flanker L3 Driver      DEV_LAYER_3_LOOKUP     L3LKP  6

> EDC                    DEV_PHY                PHYS   2

+-----------------------------------------------------------------------+

+----------------+++FRONT PANEL PORT TO ASIC INSTANCE MAP+++------------+

+-----------------------------------------------------------------------+

FP port |  PHYS | MAC_0 | L2LKP | L3LKP | QUEUE |SWICHF

1               0       0       0       0       0

!--- The L2KLP for both ports is 0, so both belong to instance 0.

2               0       0       0       0       0

3               1       1       1       1       0

4               1       1       1       1       0

5       0       2       2       2       2       0

6       0       2       2       2       2       0

7       1       3       3       3       3       0

8       1       3       3       3       3       0

9               4       4       4       4       0

10              4       4       4       4       0

11              5       5       5       5       0

12              5       5       5       5       0

+-----------------------------------------------------------------------+

+-----------------------------------------------------------------------+

3. Wählen Sie die Instanz aus, legen Sie den Trigger fest, und beginnen Sie die Erfassung. Es ist jedoch wichtig zu verstehen, dass es viele Optionen gibt, die mit dem ELAM-Trigger verwendet werden können:

module-3# elam asic flanker instance 0

module-3(fln-elam)# layer2

module-3(fln-l2-elam)# trigger ?

dbus  Pre L2 BUS

rbus  Post L2 BUS

-----SNIP-----
Diese beiden Optionen sind wichtig, wenn Sie das DBUS in die Erfassung einbeziehen möchten (das Paket, das vom Switch empfangen wird). Dies ist das Rohpaket, das nicht einer Suche unterzogen wird. Das RBUS zeigt die Suchergebnisse in der Hardware für ein DBUS an. Für eine vollständige ELAM-Analyse müssen Sie sowohl das RBUS als auch das DBUS erfassen.

Die nächste Ausgabe zeigt die Pakettypen, die mit der DBUS-Option erfasst werden können. In diesem Beispiel wird das Internet Protocol Version 4 (IPv4)-Paket ausgewählt:

module-3(fln-l2-elam)# trigger dbus ?

arp    ARP Frame Format

fc     Fc hdr Frame Format

ipv4   IPV4 Frame Format

ipv6   IPV6 Frame Format

mpls   MPLS

other  L2 hdr Frame Format

pup    PUP Frame Format

rarp   RARP Frame Format

valid  On valid packet
Hier einige zusätzliche Optionen, die Sie verwenden können:

module-3(fln-l2-elam)# trigger dbus ipv4 ?

egress                 Egress packets

!--- Capture packets in egress (outbound from the port).

if                     If Trigger Condition

ingress                Ingress packets

!--- Capture packets in ingress (inbound to the port).

multicast              Multicast packet

multicast-replication  Multicast replication
In diesem Beispiel wird das if-Handle verwendet, um eine Bedingung für die Erfassung auszuwählen. Die meisten der in der nächsten Ausgabe gezeigten Optionen basieren auf L2-, L3- und L4-Headern. Die Quell- und Ziel-IP-Adressen werden ebenfalls für die Erfassung verwendet.

module-3(fln-l2-elam)# trigger dbus ipv4 ingress if ?

<CR>

acos                             Acos

block-capture                    Capture l2 blocks

bpdu                             Bpdu

bundle-port                      Bundle-port

ccc                              Ccc

copp                             Copp

da-type                          Da-type

de-cfi                           De cfi

destination-index                Destination-index

destination-ipv4-address         destination ipv4 address

destination-mac-address          Destination-mac-address

destination-vif                  Destination-vif

df                               df

dfst                             Dfst

dft                              Dft

disable-index-learn              Disable-index-learn

disable-new-learn                Disable-new-learn

dont-forward                     Dont-forward

dont-learn                       Dont-learn

dtag-ftag                        Dtag-ftag

dtag-ttl                         Dtag-ttl

dti-type-vpnid                   Dti type vpnid

error                            Error

erspan-kpa-valid                 Erspan kpa valid

ff                               Ff

frag                             frag

header-type                      Header type

ib-length-bundle                 Ib length bundle

ids-check-fail                   Ids-check-fail

ignore-acli                      Ignore-acli

ignore-aclo                      Ignore-aclo

ignore-qosi                      Ignore-qosi

ignore-qoso                      Ignore-qoso

inband-flow-creation-deletion    Inband-flow-creation-deletion

index-direct                     Index-direct

inner-cos                        Inner-cos

inner-de-valid                   Inner de valid

inner-drop-eligibility           Inner-drop-eligibility

ip-da-multicast                  Ip-da-multicast

ip-multicast                     Ip-multicast

ip-multicast-control             Ip-multicast-control

ipv6                             Ipv6

l2                               L2

l2-frame-type                    L2-frame-type

l2-length-check                  L2 length check

l2lu-mode                        L2lu-mode

l3-packet-length                 l3 packet length

l4-protocol                      l4 protocol

label-count                      Label count

last-ethertype                   Last-ethertype

lbl0-eos                         Lbl0 eos

lbl0-exp                         Lbl0 exp

lbl0-lbl                         Lbl0 lbl

lbl0-ttl                         Lbl0 ttl

lbl0-valid                       Lbl0 valid

lbl1-exp                         Lbl1 exp

lbl1-ttl                         Lbl1 ttl

mac-in-mac-valid                 Mac-in-mac-valid

mc                               Mc

md-acos                          Md acos

md-destination-table-index       Md destination table index

md-fwd-only                      Md fwd only

md-lif                           Md lif

md-mark-enable                   Md mark enable

md-multicast-bridge-disable      Md multicast bridge disable

md-preserve-acos                 Md preserve acos

md-qos-group-id                  Md qos group id

md-replication-packet            Md replication packet

md-router-mac                    Md router mac

md-ttl-err                       Md-ttl-err

md-version                       Md version

mf                               mf

mim-destination-mac-address      Mim-destination-mac-address

mim-source-mac-address           Mim-source-mac-address

mlh-type                         Mlh-type

no-stats                         No-stats

notify-index-learn               Notify-index-learn

notify-new-learn                 Notify-new-learn

null-label-exp                   Null label exp

null-label-ttl                   Null label ttl

null-label-valid                 Null label valid

option                           option

outer-cos                        Outer-cos

outer-drop-eligibility           Outer-drop-eligibility

ovl-mlh-bndl                     Ovl mlh bndl

ovl-ulh-bndl                     Ovl ulh bndl

ovl-ulh-bndl-1                   Ovl-ulh-bndl-1

ovl-ulh-bndl-2                   Ovl-ulh-bndl-2

packet-length                    Packet-length

packet-type                      Packet type

pdt-tag-gt-2                     Pdt-tag-gt-2

pdt-tag0                         Pdt-tag0

pdt-tag1                         Pdt-tag1

pdt-valid                        Pdt-valid

pdt-value                        Pdt-value

port-id                          Port-id

rbh                              Rbh

rdt                              Rdt

recir-shim-vxlan-src-peer-id     Recir shim vxlan src peer id

recirc-acos                      Recirc acos

recirc-bypass-ife                Recirc bypass ife

recirc-bypass-l2                 Recirc bypass l2

recirc-destination-table-index   Recirc destination table index

recirc-forward-only              Recirc forward only

recirc-l2-tunnel-encap           Recirc l2 tunnel encap

recirc-lif                       Recirc lif

recirc-ls-hash                   Recirc ls hash

recirc-mark-enable               Recirc mark enable

recirc-multicast-bridge-disable  Recirc multicast bridge disable

recirc-preserve-acos             Recirc preserve acos

recirc-preserve-ls-hash          Recirc preserve ls hash

recirc-preserve-rbh              Recirc preserve rbh

recirc-qos-group-id              Recirc qos group id

recirc-replication-packet        Recirc replication packet

recirc-router-mac                Recirc router mac

recirc-ttl-err                   Recirc ttl err

recirc-valid                     Recirc-valid

recirc-version                   Recirc version

redirect                         Redirect

repl-bypass-ife                  Repl bypass ife

repl-bypass-l2                   Repl bypass l2

repl-disable-local-bridge        Repl disable local bridge

repl-fwd-only                    Repl fwd only

repl-l2-tunnel-encap             Repl l2 tunnel encap

repl-l2-tunnel-info              Repl l2 tunnel info

repl-lif                         Repl lif

repl-mark-enable                 Repl mark enable

repl-met-lif                     Repl met lif

repl-ml3                         Repl ml3

repl-preserve-acos               Repl preserve acos

repl-preserve-rbh                Repl preserve rbh

repl-qos-group-id                Repl qos group id

repl-replication-packet          Repl replication packet

repl-router-mac                  Repl router mac

repl-ttl-err                     Repl ttl err

repl-version                     Repl version

rf                               Rf

second-inner-cos                 Second inner cos

segment-id                       Segment id

segment-id-valid                 Segment id valid

sequence-number                  Sequence-number

sg-tag                           Sg-tag

shim-valid                       Shim valid

source-index                     Source-index

source-ipv4-address              source ipv4 address

source-mac-address               Source-mac-address

source-vif                       Source-vif

status-ce-1q                     Status-ce-1q

status-is-1q                     Status-is-1q

sup-eid                          Sup-eid

tos                              tos

traceroute                       Traceroute

trig                             Any of previous elam triggered

trill-encap                      Trill-encap

ttl                              ttl

tunnel-bundle                    Tunnel bundle

tunnel-type                      Tunnel type

ulh-type                         Ulh-type

valid                            VALID

vl                               Vl

vlan                             Vlan

vn-p                             Vn p

vn-valid                         Vn-valid

vqi                              Vqi

vqi-valid                        Vqi-valid

vsl-num                          Vsl-num
Diese Ausgabe zeigt die letzte Triggeroption:

module-3# elam asic flanker instance 0

module-3(fln-elam)# layer2

module-3(fln-l2-elam)# trigger dbus ipv4 ingress if source-ipv4-address 192.168.12.2

destination-ipv4-address 192.168.13.3

module-3(fln-l2-elam)# trigger rbus ingress if trig

Hinweis: Die RBUS-Konfiguration ist in der Regel nicht komplex und einfach gehalten.

4. Um den Trigger zu überprüfen, geben Sie den Status-Befehl ein, starten Sie den Erfassungsprozess, und initiieren Sie einen Ping von N7K2 an N7K3 (192.168.12.1 bis 192.168.13.3):

module-3(fln-l2-elam)# stat

ELAM Slot 3 instance 0: L2 DBUS Configuration: trigger dbus ipv4 ingress if

source-ipv4-address 192.168.12.2 destination-ipv4-address 192.168.13.3

L2 DBUS: Configured

ELAM Slot 3 instance 0: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Configured

module-3(fln-l2-elam)# start

module-3(fln-l2-elam)# status

!--- The status shows as Armed because the process has begun.

ELAM Slot 3 instance 0: L2 DBUS Configuration: trigger dbus ipv4 ingress if

source-ipv4-address 192.168.12.2 destination-ipv4-address 192.168.13.1

L2 DBUS: Armed

ELAM Slot 3 instance 0: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Armed

module-3(fln-l2-elam)#

module-3(fln-l2-elam)# status

!--- If the packet is captured, the status shows Triggered.

ELAM Slot 3 instance 0: L2 DBUS Configuration: trigger dbus ipv4 ingress if

source-ipv4-address 192.168.12.2 destination-ipv4-address 192.168.13.3

L2 DBUS: Triggered

ELAM Slot 3 instance 0: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Triggered

module-3(fln-l2-elam)#

5. Wenn der Status Triggered (Ausgelöst) anzeigt, prüfen Sie, ob sowohl RBUS als auch DBUS über dieselbe Sequenznummer verfügen, um sicherzustellen, dass sie für dasselbe Paket verfügbar sind. In diesem Beispiel wird 0x55 verwendet, die Spalte, die die Sequenznummer anzeigt, ist jedoch anders:

module-3(fln-l2-elam)# show dbus | in seq

sequence-number     : 0x6b            vl    : 0x0

!--- The sequence number is the same (0x6b).

module-3(fln-l2-elam)# show rbus | in seq

l2-rbus-trigger     : 0x1             sequence-number     : 0x6b

6. Geben Sie die Befehle show dbus und show rbus ein, um das DBUS und das RBUS zu überprüfen. Suchen Sie in der Ausgabe des DBUS-Befehls nach dem Quellindex und in der Zielindex in der Ausgabe des RBUS-Befehls:

module-3(fln-l2-elam)# show dbus

cp = 0x1007db4c, buf = 0x1007db4c, end = 0x10089e9c

--------------------------------------------------------------------

Flanker Instance 00 - Capture Buffer On L2 DBUS:

Status(0x0102), TriggerWord(0x000), SampleStored(0x005),CaptureBufferPointer(0x005)

is_l2_egress: 0x0000, data_size: 0x023

[000]:   5902a000 08010000 00000000 0cc01400 00145800 00000000 01800100 00000000

00000000 00000000 003931c8 842850b9 31c88428 50c00000 01ac0000 00000000 00000000

00000000 00000000 00000000 00000005 80005000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00605406 01605406 8180008f f0054608 00000000

Printing packet 0

--------------------------------------------------------------------

L2 DBUS PRS MLH IPV4

--------------------------------------------------------------------

label-count         : 0x0             mc                  : 0x0

null-label-valid    : 0x0             null-label-exp      : 0x0

null-label-ttl      : 0x0             lbl0-vld            : 0x0

lbl0-eos            : 0x0             lbl0-lbl            : 0x0

lbl0-exp            : 0x0             lbl0-ttl            : 0x0

lbl1-exp            : 0x0             lbl1-ttl            : 0x0

ipv4                : 0x0             ipv6                : 0x0

l4-protocol         : 0x1             df                  : 0x0

mf                  : 0x0             frag                : 0x0

ttl                 : 0xff            l3-packet-length    : 0x54

option              : 0x0             tos                 : 0x0

sup-eid             : 0x0             header-type         : 0x1

error               : 0x0             redirect            : 0x0

port-id             : 0x0             last-ethertype      : 0x800

l2-frame-type       : 0x0             da-type             : 0x0

packet-type         : 0x0             l2-length-check     : 0x0

ip-da-multicast     : 0x0             ip-multicast        : 0x0

ip-multicast-control: 0x0             ids-check-fail      : 0x0

traceroute          : 0x0             outer-cos           : 0x0

inner-cos           : 0x0             vqi-valid           : 0x0

vqi                 : 0x0             packet-length       : 0x66

vlan                : 0xa             destination-index   : 0x0

source-index        : 0xa2c           bundle-port         : 0x0

acos                : 0x0             outer-drop-eligibility: 0x0

inner-drop-eligibility: 0x0             sg-tag              : 0x0

rbh                 : 0x0             vsl-num             : 0x0

inband-flow-creation-deletion: 0x0             ignore-qoso         : 0x0

ignore-qosi         : 0x0             ignore-aclo         : 0x0

ignore-acli         : 0x0             index-direct        : 0x0

no-stats            : 0x0             dont-forward        : 0x0

notify-index-learn  : 0x1             notify-new-learn    : 0x1

disable-new-learn   : 0x0             disable-index-learn : 0x0

dont-learn          : 0x0             bpdu                : 0x0

ff                  : 0x0             rf                  : 0x0

ccc                 : 0x0             l2                  : 0x0

rdt                 : 0x0             dft                 : 0x0

dfst                : 0x0             status-ce-1q        : 0x0

status-is-1q        : 0x1             trill-encap         : 0x0

mim-valid           : 0x0             dtag-ttl            : 0x0

dtag-ftag           : 0x0             valid               : 0x1

erspan-kpa-valid    : 0x0             recir-shim-vxlan-src-peer-id: 0x0

vn-valid            : 0x0             source-vif          : 0x0

destination-vif     : 0x0             vn-p                : 0x0

sequence-number     : 0x6b            vl                  : 0x0

inner-de-valid      : 0x0             de-cfi              : 0x0

second-inner-cos    : 0x0             tunnel-type         : 0x0

shim-valid          : 0x0

segment-id-valid    : 0x0             copp                : 0x0

dti-type-vpnid      : 0x0             segment-id          : 0x0

ib-length-bundle    : 0x58000         mlh-type            : 0x5

ulh-type            : 0x6

source-ipv4-address: 192.168.12.2

destination-ipv4-address: 192.168.13.3

mim-destination-mac-address : 0000.0000.0000

mim-source-mac-address : 0000.0000.0000

destination-mac-address : e4c7.2210.a142

source-mac-address : e4c7.2210.a143

module-3(fln-l2-elam)# show rbus

cp = 0x100a2548, buf = 0x100a2548, end = 0x100ae898

--------------------------------------------------------------------

Flanker Instance 00 - Capture Buffer On L2 RBUS:

Status(0x0102), TriggerWord(0x000), SampleStored(0x005),CaptureBufferPointer(0x005)

is_l2_egress: 0x0000, data_size: 0x018

[000]:   0059d930 0000000c c0000000 03580000 00000000 00000000 0000001f 57b00021

fdfc0000 00000000 02000000 14001402 8b000105 00000000 68200000 00000000 00000000

00000400 00008000 005b0000 00fe0e4c 7220850a 210000a0 000000b6

Printing packet 0

--------------------------------------------------------------------

L2 RBUS INGRESS CONTENT

--------------------------------------------------------------------

pad                 : 0x16764         valid               : 0x1

l2-rbus-trigger     : 0x1             sequence-number     : 0x6b

rit-ipv4-id         : 0x0             ipv4-tunnel-encap   : 0x0

rit-mpls-rw         : 0x0             ml2-ptr             : 0x0

ml3-ptr             : 0x0             mark                : 0x0

result-cap3         : 0x0             di1-v5-delta-length : 0x0

di1-v5-delta-length-plus: 0x0             di1-v4-delta-length : 0x0

di1-v4-delta-length-plus: 0x0             di2-delta-length    : 0x0

di2-delta-length-plus: 0x0             ml2-delta-length    : 0x0

ml2-delta-length-plus: 0x0             ml3-delta-length    : 0x0

ml3-delta-length-plus: 0x0             s-vector            : 0x0

lcpu-ff-valid       : 0x0             sup-di-vqi          : 0x0

erspan-term-index-dir: 0x0             erspan-buffer-check : 0x0

l2-tunnel-decapped  : 0x0             l3-delta-length     : 0x0

rit-crc16-valid     : 0x1             rit-crc16           : 0xf57b

vntag-p             : 0x0             frr-recirc          : 0x0

ingress-lif         : 0x1             earl-proxy-vld      : 0x0

md-di-vld           : 0x0             rc                  : 0x0

segment-id-valid    : 0x0             ttl-out             : 0xfe

ttl-mid             : 0xfe            tos-out             : 0x0

tos-in              : 0x0             orig-vlan1          : 0x0

vlan1               : 0x0             source-peer-id      : 0x0

final-ignore-qoso   : 0x0             port-id             : 0x0

cr-type             : 0x1             pup-packet          : 0x0

bpdu                : 0x0             vdc                 : 0x0

traceroute          : 0x0             de                  : 0x0

cos                 : 0x0             inner-drop-eligibility: 0x0

inner-cos           : 0x0             acos                : 0x0

di-ltl-index        : 0x50            l3-multicast-di     : 0x50

source-index        : 0xa2c           vlan                : 0x0

index-direct        : 0x0             di1-valid           : 0x1

vqi                 : 0x50            di2-valid           : 0x0

v5-fpoe-idx         : 0x0             di2-fpoe-idx        : 0x0

l3-multicast-v5     : 0x0             dft                 : 0x0

dfst                : 0x0             l3-learning-ff      : 0x0

result-rbh          : 0xd0            di2-cr-type         : 0x0

result-2            : 0x1             dtag-ftag           : 0x0

dtag-ttl            : 0x20            mac-in-mac-op       : 0x0

dvif                : 0x0             result-cap1         : 0x0

result-cap2         : 0x0             erspan-term         : 0x0

erspan-decap        : 0x0             dont-learn          : 0x0

routed-frame        : 0x1             copy-cause          : 0x0

l2-copy-cause       : 0x0             l3-rit-ptr          : 0x5b

sg-tag              : 0x0             trill-nh-id         : 0x0

ttl-in              : 0xfe            fc-up               : 0x0

up-did              : 0x0             did                 : 0xe4c722

up-sid              : 0x0             sid                 : 0x10a144

shim-l2-tunnel-encap: 0x0             shim-ls-hash        : 0x8

shim-rc             : 0x0             shim-lif            : 0x1

shim-replication-pkt: 0x0             shim-router-mac     : 0x1

shim-mark-enable    : 0x0             shim-qos-group-id   : 0x0

shim-destination-table-index: 0x5b            shim-acos-preserve  : 0x0

mim-destination-mac-address : 0000.0000.0000

mim-source-mac-address : 0000.0000.0000

7. Überprüfen Sie den Zielindex und den Quellindex auf der Seite Sup:

N7K1# show system  internal pixm info ltl 0xa2c

PC_TYPE    PORT    LTL      RES_ID       LTL_FLAG      CB_FLAG      MEMB_CNT

------------------------------------------------------------------------------

Normal    Po1     0x0a2c    0x16000000   0x00000000    0x00000002   2

Member rbh rbh_cnt

Eth3/2   0x000000f0   0x04

Eth3/1   0x0000000f   0x04

CBL Check States: Ingress: Enabled; Egress: Enabled

VLAN| BD| BD-St              | CBL St & Direction:

--------------------------------------------------

1 | 0x15 | INCLUDE_IF_IN_BD  | FORWARDING (Both)

10 | 0x19 | INCLUDE_IF_IN_BD  | FORWARDING (Both)

Member info

------------------

Type            LTL

---------------------------------

PORT_CHANNEL   Po1

FLOOD_W_FPOE   0x8019

FLOOD_W_FPOE   0x8015

N7K1# show system  internal pixm info ltl 0x50

0x0050 is in DCE/FC pool

Member info

------------------

Type            LTL

---------------------------------

PHY_PORT      Eth3/5
Diese Ausgabe bestätigt, dass das Paket auf Port-Channel 1 (Po1) empfangen und über Eth3/5 weitergeleitet wurde.

8. Überprüfen Sie die lokale Ziellogik (LTL) des Moduls auf korrekte Programmierung:

module-3# show system  internal pixmc info ltl-cb ltl 0xa2c

ltl |ltl_type|if_index|lc_type| vdc |v4_fpoe|v5_fpoe| base_fpoe_idx | flag

0x0a2c | 4    | Po1    |   2   |  2  | 0x00  |  0x00 |    0x0000     | 0x0

, local ports:

VDCs the entry is part of:

LTL HW programming info

.......................

----------------------------------------------------

|Index | ec |drop|span_vec|SOM|ucr_fab|

|--------------------------------------------------

|[ a2c]|   1|   0|      0|  0|      0|

|  RBH    |   VQI |   PS(INST:LPOE)

|----------------------------------

0,       40      0 :  1

1,       40      0 :  1

2,       40      0 :  1

3,       40      0 :  1

4,       44      0 : 10

5,       44      0 : 10

6,       44      0 : 10

7,       44      0 : 10

8,        0      0 :  1

9,        0      0 :  1

a,        0      0 :  1

b,        0      0 :  1

c,        0      0 : 10

d,        0      0 : 10

e,        0      0 : 10

f,        0      0 : 10

module-3# show system  internal pixmc info ltl-cb ltl 0x50

ltl |ltl_type|if_index|lc_type| vdc |v4_fpoe | v5_fpoe| base_fpoe_idx | flag

0x0050 |  5  |Eth3/5  |   2   |  2  |  0x00  |  0x00  |    0x0000     | 0x0

, local ports:

VDCs the entry is part of:

LTL HW programming info

.......................

----------------------------------------------------

|Index | ec |drop|span_vec|SOM|ucr_fab|

|--------------------------------------------------

|[  50]|   1|   0|      0|  0|      0|

|  RBH    |  VQI |       PS

|----------------------------

ALL RBH|      50 |     2  :    1

9. Erfassen Sie das ELAM-Paket beim Ausgang. Um das Paket zu erfassen, senden Sie eine Ping-Antwort von der IP-Adresse 192.168.13.3 an 192.168.12.2. Sie müssen die Erfassung mit dem Egress-Schlüsselwort auf den Port-Channel-1-Schnittstellen (e3/1-2) festlegen. Die Schnittstellen gehören zu Instanz 0, wie bereits beschrieben.

N7K1# att mo 3

Attaching to module 3 ...

To exit type 'exit', to abort type '$.'

module-3# el asic flanker instance 0

module-3(fln-elam)# layer2

module-3(fln-l2-elam)# trigger dbus ipv4 egress if source-ipv4-address 192.168.13.3

destination-ipv4-address 192.168.12.2

module-3(fln-l2-elam)# trigger rbus egress if trig

module-3(fln-l2-elam)# status

ELAM Slot 3 instance 0: L2 DBUS Configuration: trigger dbus ipv4 egress if

source-ipv4-address 192.168.13.3 destination-ipv4-address 192.168.12.2

L2 DBUS: Configured

ELAM Slot 3 instance 0: L2 RBUS Configuration: trigger rbus egress if trig

L2 RBUS: Configured

module-3(fln-l2-elam)# start

module-3(fln-l2-elam)# status

ELAM Slot 3 instance 0: L2 DBUS Configuration: trigger dbus ipv4 egress if

source-ipv4-address 192.168.13.3 destination-ipv4-address 192.168.12.2

L2 DBUS: Armed

ELAM Slot 3 instance 0: L2 RBUS Configuration: trigger rbus egress if trig

L2 RBUS: Armed

module-3(fln-l2-elam)# status

ELAM Slot 3 instance 0: L2 DBUS Configuration: trigger dbus ipv4 egress if

source-ipv4-address 192.168.13.3 destination-ipv4-address 192.168.12.2

L2 DBUS: Triggered

ELAM Slot 3 instance 0: L2 RBUS Configuration: trigger rbus egress if trig

L2 RBUS: Triggered

module-3(fln-l2-elam)#

module-3(fln-l2-elam)# show dbus | in seq

sequence-number     : 0x8d            vl      : 0x3

!--- The sequence number is the same.

module-3(fln-l2-elam)# show rbus | in seq

vl                  : 0x0       sequence-number     : 0x8d

module-3(fln-l2-elam)# show dbus

cp = 0x1007db4c, buf = 0x1007db4c, end = 0x10089e9c

--------------------------------------------------------------------

Flanker Instance 00 - Capture Buffer On L2 DBUS:

Status(0x0102), TriggerWord(0x000), SampleStored(0x005),CaptureBufferPointer(0x005)

is_l2_egress: 0x0000, data_size: 0x023

[000]:   48c22000 08210000 40020800 0cc01414 5800a000 00001a40 01030000 00000000

00000000 00000000 003931c8 842850f9 31c88428 50800000 02358000 00000000 00000000

00000000 00000000 00000000 00000000 00005000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00605406 81e05406 0100008f e0054600 00000000

Printing packet 0

--------------------------------------------------------------------

L2 DBUS PRS MLH IPV4

--------------------------------------------------------------------

label-count         : 0x0             mc                  : 0x0

null-label-valid    : 0x0             null-label-exp      : 0x0

null-label-ttl      : 0x0             lbl0-vld            : 0x0

lbl0-eos            : 0x0             lbl0-lbl            : 0x0

lbl0-exp            : 0x0             lbl0-ttl            : 0x0

lbl1-exp            : 0x0             lbl1-ttl            : 0x0

ipv4                : 0x0             ipv6                : 0x0

l4-protocol         : 0x1             df                  : 0x0

mf                  : 0x0             frag                : 0x0

ttl                 : 0xfe            l3-packet-length    : 0x54

option              : 0x0             tos                 : 0x0

sup-eid             : 0x0             header-type         : 0x1

error               : 0x0             redirect            : 0x0

port-id             : 0x1             last-ethertype      : 0x800

l2-frame-type       : 0x0             da-type             : 0x0

packet-type         : 0x1             l2-length-check     : 0x0

ip-da-multicast     : 0x0             ip-multicast        : 0x0

ip-multicast-control: 0x0             ids-check-fail      : 0x0

traceroute          : 0x0             outer-cos           : 0x0

inner-cos           : 0x0             vqi-valid           : 0x1

vqi                 : 0x40            packet-length       : 0x66

vlan                : 0xa             destination-index   : 0xa2c

source-index        : 0x50            bundle-port         : 0x0

acos                : 0x0             outer-drop-eligibility: 0x0

inner-drop-eligibility: 0x0             sg-tag              : 0x0

rbh                 : 0xd2            vsl-num             : 0x0

inband-flow-creation-deletion: 0x0             ignore-qoso         : 0x0

ignore-qosi         : 0x0             ignore-aclo         : 0x0

ignore-acli         : 0x0             index-direct        : 0x0

no-stats            : 0x0             dont-forward        : 0x0

notify-index-learn  : 0x1             notify-new-learn    : 0x0

disable-new-learn   : 0x0             disable-index-learn : 0x0

dont-learn          : 0x0             bpdu                : 0x0

ff                  : 0x0             rf                  : 0x1

ccc                 : 0x4             l2                  : 0x0

rdt                 : 0x0             dft                 : 0x0

dfst                : 0x0             status-ce-1q        : 0x0

status-is-1q        : 0x0             trill-encap         : 0x0

mim-valid           : 0x0             dtag-ttl            : 0x0

dtag-ftag           : 0x0             valid               : 0x1

erspan-kpa-valid    : 0x0             recir-shim-vxlan-src-peer-id: 0x0

vn-valid            : 0x0             source-vif          : 0x0

destination-vif     : 0x0             vn-p                : 0x0

sequence-number     : 0x8d            vl                  : 0x3

inner-de-valid      : 0x0             de-cfi              : 0x0

second-inner-cos    : 0x0             tunnel-type         : 0x0

shim-valid          : 0x0

segment-id-valid    : 0x0             copp                : 0x0

dti-type-vpnid      : 0x0             segment-id          : 0x0

ib-length-bundle    : 0x0             mlh-type            : 0x5

ulh-type            : 0x6

source-ipv4-address: 192.168.13.3

destination-ipv4-address: 192.168.12.2

mim-destination-mac-address : 0000.0000.0000

mim-source-mac-address : 0000.0000.0000

destination-mac-address : e4c7.2210.a143

source-mac-address : e4c7.2210.a142
Wie gezeigt, sind sowohl der Quell- als auch der Zielindex Teil des DBUS (anders als bei der Eingangserfassung).

module-3(fln-l2-elam)# show rbus

cp = 0x100a2548, buf = 0x100a2548, end = 0x100ae898

--------------------------------------------------------------------

Flanker Instance 00 - Capture Buffer On L2 RBUS:

Status(0x1102), TriggerWord(0x000), SampleStored(0x008),CaptureBufferPointer(0x000)

is_l2_egress: 0x0001, data_size: 0x018

[000]:   0048ea00 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 0c000000 00000000 04014008 00005000 00000000

00000726 3910850a 1b931c88 42850800 00000000 00000000 0000008d

Printing packet 0

--------------------------------------------------------------------

L2 RBUS EGRESS CONTENT

--------------------------------------------------------------------

pad                 : 0x0             valid               : 0x1

trig                : 0x1             reserved            : 0x0

vn-tag-p            : 0x0             cbl-vlan-valid      : 0x0

vft-hop-count       : 0x0             vft-vsan            : 0x0

vft-up              : 0x0             vft-valid           : 0x0

copp                : 0x0             segment-id-valid    : 0x0

segment-id-23       : 0x0             vsl-num             : 0x0

inner-cos           : 0x0             inner-drop-eligibility: 0x0

cos                 : 0x0             drop-eligibility    : 0x0

dce-mode            : 0x0             flood-to-bd         : 0x0

pt-bit-en           : 0x1             cpu-port            : 0x0

vlan-id             : 0xa             ip-tos              : 0x0

result-rbh          : 0x1             met-ptr             : 0x2000

packet-type         : 0x1             sg-tag              : 0x0

dtag-ftag           : 0x0             vdc                 : 0x0

vn-tag-src-vif      : 0x0             vn-tag-dst-vif      : 0x0

vn-tag-l            : 0x0             dc3-tr              : 0x0

vl                  : 0x0             sequence-number     : 0x8d

destination-mac-valid: 0x0

source-mac-valid: 0x0

mim-destination-mac-address : 0000.0000.0000

destination-mac-address : e4c7.2210.a143

source-mac-address : e4c7.2210.a142

mim-source-mac-address : 0000.0000.0000
Die Quell- und Ziel-IP-Adressen sind korrekt, wie sie nach der ELAM-Paketerfassung dekodiert wurden. Im Vergleich zum Eingangs-ELAM ist die Richtung jedoch definitiv umgekehrt, da der Rückverkehr erfasst wird.

10. Überprüfen Sie die Color-Based Logic (CBL) für Modul 3 des Port-Channels 1 auf N7K1, um festzustellen, ob VLAN 10 den Datenverkehr darüber weiterleitet. Das CBL ist eine auf physischen Schnittstellen basierende Logik. Daher sollten Sie die Nummer der Mitglieds-Schnittstelle für Port-Channel 1 auf N7K1 und nicht die Nummer des Port-Channels eingeben. In der nächsten Ausgabe wird VLAN 10 wie erwartet weitergeleitet.

Das CBL wird verwendet, um den STP-Status (Spanning Tree Protocol) eines Ports in der Hardware zu bestimmen. Es ist möglich, dass die Schnittstelle die Weiterleitung anzeigt, wenn Sie das STP für ein VLAN im Sup überprüfen, das Modul jedoch den Datenverkehr blockiert.
Hinweis: Sie müssen die CBL für beide Mitgliedsschnittstellen (e3/1 und e3/2) einzeln prüfen.

module-3# show hardware internal mac  port 1 table cbl vlan

--------------------------------------------------------------------------------

|                                  INGRESS                                     |

| Disabled State   | 0,2-9,11-4031,4036-4095                                   |

| Forwarding State | 1,10,4032-4035                                            |

| Blocked State    |                                                           |

| Learning State   |                                                           |

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

|                                  EGRESS                                      |

| Disabled State   | 0,2-9,11-4031,4036-4095                                   |

| Forwarding State | 1,10,4032-4035                                            |

| Blocked State    |                                                           |

| Learning State   |                                                           |

--------------------------------------------------------------------------------

Hinweis: Der vorherige Befehl bezieht sich auf Port-Channel 1 (Modul 3 befindet sich auf e3/1).

module-3# show hardware internal mac  port 2 table cbl vlan

--------------------------------------------------------------------------------

|                                  INGRESS                                     |

| Disabled State   | 0,2-9,11-4031,4036-4095                                   |

| Forwarding State | 1,10,4032-4035                                            |

| Blocked State    |                                                           |

| Learning State   |                                                           |

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

|                                  EGRESS                                      |

| Disabled State   | 0,2-9,11-4031,4036-4095                                   |

| Forwarding State | 1,10,4032-4035                                            |

| Blocked State    |                                                           |

| Learning State   |                                                           |

--------------------------------------------------------------------------------

Hinweis: Ebenso überprüft dieser Befehl die CBL für Port-Channel 2 (e3/2).

Fehlerbehebung bei ELAM auf F3-Modulen mit Breakout-Kabeln

Das ELAM-Verfahren für ein Modul der F3-Serie bei Anschluss eines Breakout-Kabels unterscheidet sich nicht von den ELAM-Verfahren an einem regulären Modulport. Bei der Überprüfung des Port Index Managers (PIXM) beim Versuch, den Index in die Nummer an der Vorderseite umzuwandeln, gibt es jedoch einige Änderungen. In diesem Fall werden die Schnittstellen aus dem Breakout-Kabel empfangen.

Die folgende Topologie wird für die Beispiele in diesem Abschnitt verwendet:

+------------+   BreakOut Cable     +-----------+

|            |      e3/8/1-4   te1/1|           |

|            |          +-----------+           |

|            |e3/8      |       1/2 |  4500-X   |

|  N7K3      +----------------------+           |

|            |  Po2     |       1/3 |           |

|            |          +-----------+           |

|            |          |       1/4 |           |

+------------+          +-----------+-----------+

Vlan20 SVI                        Vlan20 SVI

IP add 192.168.20.3                 IP add 192.168.20.1

In diesem Beispiel ist ein Breakout-Kabel an die Ethernet-Schnittstelle 3/8 angeschlossen, die den 40-Gigabit-Port in vier 10-Gigabit-Ports unterteilt. Die erforderliche Konfiguration ist in diesem Abschnitt als Referenz enthalten.

N7K3(config)# interface breakout module 3 port 8 map 10g-4x

N7K3(config)# show interface brief

---SNIP---

---------------------------------------------------------------

Ethernet      VLAN    Type Mode   Status  Reason  Speed   Port

Interface                                                 Ch #

---------------------------------------------------------------

Eth3/7        --      eth  routed up      none    40G(D)  --

Eth3/8/1      1       eth  trunk  up      none    10G(D)  2

!--- From 3/8/1 to 3/8/4.

Eth3/8/2      1       eth  trunk  up      none    10G(D)  2

Eth3/8/3      1       eth  trunk  up      none    10G(D)  2

Eth3/8/4      1       eth  trunk  up      none    10G(D)  2

In der vorherigen Ausgabe sehen Sie, dass die Ethernet-Schnittstelle 3/7 immer noch ein 40-Gigabit-Port ist. Die Ethernet-Schnittstelle 3/8 ist jetzt jedoch in vier 10-Gigabit-Ports unterteilt, die einzeln konfiguriert werden können:

N7K3# show run interface e3/8/1 - 4

!Command: show running-config interface Ethernet3/8/1-4

!Time: Mon May  4 01:46:28 2015

version 6.2(8a)

interface Ethernet3/8/1

switchport

switchport mode trunk

switchport trunk allowed vlan 10,20

no shutdown

interface Ethernet3/8/2

switchport

switchport mode trunk

switchport trunk allowed vlan 30,40

no shutdown

interface Ethernet3/8/3

switchport

switchport mode trunk

switchport trunk allowed vlan 50

no shutdown

interface Ethernet3/8/4

switchport

switchport mode trunk

no shutdown

Beginnen Sie mit der Paketerfassung von der N7K3 Switched Virtual Interface (SVI) 20-IP-Adresse (192.168.20.3) zur 4500 SVI 20-IP-Adresse (192.168.20.1). Das Paket wird beim Ausgang zum 4500 auf dem Nexus 7000 erfasst, und die Antwort wird von 4500 an das N7K3 gesendet.

Wie im vorherigen Abschnitt beschrieben, müssen Sie mit der Flankerinstanz vertraut sein, um den Trigger anzuwenden. Diese Ausgabe zeigt den Anhang von Modul 3:

N7K3# attach module 3

Attaching to module 3 ...

To exit type 'exit', to abort type '$.'

module-3# show hardware internal dev

dev-port-map   dev-version

module-3# show hardware internal dev-port-map

--------------------------------------------------------------

CARD_TYPE:       12 port 40G

>Front Panel ports:12

--------------------------------------------------------------

Device name             Dev role              Abbr num_inst:

--------------------------------------------------------------

> Flanker Eth Mac Driver DEV_ETHERNET_MAC       MAC_0  6

> Flanker Fwd Driver     DEV_LAYER_2_LOOKUP     L2LKP  6

> Flanker Xbar Driver    DEV_XBAR_INTF          XBAR_INTF 6

> Flanker Queue Driver   DEV_QUEUEING           QUEUE  6

> Sacramento Xbar ASIC   DEV_SWITCH_FABRIC      SWICHF 1

> Flanker L3 Driver      DEV_LAYER_3_LOOKUP     L3LKP  6

> EDC                    DEV_PHY                PHYS   2

+-----------------------------------------------------------------------+

+----------------+++FRONT PANEL PORT TO ASIC INSTANCE MAP+++------------+

+-----------------------------------------------------------------------+

FP port |  PHYS | MAC_0 | L2LKP | L3LKP | QUEUE |SWICHF

1               0       0       0       0       0

2               0       0       0       0       0

3               1       1       1       1       0

4               1       1       1       1       0

5       0       2       2       2       2       0

6       0       2       2       2       2       0

7       1       3       3       3       3       0

8       1       3       3       3       3       0

!--- The port 8 L2LKP column shows a value of 3.

9               4       4       4       4       0

10              4       4       4       4       0

11              5       5       5       5       0

12              5       5       5       5       0

+-----------------------------------------------------------------------+

+-----------------------------------------------------------------------+

In dieser Ausgabe befindet sich Port 8 auf der Flanker-Instanz 3. Nachdem Sie die Instanz kennen, können Sie den Trigger über die Quell- und Ziel-IP-Adressen platzieren. Da Sie die Ping-Anfrage von N7K3 bis 4500 erfassen, handelt es sich um eine ELAM für den Ausgang.

module-3# elam asic flanker instance 3

module-3(fln-elam)# layer2

module-3(fln-l2-elam)# trigger dbus  ipv4 egress if source-ipv4-address 192.168.20.3

destination-ipv4-address 192.168.20.1

module-3(fln-l2-elam)# trigger  rbus egress if trig

module-3(fln-l2-elam)# status

ELAM Slot 3 instance 3: L2 DBUS Configuration: trigger dbus ipv4 egress if

source-ipv4-address 192.168.20.3 destination-ipv4-address 192.168.20.1

L2 DBUS: Configured

ELAM Slot 3 instance 3: L2 RBUS Configuration: trigger rbus egress if trig

L2 RBUS: Configured

module-3(fln-l2-elam)# start

module-3(fln-l2-elam)# status

ELAM Slot 3 instance 3: L2 DBUS Configuration: trigger dbus ipv4 egress if

source-ipv4-address 192.168.20.3 destination-ipv4-address 192.168.20.1

L2 DBUS: Armed

ELAM Slot 3 instance 3: L2 RBUS Configuration: trigger rbus egress if trig

L2 RBUS: Armed

Der Ping-Befehl wird von N7K3 bis 4500 initiiert:

N7K3# ping 192.168.20.1

PING 192.168.20.1 (192.168.20.1): 56 data bytes

36 bytes from 192.168.20.3: Destination Host Unreachable

Request 0 timed out

64 bytes from 192.168.20.1: icmp_seq=1 ttl=254 time=6.49 ms

64 bytes from 192.168.20.1: icmp_seq=2 ttl=254 time=6.518 ms

64 bytes from 192.168.20.1: icmp_seq=3 ttl=254 time=7.936 ms

64 bytes from 192.168.20.1: icmp_seq=4 ttl=254 time=7.945 ms

--- 192.168.20.1 ping statistics ---

5 packets transmitted, 4 packets received, 20.00% packet loss

round-trip min/avg/max = 6.49/7.222/7.945 ms

Der ELAM-Status lautet:

module-3(fln-l2-elam)# status

ELAM Slot 3 instance 3: L2 DBUS Configuration: trigger dbus ipv4 egress if

source-ipv4-address 192.168.20.3 destination-ipv4-address 192.168.20.1

L2 DBUS: Triggered

ELAM Slot 3 instance 3: L2 RBUS Configuration: trigger rbus egress if trig

L2 RBUS: Triggered

Überprüfen Sie, ob die Sequenznummern identisch sind:

module-3(fln-l2-elam)# show dbus | in seq

sequence-number     : 0x27            vl                  : 0x3

module-3(fln-l2-elam)# show rbus | in seq

vl                  : 0x0             sequence-number     : 0x27

Die Sequenznummern sind identisch. Jetzt können Sie die DBUS- und RBUS-Informationen überprüfen:

module-3(fln-l2-elam)# show dbus

cp = 0x1011033c, buf = 0x1011033c, end = 0x1011c68c

--------------------------------------------------------------------

Flanker Instance 03 - Capture Buffer On L2 DBUS:

Status(0x0102), TriggerWord(0x000), SampleStored(0x004),CaptureBufferPointer(0x004)

is_l2_egress: 0x0000, data_size: 0x023

[000]:   4c1ea000 20a10000 40021040 0cc02801 04080000 00000000 08100000 00000000

00000000 00000000 003c1fc1 8732dff9 31c88428 51000000 009d8000 00000000 00000000

00000000 00000000 00000000 00000000 00005000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 0060540a 01e0540a 0080008f f0054608 00000000

Printing packet 0

--------------------------------------------------------------------

L2 DBUS PRS MLH IPV4

--------------------------------------------------------------------

label-count         : 0x0             mc                  : 0x0

null-label-valid    : 0x0             null-label-exp      : 0x0

null-label-ttl      : 0x0             lbl0-vld            : 0x0

lbl0-eos            : 0x0             lbl0-lbl            : 0x0

lbl0-exp            : 0x0             lbl0-ttl            : 0x0

lbl1-exp            : 0x0             lbl1-ttl            : 0x0

ipv4                : 0x0             ipv6                : 0x0

l4-protocol         : 0x1             df                  : 0x0

mf                  : 0x0             frag                : 0x0

ttl                 : 0xff            l3-packet-length    : 0x54

option              : 0x0             tos                 : 0x0

sup-eid             : 0x1             header-type         : 0x0

error               : 0x0             redirect            : 0x0

port-id             : 0x5             last-ethertype      : 0x800

l2-frame-type       : 0x0             da-type             : 0x0

packet-type         : 0x1             l2-length-check     : 0x0

ip-da-multicast     : 0x0             ip-multicast        : 0x0

ip-multicast-control: 0x0             ids-check-fail      : 0x0

traceroute          : 0x0             outer-cos           : 0x0

inner-cos           : 0x0             vqi-valid           : 0x1

vqi                 : 0x82            packet-length       : 0x66

vlan                : 0x14            destination-index   : 0x82

source-index        : 0x400           bundle-port         : 0x0

acos                : 0x0             outer-drop-eligibility: 0x0

inner-drop-eligibility: 0x0             sg-tag              : 0x0

rbh                 : 0x0             vsl-num             : 0x0

inband-flow-creation-deletion: 0x0             ignore-qoso         : 0x0

ignore-qosi         : 0x0             ignore-aclo         : 0x0

ignore-acli         : 0x0             index-direct        : 0x1

no-stats            : 0x0             dont-forward        : 0x0

notify-index-learn  : 0x0             notify-new-learn    : 0x0

disable-new-learn   : 0x0             disable-index-learn : 0x0

dont-learn          : 0x1             bpdu                : 0x0

ff                  : 0x0             rf                  : 0x0

ccc                 : 0x0             l2                  : 0x0

rdt                 : 0x0             dft                 : 0x0

dfst                : 0x0             status-ce-1q        : 0x0

status-is-1q        : 0x0             trill-encap         : 0x0

mim-valid           : 0x0             dtag-ttl            : 0x0

dtag-ftag           : 0x0             valid               : 0x1

erspan-kpa-valid    : 0x0             recir-shim-vxlan-src-peer-id: 0x0

vn-valid            : 0x0             source-vif          : 0x0

destination-vif     : 0x0             vn-p                : 0x0

sequence-number     : 0x27            vl                  : 0x3

inner-de-valid      : 0x0             de-cfi              : 0x0

second-inner-cos    : 0x0             tunnel-type         : 0x0

shim-valid          : 0x0

segment-id-valid    : 0x0             copp                : 0x0

dti-type-vpnid      : 0x0             segment-id          : 0x0

ib-length-bundle    : 0x0             mlh-type            : 0x5

ulh-type            : 0x6

source-ipv4-address: 192.168.20.3

destination-ipv4-address: 192.168.20.1

mim-destination-mac-address : 0000.0000.0000

mim-source-mac-address : 0000.0000.0000

destination-mac-address : f07f.061c.cb7f

source-mac-address : e4c7.2210.a144

module-3(fln-l2-elam)#

module-3(fln-l2-elam)#

module-3(fln-l2-elam)#

module-3(fln-l2-elam)# show rbus

cp = 0x10134d38, buf = 0x10134d38, end = 0x10141088

--------------------------------------------------------------------

Flanker Instance 03 - Capture Buffer On L2 RBUS:

Status(0x1102), TriggerWord(0x000), SampleStored(0x008),CaptureBufferPointer(0x000)

is_l2_egress: 0x0001, data_size: 0x018

[000]:   004c4780 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 0c001000 00000000 80028010 00009000 00000000

00000783 f830e65b fb931c88 42851000 00000000 00000000 00000027

Printing packet 0

--------------------------------------------------------------------

L2 RBUS EGRESS CONTENT

--------------------------------------------------------------------

pad                 : 0x0             valid               : 0x1

trig                : 0x1             reserved            : 0x0

vn-tag-p            : 0x1             cbl-vlan-valid      : 0x0

vft-hop-count       : 0x0             vft-vsan            : 0x0

vft-up              : 0x0             vft-valid           : 0x0

copp                : 0x0             segment-id-valid    : 0x0

segment-id-23       : 0x0             vsl-num             : 0x0

inner-cos           : 0x0             inner-drop-eligibility: 0x0

cos                 : 0x0             drop-eligibility    : 0x0

dce-mode            : 0x0             flood-to-bd         : 0x0

pt-bit-en           : 0x20            cpu-port            : 0x0

vlan-id             : 0x14            ip-tos              : 0x0

result-rbh          : 0x2             met-ptr             : 0x4000

packet-type         : 0x1             sg-tag              : 0x0

dtag-ftag           : 0x0             vdc                 : 0x0

vn-tag-src-vif      : 0x0             vn-tag-dst-vif      : 0x0

vn-tag-l            : 0x0             dc3-tr              : 0x0

vl                  : 0x0             sequence-number     : 0x27

destination-mac-valid: 0x0

source-mac-valid: 0x0

mim-destination-mac-address : 0000.0000.0000

destination-mac-address : f07f.061c.cb7f

source-mac-address : e4c7.2210.a144

mim-source-mac-address : 0000.0000.0000

Konvertieren Sie die Ziel- und Quellindizes in die Ports auf der Vorderseite, um den Fluss zu bestätigen:

N7K3# show system  internal pixm info ltl 0x400

0x0400 is in SUP In-band LTL range

Diese Ausgabe zeigt den Quellindex an. Sie wissen, dass es korrekt ist, weil die Pings von Sup zu N7K3 kommen. Die nächste Ausgabe zeigt die Ausgangsschnittstelle (e3/8/1), die eine der beiden Schnittstellen auf dem N7K ist, die VLAN 20 zulässt. Die andere Schnittstelle ist e3/8/4, die aufgrund des STP auf 4500 blockiert wird.

N7K3# show system  internal pixm info ltl 0x82

0x0082 is in DCE/FC pool

Member info

------------------

Type            LTL

---------------------------------

PHY_PORT       Eth3/8/1

FLOOD_W_FPOE   0x8039

FLOOD_W_FPOE   0x803f

Überprüfen Sie die CBL für die Ports, die mit dem Breakout-Kabel am N7K erstellt wurden. Um die CBL zu überprüfen, müssen Sie über die Hardware-Portnummern aller neu gebildeten Ports verfügen.

Hinweis: Die Schnittstelle e3/8 ist auf dem Switch nicht vorhanden. Nur die neu formatierten Ports werden angezeigt.

N7K3# show  interface e3/8

^

% Incomplete command at '^' marker.

N7K3#

Da das Breakout-Kabel verwendet wird und die e3/8-Schnittstelle auf dem Switch nicht vorhanden ist, ändert sich die Berechnung, die zum Abrufen der Hardware-Portnummer verwendet wird. Für jedes Modul, das Breakout unterstützt, ist die Nummerierung der Hardwareports unterschiedlich. Sie sollten zuerst überprüfen, ob ein Port Breakout unterstützt:

N7K3# show int e3/7 capabilities

Ethernet3/7

Model:                 N7K-F312FQ-25

Type (SFP capable):    QSFP-40G-CR4

Speed:                 10000,40000

Duplex:                full

---SNIP---

PFC capable:           yes

Breakout capable:      yes

Wie gezeigt unterstützt Port e3/7 Breakout, d. h. seine Bandbreite kann in vier 10-Gigabit-Ports aufgeteilt werden. Ähnlich können auch andere Module der F3-Serie mit 100-Gigabit-Ports in zehn Ports mit jeweils 10-Gigabit oder drei Ports mit 40-Gigabit-Ethernet mit Überbelegung aufgeteilt werden. Dies hängt vom Modul ab.

Da das Modul der F3-Serie in diesem Beispiel über 40-Gigabit-Ports verfügt und jeder Port in vier Ports aufgeteilt werden kann, sind die Hardware-Portnummern für jeden Port 0-3, 4-7, 8-11...40-43, 44-47 auf einer nullbasierten Skala. Wenn Sie ein Breakout-Kabel an einem Port für das erste Beispiel haben, lautet die Nummer des Hardware-Ports 0, 1, 2 und 3. Wenn Sie kein Breakout-Kabel haben, ist die Nummer des Hardware-Ports 0 (1, 2 und 3 sind nicht aktiv).

Da es sich beim übergeordneten Port um e3/8 handelt, beträgt die Hardware-Portnummer 28, wenn er ohne das Breakout-Kabel verwendet wird, und bei Verwendung mit dem Breakout-Kabel 28, 29, 30 und 31. Diese Befehlsausgabe zeigt die aktiven Hardwareports (null-basiert) an:

N7K3# show system internal ifindex info mod 3

Init DB dump follows:

module_num_bitmask = 0x3ffff

Slot:3, Proc:1, breakout_factor:0, sw_card_id:0, active_cfg_ports:, broken_fp_po

rts:

Slot:3, Proc:2, breakout_factor:4, sw_card_id:155, active_cfg_ports:0,4,8,12,16,

20,24,28-32,36,40,44, broken_fp_ports:28

Lookup DB dump follows:

Slot:3, breakout_factor:4

Die beschädigte Port-Hardware-Portnummer ist 28, die jetzt in vier (28-32) unterteilt ist. Sie können nun Modul 3 hinzufügen und die CBL in der Hardware überprüfen:

N7K3# attach  module  3

Attaching to module 3 ...

To exit type 'exit', to abort type '$.'

module-3#

Das Modul der F3-Serie erwartet, dass die Portnummer entsprechend einer einseitigen Skala formatiert wird. Aus diesem Grund sollten Sie 29, 30, 31 und 32 eingeben:

module-3# show  hardware  internal mac  port  ?

<1-96>  Port number (1-based)

!--- This is context sensitive, so it helps to say the port number is 1-based.

Nachfolgend finden Sie die aktuelle Konfiguration für die Ethernet-Schnittstelle 3/8/1, um den VLAN-Weiterleitungsstatus zu überprüfen und zu bestätigen:

interface Ethernet3/8/1

switchport

switchport mode trunk

switchport trunk allowed vlan 10,20

no shutdown

module-3# show  hardware  internal mac  port 29  table  cbl vlan

--------------------------------------------------------------------------------

|                                  INGRESS                                     |

| Disabled State   | 0,2-9,11-19,21-4031,4036-4095                             |

| Forwarding State | 10,20,4032-4035                                           |

| Blocked State    | 1                                                         |

| Learning State   |                                                           |

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

|                                  EGRESS                                      |

| Disabled State   | 0,2-9,11-19,21-4031,4036-4095                             |

| Forwarding State | 10,20,4032-4035                                           |

| Blocked State    | 1                                                         |

| Learning State   |                                                           |

--------------------------------------------------------------------------------

Nachfolgend finden Sie die aktuelle Konfiguration für die Ethernet-Schnittstelle 3/8/2, um den VLAN-Weiterleitungsstatus zu überprüfen und zu bestätigen:

interface Ethernet3/8/2

switchport

switchport mode trunk

switchport trunk allowed vlan 30,40

no shutdown

module-3# show  hardware  internal mac  port 30  table  cbl vlan

--------------------------------------------------------------------------------

|                                  INGRESS                                     |

| Disabled State   | 0,2-29,31-39,41-4031,4036-4095                            |

| Forwarding State | 30,40,4032-4035                                           |

| Blocked State    | 1                                                         |

| Learning State   |                                                           |

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

|                                  EGRESS                                      |

| Disabled State   | 0,2-29,31-39,41-4031,4036-4095                            |

| Forwarding State | 30,40,4032-4035                                           |

| Blocked State    | 1                                                         |

| Learning State   |                                                           |

--------------------------------------------------------------------------------

Nachfolgend finden Sie die aktuelle Konfiguration für die Ethernet-Schnittstelle 3/8/3, um den VLAN-Weiterleitungsstatus zu überprüfen und zu bestätigen:

interface Ethernet3/8/3

switchport

switchport mode trunk

switchport trunk allowed vlan 50

no shutdown

module-3# show  hardware  internal mac  port 31  table  cbl vlan

--------------------------------------------------------------------------------

|                                  INGRESS                                     |

| Disabled State   | 0,2-49,51-4031,4036-4095                                  |

| Forwarding State | 50,4032-4035                                              |

| Blocked State    | 1                                                         |

| Learning State   |                                                           |

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

|                                  EGRESS                                      |

| Disabled State   | 0,2-49,51-4031,4036-4095                                  |

| Forwarding State | 50,4032-4035                                              |

| Blocked State    | 1                                                         |

| Learning State   |                                                           |

--------------------------------------------------------------------------------

Nachfolgend finden Sie die aktuelle Konfiguration für die Ethernet-Schnittstelle 3/8/4, um den VLAN-Weiterleitungsstatus zu überprüfen und zu bestätigen (alle konfigurierten VLANs sind zulässig):

interface Ethernet3/8/4

switchport

switchport mode trunk

no shutdown

module-3# show  hardware  internal mac  port 32  table  cbl vlan

--------------------------------------------------------------------------------

|                                  INGRESS                                     |

| Disabled State   | 0,2-9,11-19,21-29,31-39,41-49,51-59,61-669,671-4031       |

| Disabled State   | 4036-4095                                                 |

| Forwarding State | 1,20,30,40,50,60,670,4032-4035                            |

| Blocked State    | 10                                                        |

| Learning State   |                                                           |

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

|                                  EGRESS                                      |

| Disabled State   | 0,2-9,11-19,21-29,31-39,41-49,51-59,61-669,671-4031       |

| Disabled State   | 4036-4095                                                 |

| Forwarding State | 1,20,30,40,50,60,670,4032-4035                            |

| Blocked State    | 10                                                        |

| Learning State   |                                                           |

--------------------------------------------------------------------------------

Die CBL zeigt an, dass die richtigen VLANs weitergeleitet werden.

Sie können den Befehl show hardware internal error module <module number> verwenden, um die Hardware-Portnummer abzurufen. Dieser Befehl ist nützlich, wenn Sie interne Verwerfen überprüfen müssen, die nicht in der Befehlsausgabe der Benutzeroberfläche x/y angezeigt werden. Hier ein Beispiel:

N7K2# show hardware internal errors module 3

---SNIP---

Instance:1

Cntr  Name                                          Value             Ports

----- ----                                          -----             -----

3836 igr rx pl: cbl drops                          0000000000000001  10 -

4636 igr rx pl: cbl drops                          0000000000000001  14 -

Instance:2

Cntr  Name                                          Value             Ports

----- ----                                          -----             -----

423 igr in upm: pkts with symbol/sequence error rcvd 0000000000000478  18 -

455 igr in upm: pkts with symbol/sequence error rcvd 0000000000000478  17 -

487 igr in upm: pkts with symbol/sequence error rcvd 0000000000000478  19 -

519 igr in upm: pkts with symbol/sequence error rcvd 0000000000000478  20 -

Instance:3

Cntr  Name                                          Value             Ports

----- ----                                          -----             -----

423 igr in upm: pkts with symbol/sequence error rcvd 0000000000000745  26 -

455 igr in upm: pkts with symbol/sequence error rcvd 0000000000000745  25 -

487 igr in upm: pkts with symbol/sequence error rcvd 0000000000000745  27 -

519 igr in upm: pkts with symbol/sequence error rcvd 0000000000000745  28 -

550 igr in upm: pkts rcvd, with RCODE violation   0000359810913821  30 -

551 igr in upm: pkts with symbol/sequence error rcvd 0000425092490108  30 -

552 igr in upm: pkts with error                   0000000000176136  30 -

582 igr in upm: pkts rcvd, with RCODE violation   0000000000292641  29 -

583 igr in upm: pkts with symbol/sequence error rcvd 0000000000114014  29 -

614 igr in upm: pkts rcvd, with RCODE violation   0000133362265995  31 -

615 igr in upm: pkts with symbol/sequence error rcvd 0000146701474013  31 -

616 igr in upm: pkts with error                   0000000000157479  31 -

646 igr in upm: pkts rcvd, with RCODE violation   0000000002160959  32 -

647 igr in upm: pkts with symbol/sequence error rcvd 0000000003722562  32 -

648 igr in upm: pkts with error                   0000000000000002  32 -