tail-f-systems / JNC

JNC (Java NETCONF Client) is the name of a Java library for communicating with NETCONF agents, and a plugin for pyang (http://code.google.com/p/pyang/) to generate Java classes from YANG models, to be used by the JNC library.
Other
77 stars 87 forks source link

Not able to perform getConfig() #68

Closed nsinha123 closed 1 year ago

nsinha123 commented 8 years ago

Hi We have a netconf enabled router and I am able to perform get/get-config operations using Mg-Soft client browser. This is the output of getConfig() -

REQ:

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

RESP:

<?xml version="1.0" encoding="utf-8"?>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <configure xmlns="urn:nokia.com:sros:ns:yang:sr:conf">
    <qos>
      <sap-ingress>
      .....
</data>

But I am unable to perform the same operation using tailf Netconf client. Here is my code -

public class Client {
    public static void main(String args[]) throws JNCException, 
            ParserConfigurationException, SAXException, IOException {

        DeviceUser deviceUser;
        String deviceUserName = "user";
        deviceUser = new DeviceUser(deviceUserName, "admin", "admin");
        Device device = new Device("simulator", deviceUser, "10.135.16.13", 830);
        device.connect(deviceUserName);
        device.newSession(new Subscriber("simulator"), "mySession");
        NetconfSession session = device.getSession("mySession");

        NodeSet config = session.getConfig(NetconfSession.RUNNING);
        String xmlString = config.toXMLString();
        session.closeSession();
        System.out.println(xmlString);
    }
}

class Subscriber extends IOSubscriber {
    String devName;
    public static boolean rawMode = false;
    Subscriber(String devName) {
        super(rawMode);
        this.devName = devName;
    }
    public void input(String data) {
        System.out.println("RECV: " + data);
    }

    public void output(String data) {
        System.out.println("SEND: " + data);
    }
}

I am getting the following in the eclipse console -

SEND: <hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <capabilities>
    <capability>urn:ietf:params:netconf:base:1.0</capability>
  </capabilities>
</hello>

RECV: <hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <capabilities>
    <capability>urn:ietf:params:netconf:base:1.0</capability>
    <capability>urn:ietf:params:netconf:base:1.1</capability>
    <capability>urn:ietf:params:netconf:capability:writable-running:1.0</capability>
    <capability>urn:ietf:params:netconf:capability:candidate:1.0</capability>
    <capability>urn:ietf:params:netconf:capability:validate:1.0</capability>
    <capability>urn:ietf:params:netconf:capability:validate:1.1</capability>
    <capability>urn:ietf:params:netconf:capability:startup:1.0</capability>
    <capability>urn:ietf:params:netconf:capability:url:1.0?scheme=ftp,tftp,file</capability>
    <capability>urn:ietf:params:netconf:capability:with-defaults:1.0?basic-mode=trim&amp;also-supported=report-all</capability>
    <capability>urn:ietf:params:xml:ns:netconf:base:1.0?module=ietf-netconf&amp;revision=2011-06-01&amp;features=writable-running,validate,startup,url&amp;deviations=alu-netconf-deviations-r13</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:netconf-deviations-r13?module=alu-netconf-deviations-r13&amp;revision=2015-01-23</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:cli-content-layer-r13?module=alu-cli-content-layer-r13&amp;revision=2015-01-23</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-r13?module=alu-conf-r13&amp;revision=2016-06-24</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-aaa-r13?module=alu-conf-aaa-r13&amp;revision=2016-06-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-aa-r13?module=alu-conf-aa-r13&amp;revision=2016-06-23</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-calltrace-r13?module=alu-conf-calltrace-r13&amp;revision=2016-04-27</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-card-r13?module=alu-conf-card-r13&amp;revision=2015-10-30</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-cflowd-r13?module=alu-conf-cflowd-r13&amp;revision=2015-01-26</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-conn-prof-r13?module=alu-conf-conn-prof-r13&amp;revision=2015-11-03</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-con-profvlan-r13?module=alu-conf-con-profvlan-r13&amp;revision=2015-08-28</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-eth-cfm-r13?module=alu-conf-eth-cfm-r13&amp;revision=2016-06-13</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-eth-ring-r13?module=alu-conf-eth-ring-r13&amp;revision=2014-10-17</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-eth-tunnel-r13?module=alu-conf-eth-tunnel-r13&amp;revision=2016-06-13</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-filter-r13?module=alu-conf-filter-r13&amp;revision=2016-06-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-gmpls-tunnel-r13?module=alu-conf-gmpls-tunnel-r13&amp;revision=2014-12-09</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-ifgrphandler-r13?module=alu-conf-ifgrphandler-r13&amp;revision=2014-10-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-isa-r13?module=alu-conf-isa-r13&amp;revision=2016-02-29</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-lag-r13?module=alu-conf-lag-r13&amp;revision=2016-06-13</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-li-r13?module=alu-conf-li-r13&amp;revision=2016-04-21</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-log-r13?module=alu-conf-log-r13&amp;revision=2016-06-01</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-mcastmgmt-r13?module=alu-conf-mcastmgmt-r13&amp;revision=2015-03-12</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-mirror-r13?module=alu-conf-mirror-r13&amp;revision=2016-01-08</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-oam-pm-r13?module=alu-conf-oam-pm-r13&amp;revision=2015-11-03</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-open-flow-r13?module=alu-conf-open-flow-r13&amp;revision=2015-11-03</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-port-r13?module=alu-conf-port-r13&amp;revision=2015-08-27</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-port-access-r13?module=alu-conf-port-access-r13&amp;revision=2014-10-31</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-port-aps-r13?module=alu-conf-port-aps-r13&amp;revision=2014-10-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-port-ethernet-r13?module=alu-conf-port-ethernet-r13&amp;revision=2016-06-13</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-port-mbundle-r13?module=alu-conf-port-mbundle-r13&amp;revision=2014-10-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-port-network-r13?module=alu-conf-port-network-r13&amp;revision=2014-10-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-port-sonetsdh-r13?module=alu-conf-port-sonetsdh-r13&amp;revision=2015-06-11</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-port-tdm-r13?module=alu-conf-port-tdm-r13&amp;revision=2014-10-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-port-tdm-ds1-r13?module=alu-conf-port-tdm-ds1-r13&amp;revision=2014-12-15</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-port-tdm-ds3-r13?module=alu-conf-port-tdm-ds3-r13&amp;revision=2014-12-15</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-port-tdm-e1-r13?module=alu-conf-port-tdm-e1-r13&amp;revision=2014-12-15</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-port-tdm-e3-r13?module=alu-conf-port-tdm-e3-r13&amp;revision=2014-12-15</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-port-policy-r13?module=alu-conf-port-policy-r13&amp;revision=2015-12-09</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-pxc-r13?module=alu-conf-pxc-r13&amp;revision=2015-04-24</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-python-r13?module=alu-conf-python-r13&amp;revision=2016-06-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-qos-r13?module=alu-conf-qos-r13&amp;revision=2016-04-13</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-redundancy-r13?module=alu-conf-redundancy-r13&amp;revision=2016-03-25</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-r13?module=alu-conf-router-r13&amp;revision=2016-05-09</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-bgp-r13?module=alu-conf-router-bgp-r13&amp;revision=2016-06-06</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-dhcps-r13?module=alu-conf-router-dhcps-r13&amp;revision=2015-09-21</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-dhcp6-r13?module=alu-conf-router-dhcp6-r13&amp;revision=2016-06-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-fspec-r13?module=alu-conf-router-fspec-r13&amp;revision=2015-12-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-gmpls-r13?module=alu-conf-router-gmpls-r13&amp;revision=2015-11-03</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-igmp-r13?module=alu-conf-router-igmp-r13&amp;revision=2015-11-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-if-r13?module=alu-conf-router-if-r13&amp;revision=2016-04-29</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-isis-r13?module=alu-conf-router-isis-r13&amp;revision=2016-02-18</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-l2tp-r13?module=alu-conf-router-l2tp-r13&amp;revision=2016-05-03</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-ldp-r13?module=alu-conf-router-ldp-r13&amp;revision=2016-05-02</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-lmp-r13?module=alu-conf-router-lmp-r13&amp;revision=2015-09-08</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-mccacpl-r13?module=alu-conf-router-mccacpl-r13&amp;revision=2016-06-13</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-mld-r13?module=alu-conf-router-mld-r13&amp;revision=2015-09-22</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-mpls-r13?module=alu-conf-router-mpls-r13&amp;revision=2016-04-28</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-mpls-tp-r13?module=alu-conf-router-mpls-tp-r13&amp;revision=2015-11-09</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-nat-r13?module=alu-conf-router-nat-r13&amp;revision=2016-06-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-ogvalid-r13?module=alu-conf-router-ogvalid-r13&amp;revision=2015-11-03</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-ospf-r13?module=alu-conf-router-ospf-r13&amp;revision=2016-06-22</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-ospf3-r13?module=alu-conf-router-ospf3-r13&amp;revision=2016-06-22</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-pcep-r13?module=alu-conf-router-pcep-r13&amp;revision=2016-03-07</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-pim-r13?module=alu-conf-router-pim-r13&amp;revision=2016-06-07</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-policy-r13?module=alu-conf-router-policy-r13&amp;revision=2016-05-19</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-radprox-r13?module=alu-conf-router-radprox-r13&amp;revision=2015-11-03</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-rip-r13?module=alu-conf-router-rip-r13&amp;revision=2015-06-03</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-nhroute-r13?module=alu-conf-router-nhroute-r13&amp;revision=2014-09-26</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-radvert-r13?module=alu-conf-router-radvert-r13&amp;revision=2014-10-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-rsvp-r13?module=alu-conf-router-rsvp-r13&amp;revision=2015-06-03</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-wlan-r13?module=alu-conf-router-wlan-r13&amp;revision=2016-06-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-router-wpp-r13?module=alu-conf-router-wpp-r13&amp;revision=2015-03-04</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-saa-r13?module=alu-conf-saa-r13&amp;revision=2016-06-13</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-service-r13?module=alu-conf-service-r13&amp;revision=2016-03-23</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-apipe-r13?module=alu-conf-svc-apipe-r13&amp;revision=2016-02-26</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-cpipe-r13?module=alu-conf-svc-cpipe-r13&amp;revision=2016-02-26</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-cust-r13?module=alu-conf-svc-cust-r13&amp;revision=2015-09-23</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-dynsrv-r13?module=alu-conf-svc-dynsrv-r13&amp;revision=2015-09-11</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-egrmcgroup-r13?module=alu-conf-svc-egrmcgroup-r13&amp;revision=2015-09-11</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-epipe-r13?module=alu-conf-svc-epipe-r13&amp;revision=2016-06-27</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-fpipe-r13?module=alu-conf-svc-fpipe-r13&amp;revision=2016-02-26</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-ies-r13?module=alu-conf-svc-ies-r13&amp;revision=2016-06-13</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-ies-if-r13?module=alu-conf-svc-ies-if-r13&amp;revision=2016-06-27</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-ies-subif-r13?module=alu-conf-svc-ies-subif-r13&amp;revision=2016-06-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-ipfix-r13?module=alu-conf-svc-ipfix-r13&amp;revision=2014-09-26</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-ipipe-r13?module=alu-conf-svc-ipipe-r13&amp;revision=2016-06-13</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-nat-r13?module=alu-conf-svc-nat-r13&amp;revision=2016-04-13</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-sdp-r13?module=alu-conf-svc-sdp-r13&amp;revision=2016-05-09</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-template-r13?module=alu-conf-svc-template-r13&amp;revision=2016-04-06</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-upnp-r13?module=alu-conf-svc-upnp-r13&amp;revision=2015-09-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vpls-r13?module=alu-conf-svc-vpls-r13&amp;revision=2016-06-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vpls-igmp-r13?module=alu-conf-svc-vpls-igmp-r13&amp;revision=2014-09-26</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vpls-macmo-r13?module=alu-conf-svc-vpls-macmo-r13&amp;revision=2014-10-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vpls-macpr-r13?module=alu-conf-svc-vpls-macpr-r13&amp;revision=2014-10-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vpls-meshs-r13?module=alu-conf-svc-vpls-meshs-r13&amp;revision=2016-06-13</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vpls-mld-r13?module=alu-conf-svc-vpls-mld-r13&amp;revision=2014-10-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vpls-pim-r13?module=alu-conf-svc-vpls-pim-r13&amp;revision=2015-07-07</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vpls-sap-r13?module=alu-conf-svc-vpls-sap-r13&amp;revision=2016-06-27</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vpls-split-r13?module=alu-conf-svc-vpls-split-r13&amp;revision=2014-10-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vpls-spoke-r13?module=alu-conf-svc-vpls-spoke-r13&amp;revision=2016-06-13</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vpls-spb-r13?module=alu-conf-svc-vpls-spb-r13&amp;revision=2016-02-04</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vpls-stp-r13?module=alu-conf-svc-vpls-stp-r13&amp;revision=2014-09-26</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-r13?module=alu-conf-svc-vprn-r13&amp;revision=2016-06-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-bgp-r13?module=alu-conf-svc-vprn-bgp-r13&amp;revision=2016-05-04</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-dhcps-r13?module=alu-conf-svc-vprn-dhcps-r13&amp;revision=2015-09-21</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-dhcp6-r13?module=alu-conf-svc-vprn-dhcp6-r13&amp;revision=2016-06-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-fspec-r13?module=alu-conf-svc-vprn-fspec-r13&amp;revision=2016-02-11</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-igmp-r13?module=alu-conf-svc-vprn-igmp-r13&amp;revision=2015-11-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-if-r13?module=alu-conf-svc-vprn-if-r13&amp;revision=2016-06-27</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-isis-r13?module=alu-conf-svc-vprn-isis-r13&amp;revision=2016-02-18</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-l2tp-r13?module=alu-conf-svc-vprn-l2tp-r13&amp;revision=2016-05-03</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-mld-r13?module=alu-conf-svc-vprn-mld-r13&amp;revision=2015-10-14</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-nat-r13?module=alu-conf-svc-vprn-nat-r13&amp;revision=2016-06-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-nwif-r13?module=alu-conf-svc-vprn-nwif-r13&amp;revision=2016-04-29</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svs-vprn-ntp-r13?module=alu-conf-svs-vprn-ntp-r13&amp;revision=2015-05-05</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-ospf-r13?module=alu-conf-svc-vprn-ospf-r13&amp;revision=2016-06-22</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-ospf3-r13?module=alu-conf-svc-vprn-ospf3-r13&amp;revision=2016-06-22</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-pim-r13?module=alu-conf-svc-vprn-pim-r13&amp;revision=2015-08-17</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-ptp-r13?module=alu-conf-svc-vprn-ptp-r13&amp;revision=2015-05-22</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-vprn-radprox-r13?module=alu-conf-vprn-radprox-r13&amp;revision=2015-06-23</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-rip-r13?module=alu-conf-svc-vprn-rip-r13&amp;revision=2015-06-03</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-ripng-r13?module=alu-conf-svc-vprn-ripng-r13&amp;revision=2014-10-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-radv-r13?module=alu-conf-svc-vprn-radv-r13&amp;revision=2014-10-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-srcad-r13?module=alu-conf-svc-vprn-srcad-r13&amp;revision=2015-01-27</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-spoke-r13?module=alu-conf-svc-vprn-spoke-r13&amp;revision=2015-12-17</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-subif-r13?module=alu-conf-svc-vprn-subif-r13&amp;revision=2016-06-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-wlan-r13?module=alu-conf-svc-vprn-wlan-r13&amp;revision=2016-06-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-svc-vprn-wpp-r13?module=alu-conf-svc-vprn-wpp-r13&amp;revision=2015-03-04</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-sflow-r13?module=alu-conf-sflow-r13&amp;revision=2014-09-26</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-sfm-r13?module=alu-conf-sfm-r13&amp;revision=2014-10-20</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-subscrmgmt-r13?module=alu-conf-subscrmgmt-r13&amp;revision=2016-06-27</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-submgmt-ludb-r13?module=alu-conf-submgmt-ludb-r13&amp;revision=2016-06-14</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-submgmt-wlangw-r13?module=alu-conf-submgmt-wlangw-r13&amp;revision=2016-06-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-system-r13?module=alu-conf-system-r13&amp;revision=2016-06-08</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-sys-pwrmgmt-r13?module=alu-conf-sys-pwrmgmt-r13&amp;revision=2015-05-25</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-sys-ptp-r13?module=alu-conf-sys-ptp-r13&amp;revision=2015-06-25</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-sys-sec-r13?module=alu-conf-sys-sec-r13&amp;revision=2016-06-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-vrrp-r13?module=alu-conf-vrrp-r13&amp;revision=2015-10-14</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:conf-vsm-r13?module=alu-conf-vsm-r13&amp;revision=2015-09-16</capability>
    <capability>urn:alcatel-lucent.com:sros:ns:yang:types?module=alu-types&amp;revision=2015-01-19</capability>
    <capability>urn:nokia.com:sros:ns:yang:sr:conf?module=nokia-conf&amp;revision=2016-01-01</capability>
    <capability>urn:nokia.com:sros:ns:yang:sr:sros-yang-extensions?module=nokia-sros-yang-extensions&amp;revision=2016-01-01</capability>
    <capability>urn:nokia.com:sros:ns:yang:sr:types-filter?module=nokia-types-filter&amp;revision=2016-01-01</capability>
    <capability>urn:nokia.com:sros:ns:yang:sr:types-qos?module=nokia-types-qos&amp;revision=2016-01-01</capability>
    <capability>urn:nokia.com:sros:ns:yang:sr:types-services?module=nokia-types-services&amp;revision=2016-01-01</capability>
    <capability>urn:nokia.com:sros:ns:yang:sr:types-sros?module=nokia-types-sros&amp;revision=2016-01-01</capability>
    <capability>urn:nokia.com:sros:ns:yang:sr:major-release-14</capability>
  </capabilities>
  <session-id>52</session-id>
</hello>

SEND: <nc:rpc xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" nc:message-id="1">
  <nc:get-config>
    <nc:source>
      <nc:running/>    </nc:source>
  </nc:get-config>
</nc:rpc>

RECV: <?xml version="1.0" encoding="UTF-8"?>
<rpc-reply urn:ietf:params:xml:ns:netconf:base:1.0:message-id="1" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <rpc-error>
        <error-type>rpc</error-type>
        <error-tag>missing-attribute</error-tag>
        <error-severity>error</error-severity>
        <error-info>
            <bad-element>message-id</bad-element>
            <bad-element>rpc</bad-element>
        </error-info>
        <error-message>
            Check that message-id attribute is present and less than 4096 characters
        </error-message>
    </rpc-error>
</rpc-reply>

[Fatal Error] :2:20: Attribute name "urn:ietf" associated with an element type "rpc-reply" must be followed by the ' = ' character.
[Fatal Error] :2:20: Attribute name "urn:ietf" associated with an element type "rpc-reply" must be followed by the ' = ' character.
org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 20; Attribute name "urn:ietf" associated with an element type "rpc-reply" must be followed by the ' = ' character.
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1239)
    at com.tailf.jnc.YangXMLParser.parse(YangXMLParser.java:50)
    at com.tailf.jnc.XMLParser.parse(XMLParser.java:154)
    at com.tailf.jnc.NetconfSession.recv_rpc_reply(NetconfSession.java:1495)
    at com.tailf.jnc.NetconfSession.recv_rpc_reply_data(NetconfSession.java:1472)
    at com.tailf.jnc.NetconfSession.getConfig(NetconfSession.java:443)
    at client.Client.main(Client.java:51)
