2015 年 11 月 26 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2002 年 10 月 1 日) | 英語版 (2015 年 4 月 22 日) | フィードバック


目次


概要

この文書は、show controller frfab queue および show controller tofab queue コマンド出力の解釈方法について説明しています。 また、これらの特別なキューに関連する、Cisco 12000 シリーズ インターネット ルータのベース アーキテクチャの詳しい概要についても示しています。

はじめに

表記法

ドキュメントの表記法の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

前提条件

このドキュメントに関する固有の要件はありません。

使用するコンポーネント

このドキュメントの情報は、次のハードウェアに基づくものです。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 対象のネットワークが実稼働中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。

背景説明

Cisco 12000 シリーズ インターネット ルータ上の Line Card(LC; ラインカード)にはそれぞれ、次の 2 種類のメモリが搭載されています。

この資料は 2 つのバンクに分けられるパケットメモリに専ら焦点を合わせます: ToFab および FrFab (からのファブリックの方におよびファブリック)。 ToFab メモリは、LC 上のいずれかのインターフェイスに到着し、ファブリックに向かうパケットのために使用されます。FrFab メモリは、ファブリック側から、LC 上のインターフェイスを出て行くパケットのために使用されます。

Tofab および Frfab キューは、Cisco 12000 シリーズ インターネット ルータでの ignored パケットのトラブルシューティングを効率的に行うために理解しなければならない、最も重要な概念です。 詳細については、「トラブルシューティング:Cisco 12000 シリーズ インターネット ルータでの ignored パケットとメモリ不足による廃棄」を参照してください。

注: 「ToFab」(ファブリックに向かう)と「Rx」(ルータで受信される)は同じことを 2 つの異なる用語で表現したものです。「FrFab」(ファブリックから来る)と「Tx」(ルータから送信される)も同様です。 たとえば、ToFab Buffer Management ASIC(BMA; バッファ管理 ASIC)は RxBMA とも呼ばれます。 この文書では、ToFab または FrFab を表記法として使用しますが、この文書以外では Rx または TX の名称が使用される場合があります。

パケット メモリへのアクセスは Buffer Management ASIC(BMA; バッファ管理 ASIC)を通じて行われます。 BMA はパケットのバッファリングとバッファ キュー管理機能をラインカードに提供します。 パケットはすべて BMA を 2 回通過します。1 回は入ってくるとき、もう 1 回は出て行くときです。 つまり、パケットは Physical Layer Interface Module(PLIM; 物理層インターフェイス モジュール)に到達し、SDRAM バッファでほんの短い時間待機した後、バッファから読み出されて Fabric Interface ASIC(FIA; ファブリック インターフェイス ASIC)モジュールに送られます。 ここでパケットはシスコ セルに分割されてスイッチ ファブリックに送信されます。 続いて、スイッチ ファブリックから送信されたシスコ セルが出力ラインカードのファブリック インターフェイス ASIC で受信されます。 それらは、および最終的に送出されてネットワーク再構成されましたり、SDRAM バッファに、そして PLIM に行きます。

バッファ分割アルゴリズム

Cisco IOS ソフトウェアには、SDRAM をさまざまなサイズのバッファに分割するバッファ分割アルゴリズムが実装されています。 GRP やその他のソースがラインカードに分割を指示し、それを受けてラインカードが分割を実行します。 カーブには異なる型があります。 たとえば、簡単 な カーブは同じサイズのバッファが含まれていて各プールが複雑 な カーブは異なるサイズの複数のプールを作成するが、同サイズのバッファのプールを作成します。

同じサイズのバッファはすべて 1 つのプールに関連付けられます。 Inter-Process Communication(IPC; プロセス間通信)に使用する際は必ず 1 つのプールが割り当てられます。 対応する Queue Static RAM(QSRAM)はそれぞれ、キューのヘッド、テール、長さ、長さのしきい値、SDRAM 内の対応するバッファ アドレス、および次のキュー要素によって更新されます。

次の一連の状況を通じて、ラインカードでのバッファ分割が行われます。

次の例の見てみて下さい:

Router#attach 1
Entering Console for 1 Port Packet Over SONET OC-48c/STM-16 in Slot: 1
Type "exit" to end this session


Press RETURN to get started!


