Open demx8as6 opened 1 year ago
Please see below an example in (pseudo xml) for successful auto negotiation when the SFP would support all pmd-names for 10Mbit/s, 100Mbit/s and 1000Mbit/s:
For 10 Mbit/s Ethernet: 10BASE5 - Thick Ethernet (Half-Duplex) 10BASE2 - Thin Ethernet (Half-Duplex) 10BASE-T - Twisted Pair Ethernet (Half-Duplex)
For 100 Mbit/s Ethernet: 100BASE-TX - Twisted Pair Ethernet (Full-Duplex) 100BASE-FX - Fiber Optic Ethernet (Full-Duplex) 100BASE-T4 - Twisted Pair Ethernet (obsolete) (Half-Duplex) 100BASE-VG - Voice Grade Twisted Pair Ethernet (obsolete) (Full-Duplex)
For 1000 Mbit/s (1 Gbit/s) Ethernet: 1000BASE-T - Twisted Pair Ethernet (Full-Duplex) 1000BASE-SX - Short Wavelength Fiber Optic Ethernet (Full-Duplex) 1000BASE-LX - Long Wavelength Fiber Optic Ethernet (Full-Duplex) 1000BASE-CX - Copper Ethernet (Full-Duplex) 1000BASE-LH - Long Haul Fiber Optic Ethernet (Full-Duplex) 1000BASE-ZX - Extended Reach Fiber Optic Ethernet (Full-Duplex) 1000BASE-T1 - Single Pair Ethernet (SPE) (Full-Duplex)
<?xml version='1.0' encoding='UTF-8'?>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<control-construct xmlns="urn:onf:yang:core-model-1-4">
[...]
<logical-termination-point>
<uuid>whatever-0000</uuid>
<layer-protocol>
[...]
<wire-interface-pac xmlns="urn:onf:yang:wire-interface-2-0">
<wire-interface-capability>
[...]
<!-- list all supported pmd-name by THIS SFP -->
<!-- 10Mbit/s Ethernet -->
<supported-pmd-kind-list>
<pmd-name>10BASE5</pmd-name>
<speed>10Mbit/s</speed>
<duplex>DUPLEX_TYPE_HALF_DUPLEX</duplex>
</supported-pmd-kind-list>
<supported-pmd-kind-list>
<pmd-name>10BASE2</pmd-name>
<speed>10Mbit/s</speed>
<duplex>DUPLEX_TYPE_HALF_DUPLEX</duplex>
</supported-pmd-kind-list>
<supported-pmd-kind-list>
<pmd-name>10BASE-T</pmd-name>
<speed>10Mbit/s</speed>
<duplex>DUPLEX_TYPE_HALF_DUPLEX</duplex>
</supported-pmd-kind-list>
<!-- 100Mbit/s Ethernet -->
<supported-pmd-kind-list>
<pmd-name>100BASE-TX</pmd-name>
<speed>100Mbit/s</speed>
<duplex>DUPLEX_TYPE_FULL_DUPLEX</duplex>
</supported-pmd-kind-list>
<supported-pmd-kind-list>
<pmd-name>100BASE-FX</pmd-name>
<speed>100Mbit/s</speed>
<duplex>DUPLEX_TYPE_FULL_DUPLEX</duplex>
</supported-pmd-kind-list>
<supported-pmd-kind-list>
<pmd-name>100BASE-T4</pmd-name>
<speed>100Mbit/s</speed>
<duplex>DUPLEX_TYPE_HALF_DUPLEX</duplex>
</supported-pmd-kind-list>
<supported-pmd-kind-list>
<pmd-name>100BASE-VG</pmd-name>
<speed>100Mbit/s</speed>
<duplex>DUPLEX_TYPE_FULL_DUPLEX</duplex>
</supported-pmd-kind-list>
<!-- 100Mbit/s Ethernet -->
<supported-pmd-kind-list>
<pmd-name>1000BASE-T</pmd-name>
<speed>1000Mbit/s</speed>
<duplex>DUPLEX_TYPE_FULL_DUPLEX</duplex>
</supported-pmd-kind-list>
<supported-pmd-kind-list>
<pmd-name>1000BASE-SX</pmd-name>
<speed>1000Mbit/s</speed>
<duplex>DUPLEX_TYPE_FULL_DUPLEX</duplex>
</supported-pmd-kind-list>
<supported-pmd-kind-list>
<pmd-name>1000BASE-LX</pmd-name>
<speed>1000Mbit/s</speed>
<duplex>DUPLEX_TYPE_FULL_DUPLEX</duplex>
</supported-pmd-kind-list>
<supported-pmd-kind-list>
<pmd-name>1000BASE-CX</pmd-name>
<speed>1000Mbit/s</speed>
<duplex>DUPLEX_TYPE_FULL_DUPLEX</duplex>
</supported-pmd-kind-list>
<supported-pmd-kind-list>
<pmd-name>1000BASE-LH</pmd-name>
<speed>1000Mbit/s</speed>
<duplex>DUPLEX_TYPE_FULL_DUPLEX</duplex>
</supported-pmd-kind-list>
<supported-pmd-kind-list>
<pmd-name>1000BASE-ZX</pmd-name>
<speed>1000Mbit/s</speed>
<duplex>DUPLEX_TYPE_FULL_DUPLEX</duplex>
</supported-pmd-kind-list>
<supported-pmd-kind-list>
<pmd-name>1000BASE-T1</pmd-name>
<speed>1000Mbit/s</speed>
<duplex>DUPLEX_TYPE_FULL_DUPLEX</duplex>
</supported-pmd-kind-list>
<auto-pmd-negotiation-is-avail>true</auto-pmd-negotiation-is-avail>
<auto-negotiation-pmd-selection-is-avail>true</auto-negotiation-pmd-selection-is-avail>
[...]
</wire-interface-capability>
<wire-interface-configuration>
<interface-name>my-fancy-wire-interface-12345</interface-name>
<interface-is-on>true</interface-is-on>
<remote-wire-interface-name>my-fancy-wire-interface-23456</remote-wire-interface-name>
[...]
<auto-pmd-negotiation-is-on>true</auto-pmd-negotiation-is-on>
<!-- even in case of auto-negotiation is on, I would always prepare the configuration for the default fixed-pmd-kind -->
<fixed-pmd-kind>1000BASE-T</fixed-pmd-kind>
<!-- If all pmd-names of the capabilities are part of auto-negotiation, the list can be empty -->
<auto-negotiation-pmd-list>10BASE5</auto-negotiation-pmd-list>
<auto-negotiation-pmd-list>10BASE2</auto-negotiation-pmd-list>
<auto-negotiation-pmd-list>10BASE-T</auto-negotiation-pmd-list>
<auto-negotiation-pmd-list>100BASE-TX</auto-negotiation-pmd-list>
<auto-negotiation-pmd-list>100BASE-FX</auto-negotiation-pmd-list>
<auto-negotiation-pmd-list>100BASE-T4</auto-negotiation-pmd-list>
<auto-negotiation-pmd-list>100BASE-VG</auto-negotiation-pmd-list>
<auto-negotiation-pmd-list>1000BASE-T</auto-negotiation-pmd-list>
<auto-negotiation-pmd-list>1000BASE-SX</auto-negotiation-pmd-list>
<auto-negotiation-pmd-list>1000BASE-LX</auto-negotiation-pmd-list>
<auto-negotiation-pmd-list>1000BASE-CX</auto-negotiation-pmd-list>
<auto-negotiation-pmd-list>1000BASE-LH</auto-negotiation-pmd-list>
<auto-negotiation-pmd-list>1000BASE-ZX</auto-negotiation-pmd-list>
<auto-negotiation-pmd-list>1000BASE-T1</auto-negotiation-pmd-list>
[...]
</wire-interface-configuration>
<wire-interface-status>
<interface-status>INTERFACE_STATUS_TYPE_UP</interface-status>
[...]
<pmd-negotiation-state>pmd-negotiation-state</pmd-negotiation-state>
<pmd-is-up>true</pmd-is-up>
<pmd-kind-cur>1000BASE-T</pmd-kind-cur>
</wire-interface-status>
</wire-interface-pac>
</layer-protocol>
[...]
</logical-termination-point>
</control-construct>
</data>
` ``
A physical 1000BASE-T interface can be operated (manually or by auto-negotiation) at 10, 100, or 1000 Mbit/s, either full duplex or half duplex. I don't see how this can be expressed in the proposal.
Proposal:
description "PMD names according to IEEE 802.3 or Ethernet speed of the port or vendor specific.";
After reaching out to IEEE experts - and unofficial statement is the specific rates are not mentioned by intention.
Decision made at the 5G-xhaul call at 6th of December 2023:
The existing comment of the PmdKind::pmdName : String attribute shall be replaced by the following formulation: "The PMD name shall be selected in accordance with IEEE 802.3. Full duplex and half duplex are to be indicated by appending '_FD' and '_HD'. If the implementation would support additional lower speeds within the same PMD, speeds differing from the IEEE 802.3 specifications shall be expressed in Mbit/s between the official PMD name and the duplex indicator (example: 1000BASE-T_10_FD)."
Comment changed as decided in the UML.
The current description/comment for the parameter "pmd-name/pmdName" is:
There is a request to change the description to
However, the scope of the wireInterface model is restricted to some Ethernet PHY interface.