Exception in thread "main" Parse error: parse error: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 20; Attribute name "urn:ietf" associated with an element type "rpc-reply" must be followed by the ' = ' character.
    at com.tailf.jnc.YangXMLParser.parse(YangXMLParser.java:54)
    at com.tailf.jnc.XMLParser.parse(XMLParser.java:154)
    at com.tailf.jnc.NetconfSession.recv_rpc_reply(NetconfSession.java:1495)
    at com.tailf.jnc.NetconfSession.recv_rpc_reply_data(NetconfSession.java:1472)
    at com.tailf.jnc.NetconfSession.getConfig(NetconfSession.java:443)
    at client.Client.main(Client.java:51)

I have been debugging this issue for a long time, but I am unable to fix it. Can you please help me out? I will be really indebted to you.

Thanks and regards...

klacke commented 8 years ago

Interesting, alcalu and NOKIA URNs.

However, the device is not std compliant yet. It's sending broken XML. The NETCONF impl there needs more work.

I'm not sure where to start, but you must take this with the manufacturer of the device.

For example the rpc-error, a proper one looks as:

<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="3">

application operation-failed error ...... So, what's failing here isn't JNC code. It's the com.sun.org.apache.xerces XML parser that fails to parse the XML sent from the device. Nothing much I can do about that. Thanks /klacke
nsinha123 commented 8 years ago