LC-Slot1>enable
LC-Slot1#show controllers tofab queues
Carve information for ToFab buffers
SDRAM size: 268435456 bytes, address: 30000000, carve base: 30019100
268332800 bytes carve size,  4 SDRAM bank(s), 16384 bytes SDRAM
pagesize, 2 carve(s)
    max buffer data size 4544 bytes, min buffer data size 80 bytes
    262140/262140 buffers specified/carved
    240637152/240637152 bytes sum buffer sizes specified/carved

         Qnum    Head    Tail            #Qelem  LenThresh
         ----    ----    ----            ------  ---------

    4 non-IPC free queues:

        115254/115254 (buffers specified/carved), 43.96%, 80 byte data size
         1       201     115454          115254  262143

         81202/81202 (buffers specified/carved), 30.97%, 608 byte data size
         2       115455  196656          81202   262143

        41910/41910 (buffers specified/carved), 15.98%, 1568 byte data size
         3       196657  238566          41910   262143

         23574/23574 (buffers specified/carved), 8.99%, 4544 byte data size
         4       238567  262140          23574   262143

    IPC Queue:
         200/200 (buffers specified/carved), 0.7%, 4112 byte data size
         30      131     130             200     262143

    Raw Queue:
         31      0       0               0       65535

    ToFab Queues:
         Dest
        Slot
        0       0       0               0       262143
        1       0       0               0       262143
        2       0       0               0       262143
        3       0       0               0       262143
        4       0       0               0       262143
        5       0       0               0       262143
        6       0       0               0       262143
        7       0       0               0       262143
        8       0       0               0       262143
        9       0       0               0       262143
        10      0       0               0       262143
        11      0       0               0       262143
        12      0       0               0       262143
        13      0       0               0       262143
        14      0       0               0       262143
        15      0       0               0       262143
  Multicast     0       0               0       262143

ずっとこのラインカードが作動中であるので、そして 4 つのプールがあること 2 つのカーブがずっとあることがわかります: 80、608、1568、および 4544。

この場合このラインカードに属する 1 つのインターフェイスの MTU を変更して下さい:

Router(config)#interface pos1/0
Router(config-if)#mtu ?
<64-18020>  MTU size in bytes

Router(config-if)#mtu 2000

この場合 LC に接続し、変更したものがチェックして下さい:

LC-Slot1#show control tofab queue
Carve information for ToFab buffers
   SDRAM size: 268435456 bytes, address: 30000000, carve base: 30019100
   268332800 bytes carve size,  4 SDRAM bank(s), 16384 bytes SDRAM
pagesize, 3 carve(s)
    max buffer data size 4112 bytes, min buffer data size 80 bytes
    262142/262142 buffers specified/carved
    247054400/247054400 bytes sum buffer sizes specified/carved

         Qnum    Head    Tail            #Qelem  LenThresh
         ----    ----    ----            ------  ---------

    4 non-IPC free queues:

         91680/91680 (buffers specified/carved), 34.97%, 80 byte data size
         1       202     201             91680   262143

         65485/65485 (buffers specified/carved), 24.98%, 608 byte data size
         2       91884   91883           65485   262143

         49769/49769 (buffers specified/carved), 18.98%, 1568 byte data size
         3       157366  207134          49769   262143

         55008/55008 (buffers specified/carved), 20.98%, 2048 byte data size
         4       207135  262142          55008   262143

    IPC Queue:
         200/200 (buffers specified/carved), 0.7%, 4112 byte data size
         30      118     117             200     262143

    Raw Queue:
         31      206     205             0       65535

    ToFab Queues:
         Dest
         Slot
         0       0       0               0       262143
         1       0       0               0       262143
         2       0       0               0       262143
         3       0       0               0       262143
         4       0       0               0       262143
         5       0       0               0       262143
         6       0       0               0       262143
         7       206     205             0       262143
         8       0       0               0       262143
         9       0       0               0       262143
         10      0       0               0       262143
         11      0       0               0       262143
         12      0       0               0       262143
         13      0       0               0       262143
         14      0       0               0       262143
         15      0       0               0       262143
  Multicast      0       0               0       262143

このとき 3 つのカーブがあり、非 IPC キューのための最大バッファサイズは 4544 の代りに 2048 バイトです。

FrFab キューは変更されません:

LC-Slot1#show controllers frfab queues
 Carve information for FrFab buffers
    SDRAM size: 268435456 bytes, address: 20000000, carve base: 2039D100
    264646400 bytes carve size,  4 SDRAM bank(s), 16384 bytes SDRAM
