ethxlattopology(8)
π ethxlattopology β bestie's guide to building your cluster topology β¨
okay so this is ethxlattopology(8), part of the EFSFFCLIRG man pages, and it is literally the tool that makes your cluster's topology XML file exist. no cap.
πΈ NAME πΈ
ethxlattopology β generates a topology XML file of a cluster using your customized <topologyfile>.csv and core switch linksum files (like linksum_swd06.csv and linksum_swd24.csv, iykyk) as input. that output topology XML file can then be used to bring up and verify the cluster. iconic behavior fr fr π
β¨ Syntax β¨
ethxlattopology [-d level] [-v level] [-i level] [-K] [-N] [-f linkfiles]
[-o report] [-p plane] [source [dest]]
π Options π
--helpβ produces the full help text. your little safety net bestie π«Ά-d levelβ sets the output detail level. default is0. the levels are additive, so they stack π«
by default, the top level is always produced. switch, rack, and rack group topology files can be added to the output by choosing the appropriate level. if you ask for output at the group or rack level, then group or rack names must be provided in the spreadsheet (no names = no vibes, sorry π). detailed output can be specified in any combination. a directory for each topology XML file is created hierarchically, with group directories (if specified) at the highest level, followed by rack and switch directories (if specified).
- core switch topology files.
- rack topology files.
- rack group topology files.
-v levelβ sets the verbose level. range is0-8. default is2. levels are additive too β¨- no output.
- progress output.
- reserved.
- time stamps.
- reserved.
-i levelβ sets the output indent level. default is4. pretty formatting, we love to see it π-Kβ specifies DO NOT clean temporary files.
this prevents temporary files in each topology directory from being removed. those temporary files contain CSV formatted lists of links, NICs, and switches used to create a topology XML file. ngl, temporary files are not typically needed after a topology file is created β but they can be retained for subsequent inspection or processing if you're nosy like me π
-Nβ specifies DO NOT generate Port Numbers from Port IDs.
heads up: this will introduce slightly poorer topology-loading performance. it's useful when it's difficult to generate Port Numbers, like with complicated Port ID formats, or when there aren't enough Port IDs to train the Port Number generator. lowkey a struggle but it's there for you π
-f linkfilesβ specifies the space separated core switch linksum files.-o reportβ specifies the report type for output. by default, all the sections are generated.
Report Types:
brnodesβ creates the<Node>section xml for the csv input.linksβ creates the<LinkSummary>section xml for the csv input.
-p planeβ specifies the plane name. default isplane.sourceβ specifies the source csv file. default istopology.csv.destβ specifies the output xml file. default istopology.xml.
the default output file name can be used to specify the destination folder. cute little trick, iykyk π§
π¦ Description π¦
the ethxlattopology script reads your customized <topologyfile>.csv file from the local directory, and reads the core switch linksum files specified by the -f argument. there are two sample topology XLSX files, detailed_topology.xlsx and minimal_topology.xlsx, chillin' in the /usr/share/eth-tools/samples/ directory.
you must create your <topologyfile>.csv file by editing one of the sample spreadsheets and saving the Fabric Links tab as a CSV file. then β and this part matters bestie β inspect your <topologyfile>.csv file to make sure that each row contains the correct and same number of comma separators. any extraneous entries in the spreadsheet can cause the CSV output to have extra fields π and that's a whole mess. do the same thing on the "Internal xxx Links" tab to create your own internal core switch linksum csv files.
π Example π
ethxlattopology -f "/usr/share/eth-tools/samples/linksum_swd06.csv
/usr/share/eth-tools/samples/linksum_swd24.csv"
/tmp/detailed_topology.csv
and then it prints all of this:
Parsing linksum file: /usr/share/eth-tools/samples/linksum_swd06.csv
Parsing linksum file: /usr/share/eth-tools/samples/linksum_swd24.csv
Parsing /tmp/detailed_topology.csv
Generating links for Core:core1
Generating links for Core:core2
Processing Leaves of partially populated Core:core2
Processing spines of partially populated Core:core2
Generating topology.xml file(s)
Done
both sample files contain examples of links between NIC and Edge SW (rows 4-7), NIC and Core SW (rows 8-11), and Edge SW and Core SW (rows 12-15). ate that π
π Environment Variables π
the following environment variables allow user-specified MTU.
MTU_SW_SWβ if set, it overrides default MTU on switch-to-switch links. default is10240.MTU_SW_NICβ if set, it overrides default MTU on switch-to-NIC links. default is10240.
π Multi-Rail and Multi-Plane Fabrics π
for Multi-Rail/Multi-Plane fabrics, you have the following options:
- for Multi-Rail fabrics or for a Single Plane fabric with some multi-ported hosts, you can create multiple rows for a host with different Port names, and then follow the standard procedure to generate
<topologyfile>.xml. - for a Multi-Plane fabric with identical planes, the tool can be run multiple times on the same
<topologyfile>.csvmodified with different port names. for example, if there are two identical fabrics (fabric_1andfabric_2) connected to a single host with two NICs (eth2andeth3), the tool can be run twice like this: - for
fabric_1:
in <topologyfile>.csv, set port name to be eth2 for hosts.
- for
fabric_2:
in <topologyfile>.csv, set port name to be eth3 for hosts.
- for a fabric with both Multi-Rail and Multi-Plane segments, you can use a combination of the above techniques to generate the desired
<topologyfile>.xmlfile.
ngl the whole thing is giving "trust the process" energy, but once that topology.xml lands you're gonna feel like the main character π
β¨
okay bestie that's the whole page β this was ethxlattopology(8) from the EFSFFCLIRG man pages, copyright Copyright(C) 2020-2024 Intel Corporation, and that's the vibe check, periodt ππ¦π
π¦ where this page comes from
- centos-stream 9: eth-tools-fastfabric 1:12.1.0.0-4.el9 Β· BSD
- fedora 43: eth-tools-fastfabric 1:12.1.0.0-151.fc43 Β· BSD-3-Clause
- fedora 44: eth-tools-fastfabric 1:12.1.0.1-6.fc44 Β· BSD-3-Clause
- opensuse-leap 16.0: eth-fastfabric 11.7.0.0-160000.2.2 Β· BSD-3-Clause OR GPL-2.0-only
- Copyright 2020-2024, Intel Corporation
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms