SONiCデバイスプロファイル
背景
デバイスはApstra環境でデバイスプロファイルで認識されます。Apstraソフトウェアが検出し、ブループリント内のデータパスに適したネットワーク設定を実行するために必要な、デバイス固有のセマンティクスをキャプチャします。
デバイス プロファイルは REST エンティティであり、設計フェーズで作成、編集、削除、リストを実行できます。デバイスプロファイルを使用してインターフェイスマップを作成し、ブループリントを展開する際にApstra構成レンダリングエンジン内で直接使用します。
このドキュメントでは、セマンティックに正しいSonic DPを作成(編集)するために必要な知識を網羅しています。Apstra内で検証に合格し、データベースに適切なDPが作成されるだけでなく、デバイスに適用されるベンダーセマンティック要件を満たして、生成された設定がネットワークデバイスにプッシュされたときに展開エラーが発生しないようにします。
問題ステートメント
デバイス プロファイルは、ベンダー セマンティクスを考慮したデータ構造です。デバイス プロファイルを作成するには、ベンダーのデバイス仕様が必要です。有効で設定しやすいJSONを作成するには、これらの仕様をApstraデバイスプロファイルデータモデルに変換する必要があります。
ソリューション
高レベルのデータ モデルは、すべての SP で同じです。すべてのデバイス プロファイルに同じキーが使用されます。値の取得方法が異なる場合や、ベンダー制約で読み込まれる場合があります。ドキュメントには、以下が含まれます。
- DP と DP 内のネストされた要素のスキーマ。
- スキーマ内の各キー値ペアの意味。
- 値が入力されたベンダー固有のレシピ。
- 特に特定の(グループの)モデルのポート設定に関して、考慮すべき制約、コーナーケースをリストします。
- 本番稼働中のこれらの SP を作成する過程で学んだ教訓は、将来の SP を作成する上で役立ちます。
ユーザーインターフェイス
Apstra GUIからデバイスプロファイルを作成すると、一部のエントリがセマンティック検証されます。しかし、ベンダー固有の深い制約や要件を完全に保証できるわけではありません。ベンダーの仕様を正確に示すGUIは、Apstraデータベースデータモデルの一部となるセマンティック有効なDPの作成をサポートします。
あるいは、ベンダー仕様を含む独自のPythonコードを作成し、Apstra DPデータモデルに従って正規化し、jsonを生成してGUIでインポートすることもできます。
セレクター情報
4つのセレクターフィールドすべてに正しい情報を入力することは、デバイスプロファイルに一致させるために重要です。
Selector Field | Value | コマンドを使用してデバイス上の情報を取得 |
---|---|---|
モデル | 0x21 | show platform syseeprom |
メーカー | syseeprom で0x2Dしている場合は、他0x2D 0x2B | show platform syseeprom |
OSファミリー | ソニック | バージョンを表示 |
バージョン | .* | バージョンを表示 |
機能
デバイス仕様がある場合、デバイス プロファイルに入力するためのハードウェアとソフトウェアの機能を取得できます。
以下の表には、SONiCデバイスに一般的に見られる値(認定されたデバイスに基づく)が含まれています。
Selector Field | Value | コマンドを使用してデバイス上の情報を取得 |
---|---|---|
ユーザランド | 64(int) | 設定に影響しない |
form_factor | '1RU' (文字列) | 設定に影響しない |
ecmp_limit | 64(int) | 設定に影響しない |
Asic | 'T2' (文字列) | 設定に影響しない |
Cpu | 'x86' (文字列) | 設定に影響しない |
Ram | 16(int)(注、単位は GB 単位) | 設定に影響しない |
オニー | True(bool)(デフォルト) | 設定に影響しない |
Lxc | True(bool)(デフォルト) | 設定に影響しない |
インターフェイスの命名規則
Sonicは、githubマスターでAzure SONICが見つけたように、sonicポート名ファイルごとの命名規則に従っています。 https://github.com/Azure/SONiC/blob/master/doc/sonic-port-name.md
SONICデバイスプロファイルを作成するには、デバイス固有のport_config.ini(sonic-buildimage/device/mellanox/x86_64-mlnx_msn2100-r0/ACS-MSN2100/port_config.ini)ファイルを読み、上記のリンクにあるインストラクションに従って適切なインターフェイス名を表示する必要があります。
port_congi.iniは、SONiCが使用するインターフェイス名を指定します。デバイスプロファイルは、設定ファイル(config_db.json)でPORT設定を生成するインターフェイス名と一致する必要があります。このドキュメントの目的で、port_config.ini と config_db.json は、同じインターフェイス命名規則を持つ必要があります。DP でこれらのインターフェイス名を、port_cfg.ini ファイルで提供されているレーン番号と共に使用します。前述の手順に基づいてデバイスプロファイルが生成されると、ApstraはLDと共にそれを使用してインターフェイスマップ(IM)を生成します。検証の一環として、Apstraは、「/usr/share/sonic/device/x86_64-mlnx_msn2100-r0/ACS-MSN2100/port_config.ini」で、IM(ポートとその速度を説明する)が実際に利用可能でサポートされていることを確認します。この検証は、サポートされていないポート設定(config_db.json)が間違ったDPによってApstraで誤って生成されるため、SONiC NOSスタックが失敗しないようにするために実行されます。そのため、エンド ユーザーが SONiC プラットフォームで生成される DP に、その特定のプラットフォームの port_config.ini ファイルに反映されている正しいインターフェイス名と車線マップを持っていることを確認することが重要です。プラットフォームには、そのプラットフォーム用の異なる HW SKU の一部に、いくつかの異なるport_config.ini ファイルが含まれる場合があります。Apstraは、そのプラットフォームで利用可能なオプションと共に、生成されたポート設定の検証を試みます。Apstraは現在、SONiCプロジェクトで実行中の動的ポートブレイクアウト機能を使用していません。
トラブルシューティング
デバイスの不一致は通常、デバイスのライフサイクルの開始時に発生します。デバイスがデバイス プロファイルを選択していない場合は、デバイス プロファイルの 4 つのセレクター フィールドを確認します。
ポートに誤った速度が設定されている場合、または OS 固有のポート制約がデバイス プロファイルまたはインターフェイス マップで処理されなかった場合、デプロイ エラーが発生する可能性があります。
根本原因の可能性のあるフローは次のようになります。
- 明らかなポート機能エラーがないか DP を確認します。ポートは DP が設定した速度に本当に対応していますか。ini Sonicオープンソースプロジェクトのデバイス固有のport_configは、エラーメッセージを解析するのに適したリソースです。
- DP が自動ネグまたは無効なインターフェイスを正しく設定しているかどうかを確認します。自動ネグと無効化の両方は、インターフェイス設定フィールドで表すことができます。
- インターフェイス名とレーンマッピングをデバッグする場合は、対応するport_config.iniを確認してください。AS5712-54Xエッジコア/acctonボックスの例として、https://github.com/Azure/sonic-buildimage/tree/master/device/accton/x86_64-accton_as5712_54x-r0/Accton-AS5712-54X でレーン/名前/エイリアスなどの詳細を持つport_config.iniファイルを取得できます。
- 命名上の制約は、SONiCの公式ドキュメントで確認できます。例えば、SONICを実行している Accton 5712 54Xのインターフェイス名を生成する場合、port_config.iniが権限です。 https://github.com/Azure/sonic-buildimage/blob/master/device/accton/x86_64-accton_as5712_54x-r0/Accton-AS5712-54X/port_config.ini デバイスにポート間制約がある場合があります。SONiCでは、一般的にport_config.iniファイルにレイアウトされています。特定のプラットフォームには複数のport_config.iniファイルがあり、各port_config.iniファイルを持つ特定のメーカーは、sonicイメージの HWSKUフォルダに格納されています(上記で参照されたものと同様)。(port_config.ini に記載されているもの以外で)さまざまなポート速度を試す機能は、チップセットに関する知識と、何を達成できるかを確認する物理スイッチの製造元が必要です。この情報は、ベンダーの要求を受けない限り、いかなるホワイトペーパーでも提供されない場合があります。
例:DP および port_config.ini
Port_config.ini from sonic-buildimage は、Dell_Z9100(x86_64-dell_z9100_c2538-r0/Force10-Z9100-C32 の下にあります。
# name lanes alias index Ethernet0 49,50,51,52 hundredGigE1/1 1 Ethernet4 53,54,55,56 hundredGigE1/2 2 Ethernet8 57,58,59,60 hundredGigE1/3 3 Ethernet12 61,62,63,64 hundredGigE1/4 4 Ethernet16 65,66,67,68 hundredGigE1/5 5 Ethernet20 69,70,71,72 hundredGigE1/6 6 Ethernet24 73,74,75,76 hundredGigE1/7 7 Ethernet28 77,78,79,80 hundredGigE1/8 8 Ethernet32 37,38,39,40 hundredGigE1/9 9 Ethernet36 33,34,35,36 hundredGigE1/10 10 Ethernet40 45,46,47,48 hundredGigE1/11 11 Ethernet44 41,42,43,44 hundredGigE1/12 12 Ethernet48 81,82,83,84 hundredGigE1/13 13 Ethernet52 85,86,87,88 hundredGigE1/14 14 Ethernet56 89,90,91,92 hundredGigE1/15 15 Ethernet60 93,94,95,96 hundredGigE1/16 16 Ethernet64 97,98,99,100 hundredGigE1/17 17 Ethernet68 101,102,103,104 hundredGigE1/18 18 Ethernet72 105,106,107,108 hundredGigE1/19 19 Ethernet76 109,110,111,112 hundredGigE1/20 20 Ethernet80 21,22,23,24 hundredGigE1/21 21 Ethernet84 17,18,19,20 hundredGigE1/22 22 Ethernet88 29,30,31,32 hundredGigE1/23 23 Ethernet92 25,26,27,28 hundredGigE1/24 24 Ethernet96 117,118,119,120 hundredGigE1/25 25 Ethernet100 113,114,115,116 hundredGigE1/26 26 Ethernet104 125,126,127,128 hundredGigE1/27 27 Ethernet108 121,122,123,124 hundredGigE1/28 28 Ethernet112 5,6,7,8 hundredGigE1/29 29 Ethernet116 1,2,3,4 hundredGigE1/30 30 Ethernet120 13,14,15,16 hundredGigE1/31 31 Ethernet124 9,10,11,12 hundredGigE1/32 32
port_configスクリプトを使用して、ポートからlane_mapへのデータ構造 parse.py 変換します。
Parse.py ========= #!/usr/bin/python # Copyright (c) 2017 Apstrktr, Inc. All rights reserved. # Apstrktr, Inc. Confidential and Proprietary. # # This source code is licensed under End User License Agreement found in the # LICENSE file at http://apstra.com/eula # pylint: disable=line-too-long import sys from pprint import pprint # Run the program as ./parse.py <path_to_sonic_platform_port_config.ini> # ex: ./parse.py sonic-buildimage/device/mellanox/x86_64-mlnx_msn2100-r0/ACS-MSN2100/port_config.ini def get_lanemap(buf): if not buf: return None d = {} interface_indices = [] for line in buf.split('\n'): if line.startswith('#'): continue words = line.split(' ') words = [word for word in words if len(word)] if not len(words): continue intf = words[0][8:] lane = words[1].split(',') interface_indices.append(intf) if len(lane) > 1: one = 'Ethernet' + str(intf) two = 'Ethernet' + str(int(intf)+1) three = 'Ethernet' + str(int(intf)+2) four = 'Ethernet' + str(int(intf)+3) d.update({one:lane[0]}) d.update({two:lane[1]}) d.update({three:lane[2]}) d.update({four:lane[3]}) else: d.update({words[0]:words[1]}) return {'interface_names' : interface_indices, 'lane_mapping' : d} def parse_portconfig(f): buf = '' with open(f, 'r') as stream: buf = stream.read() return {'<Platform>': get_lanemap(buf)} if __name__ == '__main__': assert len(sys.argv) > 1, "Missing port_config.ini in cmdline" print "Collecting lane information from ", sys.argv[1] pprint(parse_portconfig(sys.argv[1])) print "=========================================================================================" print " Substitute <Platform> with an identifier for the platform" print " Append the dump into sdk/device-profile/sonic.py's sonic_device_info dictionary" print "=========================================================================================" To run parse.py parse.py <Path to the port_config.ini file from sonic_buildimage> Example: parse.py sonic-buildimage/device/dell/x86_64-dell_z9100_c2538-r0/Force10-Z9100-C32/port_config.ini Collecting lane information from sonic-buildimage/device/dell/x86_64-dell_z9100_c2538-r0/Force10-Z9100-C32/port_config.ini {'<Platform>': {'interface_names': ['0', '4', '8', '12', '16', '20', '24', '28', '32', '36', '40', '44', '48', '52', '56', '60', '64', '68', '72', '76', '80', '84', '88', '92', '96', '100', '104', '108', '112', '116', '120', '124'], 'lane_mapping': {'Ethernet0': '49', 'Ethernet1': '50', 'Ethernet10': '59', 'Ethernet100': '113', 'Ethernet101': '114', 'Ethernet102': '115', 'Ethernet103': '116', 'Ethernet104': '125', 'Ethernet105': '126', 'Ethernet106': '127', 'Ethernet107': '128', 'Ethernet108': '121', 'Ethernet109': '122', 'Ethernet11': '60', 'Ethernet110': '123', 'Ethernet111': '124', 'Ethernet112': '5', 'Ethernet113': '6', 'Ethernet114': '7', 'Ethernet115': '8', 'Ethernet116': '1', 'Ethernet117': '2', 'Ethernet118': '3', 'Ethernet119': '4', 'Ethernet12': '61', 'Ethernet120': '13', 'Ethernet121': '14', 'Ethernet122': '15', 'Ethernet123': '16', 'Ethernet124': '9', 'Ethernet125': '10', 'Ethernet126': '11', 'Ethernet127': '12', 'Ethernet13': '62', 'Ethernet14': '63', 'Ethernet15': '64', 'Ethernet16': '65', 'Ethernet17': '66', 'Ethernet18': '67', 'Ethernet19': '68', 'Ethernet2': '51', 'Ethernet20': '69', 'Ethernet21': '70', 'Ethernet22': '71', 'Ethernet23': '72', 'Ethernet24': '73', 'Ethernet25': '74', 'Ethernet26': '75', 'Ethernet27': '76', 'Ethernet28': '77', 'Ethernet29': '78', 'Ethernet3': '52', 'Ethernet30': '79', 'Ethernet31': '80', 'Ethernet32': '37', 'Ethernet33': '38', 'Ethernet34': '39', 'Ethernet35': '40', 'Ethernet36': '33', 'Ethernet37': '34', 'Ethernet38': '35', 'Ethernet39': '36', 'Ethernet4': '53', 'Ethernet40': '45', 'Ethernet41': '46', 'Ethernet42': '47', 'Ethernet43': '48', 'Ethernet44': '41', 'Ethernet45': '42', 'Ethernet46': '43', 'Ethernet47': '44', 'Ethernet48': '81', 'Ethernet49': '82', 'Ethernet5': '54', 'Ethernet50': '83', 'Ethernet51': '84', 'Ethernet52': '85', 'Ethernet53': '86', 'Ethernet54': '87', 'Ethernet55': '88', 'Ethernet56': '89', 'Ethernet57': '90', 'Ethernet58': '91', 'Ethernet59': '92', 'Ethernet6': '55', 'Ethernet60': '93', 'Ethernet61': '94', 'Ethernet62': '95', 'Ethernet63': '96', 'Ethernet64': '97', 'Ethernet65': '98', 'Ethernet66': '99', 'Ethernet67': '100', 'Ethernet68': '101', 'Ethernet69': '102', 'Ethernet7': '56', 'Ethernet70': '103', 'Ethernet71': '104', 'Ethernet72': '105', 'Ethernet73': '106', 'Ethernet74': '107', 'Ethernet75': '108', 'Ethernet76': '109', 'Ethernet77': '110', 'Ethernet78': '111', 'Ethernet79': '112', 'Ethernet8': '57', 'Ethernet80': '21', 'Ethernet81': '22', 'Ethernet82': '23', 'Ethernet83': '24', 'Ethernet84': '17', 'Ethernet85': '18', 'Ethernet86': '19', 'Ethernet87': '20', 'Ethernet88': '29', 'Ethernet89': '30', 'Ethernet9': '58', 'Ethernet90': '31', 'Ethernet91': '32', 'Ethernet92': '25', 'Ethernet93': '26', 'Ethernet94': '27', 'Ethernet95': '28', 'Ethernet96': '117', 'Ethernet97': '118', 'Ethernet98': '119', 'Ethernet99': '120'}}} ========================================================================================= Substitute <Platform> with an identifier for the platform Append the dump into sdk/device-profile/sonic.py's sonic_device_info dictionary =========================================================================================
上記からの出力は、音のdevice_profileジェネレータPythonファイルのsonic_device_infoの辞書エントリになります。
Apstraで生成された対応するデバイスプロファイル:
{ "hardware_capabilities": { "asic": "TH", "cpu": "x86", "ecmp_limit": 64, "form_factor": "1RU", "ram": 16, "userland": 64 }, "id": "Force10-Z9100_SONiC", "label": "Dell Force10-Z9100_SONiC", "ports": [ { "column_id": 1, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 0, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet0", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"49,50,51,52\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet0", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"49,50,51,52\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 1, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 1, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet4", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"53,54,55,56\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet4", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"53,54,55,56\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 2, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 2, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet8", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"57,58,59,60\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet8", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"57,58,59,60\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 2, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 3, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet12", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"61,62,63,64\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet12", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"61,62,63,64\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 3, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 4, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet16", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"65,66,67,68\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet16", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"65,66,67,68\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 3, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 5, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet20", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"69,70,71,72\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet20", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"69,70,71,72\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 4, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 6, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet24", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"73,74,75,76\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet24", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"73,74,75,76\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 4, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 7, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet28", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"77,78,79,80\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet28", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"77,78,79,80\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 5, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 8, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet32", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"37,38,39,40\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet32", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"37,38,39,40\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 5, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 9, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet36", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"33,34,35,36\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet36", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"33,34,35,36\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 6, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 10, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet40", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"45,46,47,48\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet40", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"45,46,47,48\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 6, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 11, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet44", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"41,42,43,44\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet44", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"41,42,43,44\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 7, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 12, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet48", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"81,82,83,84\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet48", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"81,82,83,84\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 7, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 13, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet52", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"85,86,87,88\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet52", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"85,86,87,88\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 8, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 14, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet56", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"89,90,91,92\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet56", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"89,90,91,92\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 8, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 15, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet60", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"93,94,95,96\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet60", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"93,94,95,96\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 9, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 16, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet64", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"97,98,99,100\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet64", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"97,98,99,100\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 9, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 17, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet68", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"101,102,103,104\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet68", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"101,102,103,104\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 10, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 18, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet72", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"105,106,107,108\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet72", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"105,106,107,108\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 10, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 19, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet76", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"109,110,111,112\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet76", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"109,110,111,112\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 11, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 20, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet80", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"21,22,23,24\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet80", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"21,22,23,24\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 11, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 21, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet84", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"17,18,19,20\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet84", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"17,18,19,20\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 12, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 22, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet88", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"29,30,31,32\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet88", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"29,30,31,32\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 12, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 23, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet92", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"25,26,27,28\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet92", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"25,26,27,28\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 13, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 24, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet96", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"117,118,119,120\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet96", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"117,118,119,120\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 13, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 25, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet100", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"113,114,115,116\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet100", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"113,114,115,116\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 14, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 26, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet104", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"125,126,127,128\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet104", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"125,126,127,128\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 14, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 27, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet108", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"121,122,123,124\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet108", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"121,122,123,124\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 15, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 28, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet112", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"5,6,7,8\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet112", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"5,6,7,8\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 15, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 29, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet116", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"1,2,3,4\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet116", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"1,2,3,4\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 16, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 30, "row_id": 1, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet120", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"13,14,15,16\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet120", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"13,14,15,16\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] }, { "column_id": 16, "connector_type": "qsfp28", "failure_domain_id": 1, "panel_id": 1, "port_id": 31, "row_id": 2, "slot_id": 0, "transformations": [ { "interfaces": [ { "interface_id": 1, "name": "Ethernet124", "setting": "{\"interface\": {\"speed\": \"100000\", \"lane_map\": \"9,10,11,12\"}}", "speed": { "unit": "G", "value": 100 }, "state": "active" } ], "is_default": true, "transformation_id": 1 }, { "interfaces": [ { "interface_id": 1, "name": "Ethernet124", "setting": "{\"interface\": {\"speed\": \"40000\", \"lane_map\": \"9,10,11,12\"}}", "speed": { "unit": "G", "value": 40 }, "state": "active" } ], "is_default": false, "transformation_id": 2 } ] } ], "selector": { "manufacturer": "Dell|DELL", "model": "Z9100-ON", "os": "SONiC", "os_version": ".*" }, "slot_count": 0, "software_capabilities": { "lxc_support": false, "onie": true } }