Hi Klacke

Thanks a lot for replying back in such a sort time and explaining everything in details.

Incidentally I posted the same question in stackoverflow and one knowledgeable person has replied that while sending get-config request to the server, the JNC client should send the message-id in default namespace instead of the nc namespace. Please look at here - stackoverflow. So do you agree with him, should we change JNC to make the message-id in default namespace?

Thanks in advance...

klacke commented 8 years ago

On 29/06/16 19:42, nsinha123 wrote:

Hi Klacke

Thanks a lot for replying back in such a sort time and explaining everything in details.

Incidentally I posted the same question in stackoverflow and one knowledgeable person has replied that while sending get-config request to the server, the JNC client should send the message-id in default namespace instead of the nc namespace. Please look at here - stackoverflow http://stackoverflow.com/questions/38099946/netconf-not-able-to-perform-getconfig/38102036#38102036. So do you agree with him, should we change JNC to make the message-id in default namespace?

Hmmm, maybe, from an aesthetics POV, OTOH correct XML is correct XML. Weather the default ns is used or an explicit ns is used is irrelevant. Both are correct. All XML parsers should cope equally well with both. If not, they are buggy and cannot parse XML.

The problem at hand here isn't what the client sends, but what the agent replies with - which wasn't XML

/klacke

nsinha123 commented 8 years ago