pagesize, 3 carve(s)
    max buffer data size 9248 bytes, min buffer data size 80 bytes
    251927/251927 buffers specified/carved
    209883344/209883344 bytes sum buffer sizes specified/carved

         Qnum    Head    Tail            #Qelem  LenThresh
         ----    ----    ----            ------  ---------

    6 non-IPC free queues:

         123349/123349 (buffers specified/carved), 48.96%, 80 byte data size
         1       210     209             123349  262143

         75519/75519 (buffers specified/carved), 29.97%, 608 byte data size
         2       123552  123551          75519   262143

         37759/37759 (buffers specified/carved), 14.98%, 1568 byte data size
         3       199069  236827          37759   262143

         2516/2516 (buffers specified/carved), 0.99%, 2048 byte data size
         4       236828  239343          2516    262143

         7551/7551 (buffers specified/carved), 2.99%, 4544 byte data size
         5       239344  246894          7551    262143

         5033/5033 (buffers specified/carved), 1.99%, 9248 byte data size
         6       246895  251927          5033    262143

    IPC Queue:
         200/200 (buffers specified/carved), 0.7%, 4112 byte data size
         30      52      51              200     262143

    Multicast Raw Queue:
         29      0       0               0       62981

    Raw Queue:
         31      52      51              0       251928

    Interface Queues:
         0       210     209             0       262143

最大バッファサイズは 9248 バイトです。 この場合、別のカードの 1 つの他のインターフェイスの 10000 の MTU を設定して下さい:

 Router(config-if)#interface pos5/0
 Router(config-if)#mtu ?
   <64-18020>  MTU size in bytes

 Router(config-if)#mtu 10000


 LC-Slot1#show contr frfab queues
 Carve information for FrFab buffers
    SDRAM size: 268435456 bytes, address: 20000000, carve base: 2039D100
    264646400 bytes carve size,  4 SDRAM bank(s), 16384 bytes SDRAM
pagesize, 4 carve(s)
    max buffer data size 10064 bytes, min buffer data size 80 bytes
    257309/257309 buffers specified/carved
    213496016/213496016 bytes sum buffer sizes specified/carved

         Qnum    Head    Tail            #Qelem  LenThresh
         ----    ----    ----            ------  ---------

    5 non-IPC free queues:

         128556/128556 (buffers specified/carved), 49.96%, 80 byte data size
         1       204     203             128556  262143

         77133/77133 (buffers specified/carved), 29.97%, 608 byte data size
         2       128758  128757          77133   262143

         38566/38566 (buffers specified/carved), 14.98%, 1568 byte data size
         3       205890  244455          38566   262143

         7713/7713 (buffers specified/carved), 2.99%, 4544 byte data size
         4       244456  252168          7713    262143

         5141/5141 (buffers specified/carved), 1.99%, 10064 byte data size
         5       252169  257309          5141    262143

    IPC Queue:
         200/200 (buffers specified/carved), 0.7%, 4112 byte data size
         30      24      23              200     262143

    Multicast Raw Queue:
         29      0       0               0       64327

    Raw Queue:
         31      24      23              0       257310

    Interface Queues:
         0       205     204             0       262143

このとき FrFab キューのための 4 つのカーブがあり、最大バッファサイズは 10064 バイトに変更しました。

注: ポイントツーポイントプロトコル (PPP) カプセル化で設定される Packet over SONET(PoS) ラインカードで Maximum Receive Unit (MRU) ネゴシエーションは行われますが、MTU サイズを調節しません。 さらに、PPP 接続は MTU がインターフェイスで変更されるときリセットされません。

受信パケット メモリ

このメモリは、パケット バッファから成る複数のプールに分割されます。 レシーブ メモリがどのように切り分けられるか見るために、ラインカードに接続し、後で示されるように show controller tofab queue コマンドを、実行できます:

Router#attach ?
<0-15>  slot number of linecard to connect 
<cr>

