Difference between revisions of "IETF 112 Hackathon"
(Created page with "* Scheduled presentation in Bitraf, Oslo 2021-11-03 17:00 UTC") |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | * |
+ | * 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 [https://datatracker.ietf.org/doc/draft-vassilev-bmwg-network-interconnect-tester/ 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. |
||
+ | |||
+ | <nowiki> |
||
+ | $ 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> |
||
+ | |||
+ | </nowiki> |
Latest revision as of 16:40, 8 November 2021
- 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>