Hi Klacke, I am now able to make it work. I had to modify the NetconfSession.java and modified line 1618 as follows – //out.print("<" + nc + "rpc " + xmlnsAttr + " " + nc + "message-id=\""); out.print("<" + nc + "rpc " + xmlnsAttr + " " + "message-id=\""); You can see that I have removed the nc namespace and bingo. I am able to send get-config to the router and get reply. So the router was not able to detect the message-id properly and crying. After it gets the proper message-id it sends the proper XML. So do you think there is anything wrong with the JNC code? Thanks for your help.

klacke commented 8 years ago

On 30/06/16 08:26, nsinha123 wrote:

Hi Klacke, I am now able to make it work. I had to modify the NetconfSession.java and modified line 1618 as follows – //out.print("<" + nc + "rpc " + xmlnsAttr + " " + nc + "message-id=\""); out.print("<" + nc + "rpc " + xmlnsAttr + " " + "message-id=\""); You can see that I have removed the nc namespace and bingo. I am able to send get-config to the router and get reply.

Which mean that JNC is now sending erroneous XML

So the router was not able to detect the message-id properly and crying.

Also, if there ever are errors. The router will still send the badly formatted rpc-error.

After it gets the proper message-id it sends the proper XML.

That patch above now means that JNC instead of sending

nc:get-config nc:source nc:running/ /nc:source /nc:get-config /nc:rpc It would send nc:get-config nc:source nc:running/ /nc:source /nc:get-config /nc:rpc Which is wrong, since no default ns is used, we MUST indicate which ns the message-id attribute belongs to. It could be argued that JNC should use default ns and send That would be better, agreed. But that still doesn't really help here since the agent a) Cannot parse the XML when it's correct, but can when it's semi-correct b) Sends badly formatted XML in rpc-error which wee will never be to parse > So do you think there is anything wrong with the JNC code? Not really no. It could be improved to use default ns for the netconf base ns though. /klacke
nsinha123 commented 8 years ago

Thanks Klacke for your great explanation.