Router#attach 1
Entering Console for 1 Port SONET based SRP OC-12c/STM-4 in Slot: 1 
Type "exit" to end this session   
Press RETURN to get started!   
LC-Slot1>enable
LC-Slot1# 
LC-Slot1#show controllers tofab queues
Carve information for ToFab buffers
   SDRAM size: 33554432 bytes, address: 30000000, carve base: 30029100 
   33386240 bytes carve size, 4 SDRAM bank(s), 8192 bytes SDRAM pagesize, 2 carve(s) 
   max buffer data size 9248 bytes, min buffer data size 80 bytes
   40606/40606 buffers specified/carved   
   33249088/33249088 bytes sum buffer sizes specified/carved   
        Qnum    Head    Tail        #Qelem     LenThresh
        ----    ----    ----        ------     ---------   
   5 non-IPC free queues:   

        20254/20254    (buffers specified/carved), 49.87%, 80 byte data size   
        1       17297   17296       20254      65535   

        12152/12152    (buffers specified/carved), 29.92%, 608 byte data size   
        2       20548   20547       12152      65535   

        6076/6076    (buffers specified/carved), 14.96%, 1568 byte data size   
        3       32507   38582       6076       65535   

        1215/1215    (buffers specified/carved), 2.99%, 4544 byte data size   
        4       38583   39797       1215       65535   

        809/809    (buffers specified/carved), 1.99%, 9248 byte data size   
        5       39798   40606       809        65535   

   IPC Queue: 
        100/100 (buffers    specified/carved), 0.24%, 4112 byte data size 
        30      72      71          100        65535  
 
   Raw  Queue:
        31      0       17302       0          65535   

   ToFab Queues:   
           Dest 
        Slot   
        0       0       0           0          65535 
        1       0       0           0          65535
        2       0       0           0          65535
        3       0       0           0          65535 
        4       0       0           0          65535 
        5       0       17282       0          65535 
        6       0       0           0          65535
        7       0       75          0          65535
        8       0       0           0          65535
        9       0       0           0          65535
        10      0       0           0          65535 
        11      0       0           0          65535 
        12      0       0           0          65535 
        13      0       0           0          65535 
        14      0       0           0          65535
        15      0       0           0          65535
 Multicast      0       0           0          65535 
LC-Slot1#

上記の例で見られる主なフィールドの説明を次に示します。

入力ラインカードの CPU によってパケット スイッチングが決定されると、パケットは宛先のスロットに対応する仮想出力キューにキューイングされます。 4 番目のカラムの数字は、仮想出力キューに現在キューイングされているパケットの数を示します。

ToFab BMA でのパケット フロー

ステップ 1 - パケットが Physical Layer Interface Module(PLIM; 物理層インターフェイス モジュール)に到達します。 パケットが受信され処理されると、「First In, First Out(FIFO; 先入れ先出し)バースト メモリ」と呼ばれる小さなメモリ(およそ 2 x Maximum Transmission Unit(MTU; 最大伝送ユニット)のバッファ)に Direct Memory Access(DMA; ダイレクト メモリ アクセス)により転送されます。 このメモリ量は LC のタイプによって異なります(128 KB ~ 1 MB)。

ステップ 2 -パケットが FIFO メモリに完全にあるとき、PLIM の application-specific integrated circuit (ASIC)によっては Buffer Management ASIC (BMA)が接触し、バッファをパケットを置くことを頼みます。 BMA はパケットのサイズを受け取り、それに応じてバッファを割り当てます。 BMA が適正なサイズのバッファを取得できなかった場合、パケットは廃棄され、着信インターフェイスの「ignored」カウンタが増えます。 他の一部のプラットフォームとは異なり、フォールバック メカニズムはありません。

ステップ 3 - この処理の間に、FIFO バースト メモリに別のパケットが受信される場合があります。FIFO バースト メモリのサイズが 2 x MTU であるのはこのためです。 適切なキューに使用可能な空きバッファがある場合、パケットは BMA によって該当するサイズのフリー キュー リストに格納されます。 このバッファは raw キューに置かれます。raw キューはラインカードのスイッチング エンジンのタイプに応じて Salsa ASIC または R5K CPU によって検査されます。

ステップ 4 - エンジン 0 LC では、R5K CPU が DRAM 内にあるローカルの Distributed Cisco Express Forwarding(dCEF)テーブルを参照してパケットの宛先を決定します。 続いてパケットは、raw キューのバッファから宛先スロットに対応する ToFabric キューのバッファに移動します。 宛先が dCEF テーブルに登録されていなければ、パケットは廃棄されます。 パケットが制御パケット(ルーティング更新など)の場合は GRP のキューにキュイングされ、GRP によって処理されます。 12016 ルータには、17 個の ToFab キューがあります(ユニキャスト用に 16 個とマルチキャスト用に 1 個)。

ステップ 5 - ToFab BMA によってバッファが適切な ToFab キューにキューイングされます。 この時点で、バッファが属するプールの #Qelem カウンタが 1 減り、ToFab キュー カウンタが 1 増えます。

注: ToFab キューはラインカードごとに 1 つずつあります(これには GRP も含まれます)。 これらのキューは仮想出力キュー(VOQ)として知られています。 これらは head-of-line blocking (HoLB; 行頭ブロッキング)を避けるために重要です。

ステップ 6 - Fabric Interface ASIC(FIA; ファブリック インターフェイス ASIC)によって出力キューが空でないことが確認されます。 FIA はパケットを 48 バイトのセルに分割するようセットアップされています。 パケットに 8 バイトのヘッダーが追加されて、56 バイトのシスコ セルがスイッチ ファブリックに送信されます。

