SONiC デバイス プロファイル
バックグラウンド
デバイスは、デバイスプロファイルを使用してApstra環境で認識されます。これらはデバイス固有のセマンティクスをキャプチャします。このセマンティクスは、Apstraソフトウェアがセマンティクスを検出し、ブループリント内でデータパスに適したネットワーク設定を実行するために必要なものです。
デバイスプロファイルはRESTエンティティであり、設計フェーズで作成、編集、削除、一覧表示できます。デバイスプロファイルは、インターフェイスマップの作成に使用され、ブループリントの展開時にApstra設定レンダリングエンジン内で直接使用されます。
このドキュメントでは、セマンティック的に正しいSonic DPを作成(および編集)するために必要な知識について説明します。これにより、データベースに適切なDPが作成されることを保証するApstraで実施されている検証に合格するだけでなく、デバイスに適用されるベンダーのセマンティック要件も尊重されるため、生成された設定がネットワークデバイスにプッシュされたときに展開に失敗しません。
問題の説明
デバイスプロファイルは、ベンダーのセマンティクスを考慮したデータ構造です。デバイスプロファイルを作成するには、ベンダーからのデバイス仕様が必要です。有効で設定しやすいJSONを作成するには、これらの仕様をApstraデバイスプロファイルデータモデルに変換する必要があります。
解決
高レベルのデータ モデルは、すべての DP で同じです。すべてのデバイスプロファイルに同じキーが使用されます。値の取得方法は異なる場合もあれば、ベンダーの制約によって読み込まれる場合もあります。このドキュメントには、次の項目が含まれています。
- DP のスキーマと DP 内の入れ子になった要素。
- スキーマ内の各キーと値のペアの意味。
- 値が入力される仕入先固有のレシピ。
- 考慮すべき制約やコーナーケースをリストアップします。特に特定の(モデルグループの)ポート構成について。
- すでに本番環境にあるDPを作成する過程で学んだ教訓は、将来のDPの作成に役立ちます。
ユーザーインターフェース
Apstra GUIからデバイスプロファイルを作成すると、一部のエントリがセマンティックに検証されます。ただし、ベンダー固有の深い制約や要件を完全に確保できるわけではありません。正確なベンダー仕様を使用して、GUIは、Apstraデータベースデータモデルの一部となる意味的に有効なDPの作成を支援します。
または、ベンダーの仕様を含む独自のPythonコードを記述し、Apstra DPデータモデルに従って正規化し、JSONを生成してGUIでインポートすることもできます。
セレクタ情報
4 つのセレクター フィールドすべてに正しい情報を入力することは、デバイスがデバイス プロファイルと一致させるために重要です。
| デバイスの情報を取得するためのセレ | クタフィールド | 値 | コマンド
|---|---|---|
| モデル | 0x21 | showプラットフォームsyseeprom |
| 生産者 | syseeprom で0x2D場合は、他に0x2D 0x2B | showプラットフォームsyseeprom |
| OSファミリ | ソニック | バージョンを表示 |
| バージョン | .* | バージョンを表示 |
資格
デバイス仕様がわかっている場合は、デバイスプロファイルに入るためのハードウェアおよびソフトウェア機能を取得できます。
次の表は、SONiCデバイスでよく見られる値(認定デバイスに基づく)を示しています。
| デバイスの情報を取得するためのセレ | クタフィールド | 値 | コマンド
|---|---|---|
| ユーザーランド | 64 (int) | 設定には影響しません |
| form_factor | '1RU' (文字列) | 設定には影響しません |
| ecmp_limit | 64 (int) | 設定には影響しません |
| ASIC | 'T2' (文字列) | 設定には影響しません |
| CPU | 'x86' (文字列) | 設定には影響しません |
| ラム | 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のインターフェイス命名基準を同じにする必要があります。これらのインターフェイス名と、port_cfg.ini ファイルで指定されているレーン番号を DP で使用します。前述の手順に基づいてデバイスプロファイルが生成されると、ApstraはLDとともにデバイスプロファイルを使用してインターフェイスマップ(IM)を生成します。Apstraは、検証の一環として、IM(ポートとその速度を記述)が実際に使用可能であり、「/usr/share/sonic/device/ x86_64-mlnx_msn2100-r0/ACS-MSN2100/port_config.ini」でサポートされていることを確認します。この検証は、サポートされていないポート設定(config_db.json)が間違ったDPのためにApstraで誤って生成されたためにSONiC NOSスタックが失敗しないことを確認するために実行されます。そのため、SONiC プラットフォーム用に生成された DP に、その特定のプラットフォームのファイルに反映されている正しいインターフェイス名とレーン マップport_config.iniエンド ユーザーが確認することが重要です。プラットフォームには、そのプラットフォームのさまざまな HWSKU の一部であるいくつかの異なる port_config.ini ファイルがある場合があります。Apstraは、生成されたポート設定を、そのプラットフォームで利用可能なオプションのいずれかで検証しようとします。Apstraは現在、SONiCプロジェクトで進行中のダイナミックポートブレークアウト機能を使用していません。
トラブルシューティング
デバイスの不一致は、通常、デバイスのライフサイクルの開始時に発生します。デバイスがデバイスプロファイルを選択していない場合は、デバイスプロファイルの4つのセレクターフィールドを確認します。
ポートが誤った速度で設定されている場合、またはOS固有のポート制約がデバイスプロファイルまたはインターフェイスマップで処理されていない場合、展開エラーが発生する可能性があります。
根本原因のフローとして考えられるのは、次のようになります。
- 明らかなポート機能エラーがないか DP を確認します。ポートは、DPが設定した速度に本当に対応していますか。デバイス固有のport_config.ini Sonicオープンソースプロジェクトは、ERRORメッセージを解析するための優れたリソースです。
- DPが自動ネゴシエーションまたは無効なインターフェイスを正しく設定しているかどうかを確認します。オートネゴシエーションとディセーブルはどちらもインターフェース設定欄で表現できます。
- インターフェース名とレーンマッピングをデバッグする場合は、対応するport_config.iniを確認してください。AS5712-54X edgecore/acctonボックスの例として、レーン/名前/エイリアスなどの詳細を含むport_config.iniファイルを取得できます https://github.com/Azure/sonic-buildimage/tree/master/device/accton/x86_64-accton_as5712_54x-r0/Accton-AS5712-54X
- 名前付けの制約については、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
sonic-buildimageからのPort_config.iniは、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
=========================================================================================
上記からの出力は、sonic device_profile generator の 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
}
}