IETF 112 Hackathon

From Yuma123 Wiki
Jump to navigationJump to search
  • Organized hands-on workshop for the project at Bitraf, Oslo 2021-11-03 17:00 UTC gained 1 new member of the team - Torfinn

Our goal was to implement the last 2 sec. 26 benchmarks to the RFC2544 python implementation based on YANG/NETCONF interface specified in draft-vassilev-bmwg-network-interconnect-tester

These are in fact often not implemented in commercial implementations. Especially the last one which requires automated mechanism to restart or powercycle the DUT that the benchmark implementation can control.

We designed YANG/NETCONF interface for a power distribution unit and implemented open-source/hardware device which we used to powercycle the DUT and measure the down time. Which turned to be a great demo for configuration with YANG/NETCONF without involving complex models. Here is the output of accessing the device with one YANG automated NETCONF client ( yangcli ) and switching off port 2 of the PDU which is connected to the DUT.

$ apt-get install yangcli
$ yangcli --server=lightside-instruments.com --ncport=10841 --user=user --password=ietf112 --echo-requests=true --echo-replies=true --display-mode=xml
...
yangcli user@lightside-instruments.com> xget-config source=running /

RPC Request 3 for session 1:

<get-config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <source>
    <running/>
  </source>
  <filter type="xpath" select="/"/>
</get-config>

RPC Data Reply 3 for session 2:

<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <data>
    <nacm xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-acm"/>
    <power-distribution-unit xmlns="http://lightide-instruments.com/ns/power-distribution-unit">
      <output>
        <index>0</index>
      </output>
      <output>
        <index>2</index>
      </output>
      <output>
        <index>4</index>
      </output>
    </power-distribution-unit>
  </data>
</rpc-reply>

yangcli user@lightside-instruments.com> delete /power-distribution-unit/output/

Filling list /power-distribution-unit/output:
Filling key leaf /power-distribution-unit/output/index:
Enter uint32 value for leaf <index>
yangcli user@lightside-instruments.com:delete> 2

RPC Request 4 for session 1:

<edit-config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <target>
    <candidate/>
  </target>
  <default-operation>merge</default-operation>
  <test-option>set</test-option>
  <config>
    <power-distribution-unit xmlns="http://lightide-instruments.com/ns/power-distribution-unit">
      <output 
        xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
        nc:operation="delete">
        <index>2</index>
      </output>
    </power-distribution-unit>
  </config>
</edit-config>

RPC OK Reply 4 for session 2:

yangcli user@lightside-instruments.com> commit

RPC Request 5 for session 1:

<commit xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"/>

RPC OK Reply 5 for session 2:

yangcli user@lightside-instruments.com>