openBackhaul / wireInterface

Technology specific interface definition for Ethernet PHY interfaces according to IEEE 802.3
Apache License 2.0
3 stars 1 forks source link

Clarification about the scope of the WireInterface #46

Open demx8as6 opened 1 year ago

demx8as6 commented 1 year ago

The current description/comment for the parameter "pmd-name/pmdName" is:

    leaf pmd-name {
      type string;
      config false;
      description
        "To be chosen from the following list of PMD names according to IEEE 802.3 '10BASE5', 'FOIRL', '10BASE2', '10BROAD36', '10BASE-T', '10BASE-FP', '10BASE-FB', '10BASE-FL', '100BASE-T4', '100BASE-TX', '100BASE-BX10D', '100BASE-BX10U', '100BASE-FX', '100BASE-LX10', '100BASE-T2', '1000BASE-X', '1000BASE-BX10D', '1000BASE-BX10U', '1000BASE-LX', '1000BASE-LX10', '1000BASE-SX', '1000BASE-CX', '1000BASE-KX', '1000BASE-T', '2500BASE-X', '2500BASE-T', '10GBASE-X', '10GBASE-LX4', '10GBASE-KX4', '10GBASE-R', '10GBASE-ER', '10GBASE-LR', '10GBASE-SR', '10GBASE-LRM', '10GBASE-KR', '10GBASE-T', '10GBASE-PR-D1', '10GBASE-PR-D2', '10GBASE-PR-D3', '10GBASE-PR-D4', '10GBASE-PR-U1', '10GBASE-PR-U2', '10GBASE-PR-U3', '10GBASE-PR-U4', '40GBASE-R', '40GBASE-KR4', '40GBASE-CR4', '40GBASE-SR4', '4x10GBASE-SR', '40GBASE-LR4', '40GBASE-ER4', '40GBASE-FR', '100GBASE-R', '100GBASE-CR4', '100GBASE-KR4', '100GBASE-KP4', '100GBASE-CR10', '100GBASE-SR4', '100GBASE-SR10', '2x40GBASE-SR', '10x10GBASE-SR', '12x10GBASE-SR', '100GBASE-LR4', '100GBASE-ER4' and 'NOT_YET_DEFINED'. Some PMDs are distinguishing Full Duplex and Half Duplex. '_FD' and '_HD' are to be attached to the respective PMD name accordingly.";
    }

There is a request to change the description to

      description
        "PMD names according to IEEE 802.3 or Ethernet speed of the port";

However, the scope of the wireInterface model is restricted to some Ethernet PHY interface.

  description
    "This model is for vendor agnostic management of Ethernet PHY interfaces.
     Supported: '10BASE5', 'FOIRL', '10BASE2', '10BROAD36', '10BASE-T', '10BASE-FP', '10BASE-FB', '10BASE-FL', '100BASE-T4', '100BASE-TX', '100BASE-BX10D', '100BASE-BX10U', '100BASE-FX', '100BASE-LX10', '100BASE-T2', '1000BASE-X', '1000BASE-BX10D', '1000BASE-BX10U', '1000BASE-LX', '1000BASE-LX10', '1000BASE-SX', '1000BASE-CX', '1000BASE-KX', '1000BASE-T', '2500BASE-X', '2500BASE-T', '10GBASE-X', '10GBASE-LX4', '10GBASE-KX4', '10GBASE-R', '10GBASE-ER', '10GBASE-LR', '10GBASE-SR', '10GBASE-LRM', '10GBASE-KR', '10GBASE-T', '10GBASE-PR-D1', '10GBASE-PR-D2', '10GBASE-PR-D3', '10GBASE-PR-D4', '10GBASE-PR-U1', '10GBASE-PR-U2', '10GBASE-PR-U3', '10GBASE-PR-U4', '40GBASE-R', '40GBASE-KR4', '40GBASE-CR4', '40GBASE-SR4', '4x10GBASE-SR', '40GBASE-LR4', '40GBASE-ER4', '40GBASE-FR', '100GBASE-R', '100GBASE-CR4', '100GBASE-KR4', '100GBASE-KP4', '100GBASE-CR10', '100GBASE-SR4', '100GBASE-SR10', '2x40GBASE-SR', '10x10GBASE-SR', '12x10GBASE-SR', '100GBASE-LR4', '100GBASE-ER4' and 'NOT_YET_DEFINED.
     NOT supported: '2BASE-TL', '10PASS-TS', '1000BASE-PX10-D', '1000BASE-PX10-U', '1000BASE-PX20-D', '1000BASE-PX20-U', '1000BASE-PX30-D', '1000BASE-PX30-U', '1000BASE-PX40-D', '1000BASE-PX40-U', '10GBASE-W', '10GBASE-EW', '10GBASE-LW', '10GBASE-SW', '10/1GBASE-PRX-D1', '10/1GBASE-PRX-D2', '10/1GBASE-PRX-D3', '10/1GBASE-PRX-D4', '10/1GBASE-PRX-U1', '10/1GBASE-PRX-U2', '10/1GBASE-PRX-U3' and '10/1GBASE-PRX-U4'.
demx8as6 commented 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>

` ``
michbin commented 11 months ago

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.

demx8as6 commented 10 months ago

Proposal:

description "PMD names according to IEEE 802.3 or Ethernet speed of the port or vendor specific.";

demx8as6 commented 10 months ago

After reaching out to IEEE experts - and unofficial statement is the specific rates are not mentioned by intention.

demx8as6 commented 10 months ago

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)."

openBackhaul commented 9 months ago

Comment changed as decided in the UML.