送信パケット メモリ

送信パケット メモリには、スイッチ ファブリックから来て物理インターフェイスへの送信を待っているパケットが格納されます。 このメモリも、さまざまなサイズのプールに分割されます。

送信パケット メモリを表示するには、GRP からラインカードに attach し、show controller frfab queue コマンドを実行します。 FrFab 出力には、ToFab 出力のフィールドに加えて、Interface Queues セクションがあります。 その出力内容は発信 LC 上のインターフェイスのタイプと数によって異なります。

1 つそのような物ラインカードの各インターフェイスのために存在 する キュー。 特定のインターフェイスから送出されるパケットが、対応するインターフェイス キューにキューイングされます。

LC-Slot1#show controller frfab queue
========= Line Card (Slot 2) =======
Carve information for FrFab buffers
   SDRAM size: 16777216 bytes, address: 20000000, carve base: 2002D100
   16592640 bytes carve size, 0 SDRAM bank(s), 0 bytes SDRAM pagesize, 2 carve(s)
   max buffer data size 9248 bytes, min buffer data size 80 bytes
   20052/20052 buffers specified/carved
   16581552/16581552 bytes sum buffer sizes specified/carved   
        Qnum    Head       Tail               #Qelem  LenThresh
        ----    ----       ----               ------  ---------

   5 non-IPC free queues:   
        9977/9977 (buffers    specified/carved), 49.75%, 80 byte data size   
        1       101        10077              9977    65535   

        5986/5986 (buffers    specified/carved), 29.85%, 608 byte data size
        2       10078      16063              5986    65535   

        2993/2993 (buffers    specified/carved), 14.92%, 1568 byte data size
        3       16064      19056              2993    65535   

        598/598 (buffers    specified/carved), 2.98%, 4544 byte data size
        4       19057      19654              598     65535 
 
        398/398 (buffers    specified/carved), 1.98%, 9248 byte data size
        5       19655      20052              398     65535  
 
   IPC Queue:
        100/100 (buffers    specified/carved), 0.49%, 4112 byte data size
        30      77         76                 100     65535  
 
   Raw Queue:
        31      0          82                 0       65535  
  
   Interface Queues:
        0       0          0                  0       65535  
        1       0          0                  0       65535 
        2       0          0                  0       65535
        3       0          0                  0       65535

上記の例で見られる主なフィールドの説明を次に示します。

FrFab BMA でのパケット フロー

この時点で、シスコ セルはすでに FIA によってスイッチ ファブリックに送信されています。

ステップ 1 - これらのシスコ セルは FrFab FIA の FIFO へ DMA により転送されてから、FrFab BMA のバッファへと転送されます。 実際にセルをパケットに再構成するのは frFab BMA です。

FrFab BMA はパケットを再構成する際、セルが格納されているバッファをどのようにして知るのでしょうか。 これは着信ラインカードのスイッチング エンジンによって決定されます。 ボックス上にあるキューはすべて同じサイズ、同じ順序であるため、スイッチング エンジンは送信 LC に、ルータに到達したときと同じ番号のキューにパケットを入れるよう指示します。

frFab BMA SDRAM キューの状態を表示するには、LC で show controller frfab queue コマンドを使用します。

ステップ 2 - このステップは基本的に ToFab BMA の出力と同じです。 到着したパケットは、それぞれの対応するフリー キューからデキューされるパケットとして配置されます。 これらのパケットは FrFab キューに置かれ、出力処理のためにインターフェイス キュー(物理ポートごとに 1 つずつある)か、raw キューにキューイングされます。 rawQ で多くが起こりません: ポートごとのマルチキャスト複製、Modified Deficit Round Robin(MDRR) - Distributed Weighted Fair Queuing (DWFQ)と同じ概念、および出力専用アクセス レート (CAR)。 送信キューがいっぱいの場合は、パケットが廃棄され、出力廃棄カウンタの値が増分されます。

ステップ 3 - PLIM の TX 部分がパケットを送信 して準備ができているまで FrFab BMA は待っています。 FrFab BMA は Media Access Control(MAC; メディア アクセス制御)を(シスコ セルのヘッダーに含まれる情報に基づいて)実際に書き換えてから、そのパケットを PLIM 回路内の小さなバッファ(2 x MTU)へ DMA により転送します。 PLIM は、必要に応じて Asynchronous Transfer Mode(ATM; 非同期転送モード)の Segmentation And Reassembly(SAR)と Synchronous Optical Network(SONET; 同期光ファイバ ネットワーク)のカプセル化を行い、パケットを送信します。

関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 18002