This commit consists of:
1) Yang annotations to the protobuf definitions. These annotations, when
added to the relevant proto files in Voltha, allow us to convert
the voltha proto schemas into Yang schemas without the need to change the
model definitions.
2) Update to the Yang parser to handle the above annotations
3) Some initial work on the netconf GET RPCs (work in progress)
4) Cleanup
Change-Id: I5e4f4217850f0beb1c41aca1b2530a41e4f8a809
diff --git a/netconf/session/nc_protocol_handler.py b/netconf/session/nc_protocol_handler.py
index a08ea37..c64c2c1 100644
--- a/netconf/session/nc_protocol_handler.py
+++ b/netconf/session/nc_protocol_handler.py
@@ -180,7 +180,9 @@
rpc_handler=rpc_handler,
is_error=response.is_error,
response=response)
- self.send_rpc_reply(response.node, rpc)
+ # self.send_rpc_reply(response.node, rpc)
+ self.send_rpc_reply(self.get_instance(), rpc)
+
if response.close_session:
log.info('response-closing-session', response=response)
self.close()
@@ -230,3 +232,372 @@
self.session.session_opened = False
self.connected.callback(None)
log.info('closing-client')
+
+ # Example of a properly formatted Yang-XML message
+ def get_instance(self):
+ xml_string = """
+ <data>
+ <Voltha xmlns="urn:opencord:params:xml:ns:voltha:ietf-voltha">
+ <instances>
+ <log_level>INFO</log_level>
+ <device_types>
+ <adapter>simulated_onu</adapter>
+ <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+ <id>simulated_onu</id>
+ <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+ </device_types>
+ <device_types>
+ <adapter>tibit_onu</adapter>
+ <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+ <id>tibit_onu</id>
+ <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+ </device_types>
+ <device_types>
+ <adapter>maple_olt</adapter>
+ <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+ <id>maple_olt</id>
+ <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+ </device_types>
+ <device_types>
+ <adapter>tibit_olt</adapter>
+ <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+ <id>tibit_olt</id>
+ <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+ </device_types>
+ <device_types>
+ <adapter>broadcom_onu</adapter>
+ <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+ <id>broadcom_onu</id>
+ <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+ </device_types>
+ <device_types>
+ <adapter>simulated_olt</adapter>
+ <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+ <id>simulated_olt</id>
+ <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+ </device_types>
+ <logical_devices>
+ <datapath_id>1</datapath_id>
+ <root_device_id>simulated_olt_1</root_device_id>
+ <switch_features>
+ <auxiliary_id>0</auxiliary_id>
+ <n_tables>2</n_tables>
+ <datapath_id>0</datapath_id>
+ <capabilities>15</capabilities>
+ <n_buffers>256</n_buffers>
+ </switch_features>
+ <flows/>
+ <id>simulated1</id>
+ <flow_groups/>
+ <ports>
+ <device_port_no>2</device_port_no>
+ <root_port>False</root_port>
+ <device_id>simulated_onu_1</device_id>
+ <id>onu1</id>
+ <ofp_port>
+ <hw_addr>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>1</item>
+ </hw_addr>
+ <curr_speed>32</curr_speed>
+ <curr>4128</curr>
+ <name>onu1</name>
+ <supported>0</supported>
+ <state>4</state>
+ <max_speed>32</max_speed>
+ <advertised>4128</advertised>
+ <peer>4128</peer>
+ <config>0</config>
+ <port_no>1</port_no>
+ </ofp_port>
+ </ports>
+ <ports>
+ <device_port_no>2</device_port_no>
+ <root_port>False</root_port>
+ <device_id>simulated_onu_2</device_id>
+ <id>onu2</id>
+ <ofp_port>
+ <hw_addr>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>2</item>
+ </hw_addr>
+ <curr_speed>32</curr_speed>
+ <curr>4128</curr>
+ <name>onu2</name>
+ <supported>0</supported>
+ <state>4</state>
+ <max_speed>32</max_speed>
+ <advertised>4128</advertised>
+ <peer>4128</peer>
+ <config>0</config>
+ <port_no>2</port_no>
+ </ofp_port>
+ </ports>
+ <ports>
+ <device_port_no>2</device_port_no>
+ <root_port>True</root_port>
+ <device_id>simulated_olt_1</device_id>
+ <id>olt1</id>
+ <ofp_port>
+ <hw_addr>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>129</item>
+ </hw_addr>
+ <curr_speed>32</curr_speed>
+ <curr>4128</curr>
+ <name>olt1</name>
+ <supported>0</supported>
+ <state>4</state>
+ <max_speed>32</max_speed>
+ <advertised>4128</advertised>
+ <peer>4128</peer>
+ <config>0</config>
+ <port_no>129</port_no>
+ </ofp_port>
+ </ports>
+ <desc>
+ <dp_desc>n/a</dp_desc>
+ <sw_desc>simualted pon</sw_desc>
+ <hw_desc>simualted pon</hw_desc>
+ <serial_num>985c4449d50a441ca843401e2f44e682</serial_num>
+ <mfr_desc>cord porject</mfr_desc>
+ </desc>
+ </logical_devices>
+ <devices>
+ <item>
+ <vendor>simulated</vendor>
+ <parent_port_no>0</parent_port_no>
+ <software_version>1.0</software_version>
+ <connect_status>UNKNOWN</connect_status>
+ <type>simulated_olt</type>
+ <adapter>simulated_olt</adapter>
+ <vlan>0</vlan>
+ <hardware_version>n/a</hardware_version>
+ <flows>
+ <items/>
+ </flows>
+ <ports>
+ <item>
+ <peers>
+ <item>
+ <port_no>1</port_no>
+ <device_id>simulated_onu_1</device_id>
+ </item>
+ <item>
+ <port_no>1</port_no>
+ <device_id>simulated_onu_2</device_id>
+ </item>
+ </peers>
+ <label>pon</label>
+ <oper_status>UNKNOWN</oper_status>
+ <admin_state>UNKNOWN</admin_state>
+ <type>PON_OLT</type>
+ <port_no>1</port_no>
+ <device_id>simulated_olt_1</device_id>
+ </item>
+ <item>
+ <peers/>
+ <label>eth</label>
+ <oper_status>UNKNOWN</oper_status>
+ <admin_state>UNKNOWN</admin_state>
+ <type>ETHERNET_NNI</type>
+ <port_no>2</port_no>
+ <device_id>simulated_olt_1</device_id>
+ </item>
+ </ports>
+ <parent_id/>
+ <oper_status>DISCOVERED</oper_status>
+ <flow_groups>
+ <items/>
+ </flow_groups>
+ <admin_state>UNKNOWN</admin_state>
+ <serial_number>19addcd7305d4d4fa90300cb8e4ab9a6</serial_number>
+ <model>n/a</model>
+ <root>True</root>
+ <id>simulated_olt_1</id>
+ <firmware_version>n/a</firmware_version>
+ </item>
+ <item>
+ <vendor>simulated</vendor>
+ <parent_port_no>1</parent_port_no>
+ <software_version>1.0</software_version>
+ <connect_status>UNKNOWN</connect_status>
+ <root>False</root>
+ <adapter>simulated_onu</adapter>
+ <vlan>101</vlan>
+ <hardware_version>n/a</hardware_version>
+ <flows>
+ <items/>
+ </flows>
+ <ports>
+ <item>
+ <peers/>
+ <label>eth</label>
+ <oper_status>UNKNOWN</oper_status>
+ <admin_state>UNKNOWN</admin_state>
+ <type>ETHERNET_UNI</type>
+ <port_no>2</port_no>
+ <device_id>simulated_onu_1</device_id>
+ </item>
+ <item>
+ <peers>
+ <item>
+ <port_no>1</port_no>
+ <device_id>simulated_olt_1</device_id>
+ </item>
+ </peers>
+ <label>pon</label>
+ <oper_status>UNKNOWN</oper_status>
+ <admin_state>UNKNOWN</admin_state>
+ <type>PON_ONU</type>
+ <port_no>1</port_no>
+ <device_id>simulated_onu_1</device_id>
+ </item>
+ </ports>
+ <parent_id>simulated_olt_1</parent_id>
+ <oper_status>DISCOVERED</oper_status>
+ <flow_groups>
+ <items/>
+ </flow_groups>
+ <admin_state>UNKNOWN</admin_state>
+ <serial_number>8ce6514e1b324d349038d9a80af04772</serial_number>
+ <model>n/a</model>
+ <type>simulated_onu</type>
+ <id>simulated_onu_1</id>
+ <firmware_version>n/a</firmware_version>
+ </item>
+ <item>
+ <vendor>simulated</vendor>
+ <parent_port_no>1</parent_port_no>
+ <software_version>1.0</software_version>
+ <connect_status>UNKNOWN</connect_status>
+ <root>False</root>
+ <adapter>simulated_onu</adapter>
+ <vlan>102</vlan>
+ <hardware_version>n/a</hardware_version>
+ <flows>
+ <items/>
+ </flows>
+ <ports>
+ <item>
+ <peers/>
+ <label>eth</label>
+ <oper_status>UNKNOWN</oper_status>
+ <admin_state>UNKNOWN</admin_state>
+ <type>ETHERNET_UNI</type>
+ <port_no>2</port_no>
+ <device_id>simulated_onu_2</device_id>
+ </item>
+ <item>
+ <peers>
+ <item>
+ <port_no>1</port_no>
+ <device_id>simulated_olt_1</device_id>
+ </item>
+ </peers>
+ <label>pon</label>
+ <oper_status>UNKNOWN</oper_status>
+ <admin_state>UNKNOWN</admin_state>
+ <type>PON_ONU</type>
+ <port_no>1</port_no>
+ <device_id>simulated_onu_2</device_id>
+ </item>
+ </ports>
+ <parent_id>simulated_olt_1</parent_id>
+ <oper_status>DISCOVERED</oper_status>
+ <flow_groups>
+ <items/>
+ </flow_groups>
+ <admin_state>UNKNOWN</admin_state>
+ <serial_number>0dfbb5af422044639c0660b518c06519</serial_number>
+ <model>n/a</model>
+ <type>simulated_onu</type>
+ <id>simulated_onu_2</id>
+ <firmware_version>n/a</firmware_version>
+ </item>
+ </devices>
+ <instance_id>compose_voltha_1</instance_id>
+ <version>0.9.0</version>
+ <health>
+ <state>HEALTHY</state>
+ </health>
+ <device_groups>
+ <item>
+ <logical_devices/>
+ <id>1</id>
+ <devices/>
+ </item>
+ </device_groups>
+ <adapters>
+ <item>
+ <config>
+ <log_level>INFO</log_level>
+ </config>
+ <version>0.1</version>
+ <vendor>Voltha project</vendor>
+ <id>simulated_onu</id>
+ <logical_device_ids/>
+ </item>
+ <item>
+ <config>
+ <log_level>INFO</log_level>
+ </config>
+ <version>0.1</version>
+ <vendor>Tibit Communications Inc.</vendor>
+ <id>tibit_onu</id>
+ <logical_device_ids/>
+ </item>
+ <item>
+ <config>
+ <log_level>INFO</log_level>
+ </config>
+ <version>0.1</version>
+ <vendor>Voltha project</vendor>
+ <id>maple_olt</id>
+ <logical_device_ids/>
+ </item>
+ <item>
+ <config>
+ <log_level>INFO</log_level>
+ </config>
+ <version>0.1</version>
+ <vendor>Tibit Communications Inc.</vendor>
+ <id>tibit_olt</id>
+ <logical_device_ids/>
+ </item>
+ <item>
+ <config>
+ <log_level>INFO</log_level>
+ </config>
+ <version>0.1</version>
+ <vendor>Voltha project</vendor>
+ <id>broadcom_onu</id>
+ <logical_device_ids/>
+ </item>
+ <item>
+ <config>
+ <log_level>INFO</log_level>
+ </config>
+ <version>0.1</version>
+ <vendor>Voltha project</vendor>
+ <id>simulated_olt</id>
+ <logical_device_ids/>
+ </item>
+ </adapters>
+ </instances>
+ </Voltha>
+ </data>
+ """
+ return etree.fromstring(xml_string)
\ No newline at end of file