1. RAN-Sim Controller

Steps to build the RAN-Sim Controller setup:

1.  Clone and Checkout Ran-Sim Controller(use Dublin branch)

            git clone https://github.com/onap-oof-pci-poc/ran-sim.git

            cd ran-sim/ransim/

2.  Copy ‘m2_settings.xml’ from ‘<YOURFOLDER>/ransim/’ to <HOME>/.m2/ folder as settings.xml file after updating environment specific configurations. 

     If the file already exists in <HOME>/.m2/ folder, then merge this file content into the existing file appropriately.

     Note: settings.xml entries are mandatory to include dependencies.

3. Open the terminal and navigate to the '<YOURFOLDER>/ransim/ransimctrlr'

4.  The following capabilities can be modified in the 'ransim.properties' file based on user capabilities and configurations.

        File directory:

           <YOURFOLDER>/ransim/ransimctrlr/packages/base/src/files/install/servers/ransim/bin/ransim.properties

            a) serverIdPrefix:

                        Netconf server comman prefix (use default value present in the file)

            b) numberOfCellsPerNCServer:

                        Maximum number of cells that can be handled in a single netconf server(use default value present in the file).

            c) numberOfProcessPerMc:

                        Maximum number of netconf servers that can run in a single machine(use default value present in the file, which is for a machine of 8 GB RAM)

                        (A single netconf server uses approximately 350MB).

            d) numberOfMachines:

                        Maximum number of machines available(use default value present in the file).

            e) GridSize: (Applicable only for HONEYCOMB representation)

                        The number of cells that can be accommodated along one side of the cluster for an auto-generated layout.

                         However, it has no relevance now, as the initial layout is generated from a file. So use default value as 1.

            f) strictValidateRansimAgentsAvailability:

                        A boolean value to check if any RAN-Sim agents are running (use default value present in the file).

            g) sdnrServerIp:

                       Neglect(Refer point 5 to update SDNR details).

            h) sdnrServerPort:

                       Neglect(Refer point 5 to update SDNR details).

            i) sdnrServerUserid:

                        Negelct (Refer point 5 to update SDNR details).

            j) sdnrServerPassword:

                        Negelct (Refer point 5 to update SDNR details).

            k) maxPciValueAllowed:

                        maximum value of the physical cell Id. (Default is 503).

           l)dumpFileName

                        Location of the dumpfile to load the topology.

                        The dump file is loaded from '<YOURFOLDER>/ransim/docker/config'. A sample dump file - 'sample.json' contains deatils of 1000 cells.

                         For the controller to access the dump file from the the above location use the path - /tmp/ransim-install/config/sample.json

5. The SDNR details can be updated in the file '<YOURFOLDER>/ransim/docker/docker-compose.yml'.

                    environment:

                           - SDNR_IP={SDNR IP address}

                          - SDNR_PORT={SDNR port number}

                           - SDNR_USER={SDNR user ID}

                           - SDNR_PASSWORD={SDNR user password}

6.  Run the following command in the terminal

                        mvn clean install

7. After successful build navigate to '<YOURFOLDER>/ransim/docker' directory.

8. Run the following three commands in the terminal:

                        'mvn prepare-package'

                        'docker build -t onap/ransim-demo ransim-docker'

                        'docker-compose up'

 Note: Use docker compose version 1.6.0 or above.

Once the ransim and mariadb containers are started, you can see logs similar to below image      

9. Access the GUI using the following url in the web browser:

                         ‘http://<yourIP>:8081/ransimui/index.html

10. Access the swagger ui using the following url:

                        ‘http://<yourIP>:8081/ransim/api/swagger-ui.html

11. Try the following url in Websocket client extension in the web browser to verify the connectivity:

                        ‘ws://<yourIP>:8081/ransim/RansimAgent/hai’


Steps to check the RAN-Sim Controller logs

1. Open the console and enter the following command:

            'docker ps'

2. Once the container details is displayed enter the following command:

            docker exec -it ransim bash

3. Navigate to '/opt/app/policy/servers/ransim/logs' using the cd command.

4. Execute the following command to check the logs:

            'tail -f ransim-rest.log'


Steps to access the tables in mysql and check table contents

1. Enter the following command in console to access mysql:

            'mysql --user=root --password=secret --host=127.0.0.1 --port=3306 ransim_db'

2. Type 'show tables;' to check the and access the tables.


2. RAN-Sim: Netconf-server(s) (agents) - Extended Honeycomb

This has the following steps:

A. Cloning and building Honeycomb (base) repository

B. Cloning and building enodebsim repository

A. HoneyComb Repository

   Clone using following URL:

   git clone https://gerrit.fd.io/r/honeycomb

    cd honeycomb/

Checkout using the following ChangeId which is part 08_10 version(current release):

    git checkout e9d3785d0603bf6e024affafc735641ee312b675

Note: Other versions has installation issues related to dependencies download.

Then do,

  mvn clean install

B. enodebsim Repository

This repository has the code we developed.

1. Clone(use Dublin branch) and checkout the latest:

              git clone https://github.com/onap-oof-pci-poc/ran-sim.git    https://github.com/onap-oof-pci-poc/ran-sim.git

              git checkout Dublin

              cd hcsim-content/

2. Copy ‘m2_settings.xml’ from ‘<YOURFOLDER>/honeycombsim/’ to <HOME>/.m2/ folder as settings.xml file after updating environment specific configurations. 

     If the file already exists in <HOME>/.m2/ folder, then merge this file content into the existing file appropriately.

3. Copy the enodebsim folder to honeycomb folder mentioned in the previous step.

                cp –r  enodebsim/ <Your_Folder>/honeycomb/

4. Copy & paste below entry in honeycomb/pom.xml, under <modules>

                <module>enodebsim</module>

 5. Do the foll. next:

                cd <Your_Folder>/honeycomb/

                mvn -Dcheckstyle.skip clean install

      Note: checkstyle skipped because its not accepting the proposed LICENSE text format in the java source file header comment.

      Build should be successful for the following artifacts

                 enodebsim-api

                 enodebsim-impl

                 enodebsim-distribution

                 enodebsim-aggregator

6. Copy the below folder to a new location:

                 <Your_Folder>/honeycomb/enodebsim/enodebsim-distribution/target/enodebsim-distribution-1.18.10-hc/enodebsim-distribution-1.18.10

7. Rename it to hc_50001(any appropriate name)

                cp –R <Your_Folder>/honeycomb/enodebsim/enodebsim-distribution/target/enodebsim-distribution-1.18.10-hc/enodebsim-distribution-1.18.10  <NewLocation>/hc_50001/


Example repository after executing steps (A) and (B):

1. Single instance of HoneyComb Simulator(configured with port 50000) created for our reference and committed in the below repository path.

      git clone https://github.com/onap-oof-pci-poc/ran-sim/Netconf-Agents/

      cd Netconf-Agents/hc_50000   

       it has few configuration files intended to be modified with current environment configuration settings (details given below).

2. Copy below folders from hc_50000, to this new simulator instance(50001):

                modules/

                config/

                yang-mapping/

                var/

              cp <Your_Folder>/hc_50000/ransom.properties <Your_Folder>/hc_50001/

3. Modify below property file,

             <Your_Folder>/hc_50001/ransim.properties,

       based on the environment setup and port could be 50001 in this case(Run any number of simulators with different ports).

       1. enodebsimIp

               Simulator Ip Address, where the HoneyComb instance(hc_50001) is running. eg., 10.143.125.163

        2. enodebsimPort

                Port number in which Simulator instance to be started. eg., 50001

        3. ransimCtrlrIp

                Ran-Sim controller Ip Address, to communicate cell topology details. eg.,10.143.125.147

         4. ransimCtrlrPort

                 Port number in which ran-sim controller is started. eg.,8081

4. Similarly, edit the port number(netconf-ssh-binding-port) in the following configuration file to be in sync with ransim properties file.

     <Your_Folder>/hc_50001/config/ netconf.json


Start HoneyComb Simulator

                cd <Your_Folder>/hc_50001/

                ./honeycomb


For multiple instance,

Copy the EnodebSimSetup.py, start.sh and stop.sh from <Your_Folder>/Netconf-Agents/ folder to the folder in which hc_50000 is copied,

  1. Run EnodebSimSetup.py with the number of instances required.
    ./EnodebSimSetup.py 24 (for 24 instances)

  2. Then run start.sh, which will start all the honeycomb servers in the folder(in this case all 24 agents will be started)

  3. Use stop.sh, to stop all the netconf servers.

Use netstat command to verify all the honeycomb servers are started.

       netstat -navp | grep 500


Check the honeycomb.log in the below folder

       <Your_Folder>/hc_50001/var/log/honeycomb/

        tail -f honeycomb.log

Successful start yield below log entries,

     2018-10-16 14:02:19.975 IST [main] INFO  i.f.h.i.d.i.InitializerRegistryAdapter - Honeycomb initialized

     2018-10-16 14:02:19.975 IST [main] INFO  io.fd.honeycomb.infra.distro.Main - Configuration initialized successfully

     2018-10-16 14:02:19.975 IST [main] INFO  io.fd.honeycomb.infra.distro.Main - Honeycomb started successfully!

And search for below keyword, to make sure the successful connectivity with Ransim Controller:

      “Message received: SetConfigTopology:”

This line of log will print the configuration topology of RAN network pulled from Ransim Controller.


Connecting to device from console:

ssh admin@localhost -p 50001 -s netconf

password: admin

After capabilities listed, enter the following command input to connect to device.

<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:capability:candidate:1.0</capability>

    </capabilities>

</hello>

]]>]]>


Netconf commands validation:

get:

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

    <get/>

</rpc>

]]>]]>

This should show the complete topology dumped or simulated from Ransim Controller.

get-config(with filter):

<rpc message-id="m-1" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
   <get-config>
   <source>
        <running/>
   </source>
  <filter xmlns:ns0="urn:ietf:params:xml:ns:netconf:base:1.0" ns0:type="subtree">
    <radio-access xmlns="org:onap:ccsdk:features:sdnr:northbound:oofpcipoc">
     <fap-service>
       <alias>Chn0001</alias>
     </fap-service>
    </radio-access>
   </filter>
  </get-config>
</rpc>
]]>]]>


edit-config:

<rpc

    xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="101">

    <edit-config>

        <target>

            <candidate/>

        </target>

        <config>

            <radio-access

                xmlns="urn:onf:otcc:wireless:yang:radio-access">

                    <fap-service>

                            <alias>60</alias>

                            <x-0005b9-lte>

                        <pnf-name>ncserver1001</pnf-name>

                        <phy-cell-id-in-use>40</phy-cell-id-in-use>

                    </x-0005b9-lte>

                </fap-service>

                <fap-service>

                    <alias>71</alias>

                    <x-0005b9-lte>

                        <pnf-name>ncserver1001</pnf-name>

                        <phy-cell-id-in-use>60</phy-cell-id-in-use>

                    </x-0005b9-lte>

                </fap-service>

            </radio-access>

        </config>

        <default-operation>merge</default-operation>

    </edit-config>

</rpc>

]]>]]>


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

    <commit>

                <target>

            <candidate/>

        </target>                   

    </commit>

</rpc>

]]>]]>

Successful execution of this command should update the pcid value to 60 and the same should be viewed from Ransim GUI.

Edit or delete operation on different cells in the topology of the agent will notify the Ransim Controller which will update GUI & DB to be in Sync.

Notify Cell Modification tested with Netconf-console

Pre-Requisites:

  1. ncclient must be present. If not, run pip install ncclient
  2. pip install netconf-console

Command to establish session with device:

     netconf-console --host netconf-agent-ip --port netconf-agent-port --raw

     eg., netconf-console --host 10.143.125.163 --port 50000 --raw
 
Session will be established with an interactive shell. Run the following command to create subscription:

      create-subscription -x honeycomb

For testing,

  1. Select "Modify" menu by right clicking any cell in Ransim-GUI.
  2. Change the pcid value and click modify. Modified Successfully message displayed.
  3. Verify the notification received as below in netconf-console shell. Any issue check honeycomb log. 
    hc_50000/var/log/honeycomb/honeycomb.log


Additional information

To run each instance of HoneyComb it requires ~353 MB of memory. 

3. PCI-Micro service

Cloning the chart repository  

The kubernetes chart can be cloned from https://github.com/onap-oof-pci-poc/pcihms.git

git clone
    git clone https://github.com/onap-oof-pci-poc/pcihms.git

Building the postgres-init docker image

Naviagate to postgres-scripts folder and run the following command to build the docker image

git clone
    cd pcihms/postgres_scripts
    docker build -t postgres-init:1.0 .

Building the Microservice

Navigate to the project's source code (pcihms/pci-handler) and run the following commands

git clone
    cd pcihms/pci-handler
    mvn clean install
    docker build -t pci-handler:1.0 .

Generate apikeys from DMaaP

4 apikey/secret pair should generated from DMaaP(one for management of topics, one for PCI-Microservice, one for Policy and one for SDNR). These apikeys must be set as configuration parameter in PCI-Microservice.

Setting Configuration parameters

The environment variables for the microservice must be set in configMap file in th charts. The following parameters must be set in the configMap.yaml before deploying the microservice. The config file can be found under pcihms/charts/pci-handler/templates/configMap.yaml.

ParameterDescription
DMAAPSERVERDNS or cluster IP of message router service 
SDNRSERVICE   DNS or cluster IP of SDNR service 
POLICYSERVICEDNS or cluster IP of pdp service
OOFSERVICE

DNS or cluster IP of oof-osdf service

MANAGERAPIKEYapi key/secret generated from DMaaP
MANAGERSECRETapi key/secret generated from DMaaP
PCIMSAPIKEYapi key/secret generated from DMaaP
PCIMSSECRETKEYapi key/secret generated from DMaaP
SDNRAPIKEYapi key/secret generated from DMaaP
POLICYAPIKEYapi key/secret generated from DMaaP


Note : The dns will be <service name>: <namespace>

Build the helm chart

Navigate to the cloned repository and run the following command

build hem chart
    cd pcihms/charts    
    make all


Deploying the microservice

DMaaP, Policy, OOF and SDNR must be running before starting the PCI-Microservice. To deploy the microservice, Run the following command

deploying chart to kubernetes
    helm install pci-handler/ -n pci-handler --namespace onap



   


  • No labels

23 Comments

  1. N.K. Shankaranarayanan May I know how to generate APIKeys from DMAAP

  2. You can use the following rest api to generate the apiKeys in DMaaP.


    POST http://<dmaap_server>:<port>/apiKeys/create

    Request Body:

    {

        "email":"", 

       "description":"xxxx"

    }


    The email field must be left empty, so that the response will have the generated key and secret.


    The response will look like this

    {

        "aux": {

            "description": "xxxxx",

            "email": ""

        },

        "secret": "xxxxxxxxxxxxx",

        "key": "xxxxxxxxxxxx"

    }



  3. krishna moorthy  thanks a lot. I will try this way.


    I have few more questions:


    • In the PoC demo, I can see the PCI cells GUI, can you please share the config to just replicate same topology?
    • What are minimal components required to replicate the demo. Is it SDNR, policy, PCI mS, OOF? or anything I am missing here?


  4. Hello,

    I want to upload my network architecture on the ran sim, according to the documentation, it is needed to edit the file  <YOURFOLDER>/ransim/ransimctrlr/packages/base/src/files/install/servers/ransim/bin/SIM_Ran_config.json, but every time when I update the file, the default configuration is loaded, so I wonder if is needed to edit any other file on the system to get the network architecture updated on the Ran Sim,


    Thanks in Advance.

  5. Hello,

    We are trying to build enodebsim component but getting the below error

    Non-resolvable parent POM for org.onap.ransim:enodebsim-api:1.0.0-SNAPSHOT: Could not transfer artifact io.fd.honeycomb.common:api-parent:pom:1.18.10-SNAPSHOT from/to ${{snapshotRepositoryID}} (${{snapshotRepositoryURL}}): Cannot access ${{snapshotRepositoryURL}} with type default using the available connector factories: BasicRepositoryConnectorFactory and 'parent.relativePath' points at wrong local POM @ line 16, column 11: Cannot access ${{snapshotRepositoryURL}} using the registered transporter factories: WagonTransporterFactory: Unsupported transport protocol -> [Help 2]

    are we missing anything in the pom.xml or settings.xml? Any specific values that need to be set for ${{snapshotRepositoryID}} and  (${{snapshotRepositoryURL}}) ?


    Appreciate your help.



    1. Hello,

      While cloning honeycomb from gerrit checkout using the following ChangeId which is part 08_10 version(current release):

      git checkout e9d3785d0603bf6e024affafc735641ee312b675

      Thank You.

      1. Hello Phunith,

        We have the same version checked out which can be seen in the below logs :

        root@ran-simulator:~/honeycomb# git branch
        * (HEAD detached at e9d3785)
        master
        root@ran-simulator:~/honeycomb# history |grep checkout
        211 git checkout e9d3785d0603bf6e024affafc735641ee312b675
        272 history |grep checkout
        root@ran-simulator:~/honeycomb#

        1. Hello,

          Can you try building with the settings file mentioned in the below link.

          settings.xml

  6. Hi Phunith,


    We were able to build enodebsim after making some changes to the pom.xml. After this when tried to start honeycomb by executing ./honeycomb within hc_5001 folder the below error was thrown

    Error in custom provider, java.lang.IllegalArgumentException: Unable to load class: org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev181127.$YangModelBindingProvider
      while locating io.fd.honeycomb.infra.distro.schema.YangModulesProvider
      at io.fd.honeycomb.infra.distro.schema.YangBindingProviderModule.configure(YangBindingProviderModule.java:29)
      while locating io.fd.honeycomb.infra.distro.schema.YangModulesProvider$YangModules
        for field at io.fd.honeycomb.infra.distro.schema.ModuleInfoBackedCtxProvider.moduleInfos(ModuleInfoBackedCtxProvider.java:30)
      while locating io.fd.honeycomb.infra.distro.schema.ModuleInfoBackedCtxProvider
      at io.fd.honeycomb.infra.distro.schema.SchemaModule.configure(SchemaModule.java:29)
      while locating org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext
        for field at io.fd.honeycomb.infra.distro.schema.SerializerProvider.mibCtx(SerializerProvider.java:30)


    it was found that 

    the enodebsim-api-1.0.0-SNAPSHOT.jar does not contain org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev181127.$YangModelBindingProvider but instead contains  org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.$YangModelBindingProvider

    To resolve this, we changed the reference to org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev181127.$YangModelBindingProvider in hc_5001/yang-mapping/ org-onap-ransim_enodebsim-distribution_1-18-10_yang-modules-index to org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.$YangModelBindingProvider

    with this , there is a different error

    Exception in thread "main" java.lang.NoClassDefFoundError: org/opendaylight/yangtools/yang/binding/ResourceYangModuleInfo

    Caused by: java.lang.ClassNotFoundException: org.opendaylight.yangtools.yang.binding.ResourceYangModuleInfo

    Also, building honeycomb after including encodebsim did not generate the JAR file for enodebsim-aggregator

    Kindly advise.

    1. Hello Nishtha,

      Which version of enodebsim are you using?

      The latest- Dublin version uses org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.

      If you want change the yang version, the corresponding changes has to be made in - enodebsim-api, enodebsim-impl. Then, build these folders, and copy the jar into the hc50001 folder.


      1. Hi Phunith, 

        I am using the master version for enodebsim.

        I was to build honeycomb+enodebsim and getting the following exception while starting honycomb.

        P.S : All the steps before starting honeycomb are performed as mentioned in the link.

        Error in custom provider, java.lang.IllegalArgumentException: Unable to load class: org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.$YangModelBindingProvider
        while locating io.fd.honeycomb.infra.distro.schema.YangModulesProvider

        1. Hi,

          Can you try it with the Dublin-branch of enodebsim, it contains the latest code  after resolving some bugs.

          https://github.com/onap-oof-pci-poc/ran-sim/tree/Dublin

          1. Hi Phunith,

            I was able to build successfully using the Dublin branch.

            But post that honeycomb was not starting properly

            Below are the logs :

             2019-08-08 10:43:25.452 UTC [main] INFO i.f.h.i.d.i.InitializerRegistryAdapter - Honeycomb initialized
            2019-08-08 10:43:25.452 UTC [main] INFO io.fd.honeycomb.infra.distro.Main - Configuration initialized successfully
            2019-08-08 10:43:25.452 UTC [main] INFO io.fd.honeycomb.infra.distro.Main - Honeycomb started successfully

            I am not seeing the logs where It is initializing the RANSIM.Also, RANSIM is not able to simulate network.

            Could you please share your review for this problem?

            Appreciate your Help!


            1. To add to the above, the honeycomb start command does not complete and gets stuck at the below point (highlighted in bold)

              Is there anything that is missing OR is it waiting for some event to be completed?


              2019-08-12 05:11:58.581 UTC [main] INFO i.f.h.i.d.i.InitializerRegistryAdapter - Honeycomb initialized
              2019-08-12 05:11:58.581 UTC [main] INFO io.fd.honeycomb.infra.distro.Main - Configuration initialized successfully
              2019-08-12 05:11:58.581 UTC [main] INFO io.fd.honeycomb.infra.distro.Main - Honeycomb started successfully!
              2019-08-12 05:11:58.733 UTC [main] INFO org.onap.ransim.ConfigJsonHandler - ConfigJsonHandler monitorEvents

            2. Hi Nishtha,

              Before starting the honeycomb make sure the simulation in Ransim is running.

              Configure Ransim's IP and port number in 'hc_50000/honeycomb' before starting the honeycomb.

              If there is successful connection, you will be able to see freequent ping messages in both ransim and honeycomb.

              1. Hi Phunith,

                We made sure the RANSIM is working and able to simulate the network we started the honeycomb.

                Still honeycomb start command is getting struck and we are getting an null pointer exception in logs 

                2019-08-13 12:09:15.454 UTC [main] INFO i.f.h.i.d.i.InitializerRegistryAdapter - Honeycomb initialized
                2019-08-13 12:09:15.454 UTC [main] INFO io.fd.honeycomb.infra.distro.Main - Configuration initialized successfully
                2019-08-13 12:09:15.454 UTC [main] INFO io.fd.honeycomb.infra.distro.Main - Honeycomb started successfully!
                2019-08-13 12:09:15.585 UTC [main] INFO org.onap.ransim.ConfigJsonHandler - ConfigJsonHandler monitorEvents
                2019-08-13 12:09:17.320 UTC [globalEventExecutor-1-2] INFO o.a.s.s.s.ServerUserAuthService - Session admin@/10.237.172.184:34424 authenticated
                2019-08-13 12:09:17.638 UTC [netconf-netty-2] WARN o.o.n.i.u.DeserializerExceptionHandler - An exception occurred during message handling
                io.netty.handler.codec.DecoderException: java.lang.NullPointerException
                at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:459) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1414) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:945) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.channel.local.LocalChannel.finishPeerRead0(LocalChannel.java:446) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.channel.local.LocalChannel.access$300(LocalChannel.java:50) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.channel.local.LocalChannel$5.run(LocalChannel.java:400) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [netty-common-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) [netty-common-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886) [netty-common-4.1.22.Final.jar:4.1.22.Final]
                at java.lang.Thread.run(Thread.java:748) [na:1.8.0_222]
                Caused by: java.lang.NullPointerException: null
                at org.openexi.sax.ReaderSupport.doAttribute(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
                at org.openexi.sax.EXIReader.doElement(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
                at org.openexi.sax.EXIReader.parse(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
                at org.openexi.sax.EXIReader.parse(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
                at org.opendaylight.netconf.nettyutil.handler.NetconfEXIToMessageDecoder.decode(NetconfEXIToMessageDecoder.java:96) ~[netconf-netty-util-1.4.2.jar:na]
                at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
                at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
                ... 21 common frames omitted


                Could you please have a look at it?

  7. Hi Phunith,

    Which files need to be modified in the above projects to use a different yang version?


    1. If you want to add support for new yang/updated yang file, pls follow these steps:

      1.       Replace honeycomb/enodebsim/enodebsim-api/src/main/yang/enodebsim.yang file with your yang file.

      2.       cd honeycomb/enodebsim/enodebsim-api/

      3.       mvn clean install                              

      This step will create the java code for new yang file, create jar library. Pls refer https://docs.fd.io/honeycomb/1.16.12-SNAPSHOT/release-notes-aggregator/devel_plugin_tutorial.html

      4.       cd honeycomb/enodebsim/enodebsim-impl

                               a.  Here change or create the actual implementation for the container or group objects defined in your yang file under honeycomb/enodebsim/enodebsim-impl/src/main/java folders.

      5.       cd honeycomb/enodebsim/

      6.       mvn clean install

      Finally this will generate the honeycomb binaries for the given yang under honeycomb/enodebsim/enodebsim-distribution/target/enodebsim-distribution-1.18.10-hc/enodebsim-distribution-1.18.10/

       

      Are you planning to use Ransim Controller also or only the honeycomb part?

      Are you changing only few parameters in enodebsim.yang file or it is totally new yang model file you want to simulate?

      Based on above questions, we can answer more in detail.

  8. Hi,

    I am facing mvn compilation issue for Honeycomb Installation.

    My SDNC & Ransim controller are up and running.

    ONAP Release- Guilin release

    Java - java-1.11.0-openjdk-amd64

    Copied m2_settings.xml into .m2 directory and renamed the file to settings.xml.

    $ mvn clean install -Dcheckstyle.skip throws the following Error.

    Any help would be much appreciated.


  9. My SDNC, Ransim controller and honeycomb all are up.

    cps-ran-schema-model.yang  placed with ran-network yang file inside ran-sim/hcsim-content/gnbsim/gnbsim-api/src/main/yang folder.

    Compiling the yang files inside  this location "ran-sim/hcsim-content/gnbsim/gnbsim-impl" using command
    "JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 mvn clean install -Dcheckstyle.skip"  successfully compiled.


    Pojo files are created for cps-ran-schema and ran-network. Device mounting done from ransimulator to SDNC after this in Swagger api we are able to see the ran-network related API's but cps-ran-schema-model related API's not able to see. Ran simulator and SDNC  supporting the yang or not ,give some suggestion. Yang file i have attached.



    cps-ran-schema-model.yang





  10. I've followed the documentation and built the ran-sim and honeycomb using the dublin branch and checking out 08_10 version(current release) by doing "git checkout e9d3785d0603bf6e024affafc735641ee312b675"

    Can you please suggest on this null pointer exception we are getting after starting the honeycomb and trying to get netconf capabilities:


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

    <get/>

    </rpc>

    ]]>]]>
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <rpc-error>
    <error-type>rpc</error-type>
    <error-tag>malformed-message</error-tag>
    <error-severity>error</error-severity>
    <error-message>java.lang.IllegalStateException: Hello message not received, instead received: &lt;rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="102"&gt;

    &lt;get/&gt;

    &lt;/rpc&gt;
    </error-message>
    <error-info>
    <cause>java.lang.IllegalStateException: Hello message not received, instead received: &lt;rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="102"&gt;

    &lt;get/&gt;



  11. Hi our HoneyComb agent does not able to speak SDNR. After mounting the HoneyComb we are getting bellow exception.

    SDNR version: Honolulu

    HoneyComb: as per this documents.( git clone https://github.com/onap-oof-pci-poc/ran-sim.git .    git checkout Dublin)


    Exception:

            9,"blacklisted":false},{"plmnid":"ran-1","cid":"Chn0038","phy-cell-id":4,"blacklisted":false},{"plmnid":"ran-1","cid":"Chn0041","phy-cell-id":7,"blacklisted":false},{"plmnid":"ran-1","cid":"Chn0061","phy-cell-id":27,"blacklisted":false}]}}}}}]}
    2021-09-01 17:56:31.254 UTC [WebSocketSimpleContainer@815992954-23] DEBUG o.o.r.w.c.RansimClientWebSocket - Periodic ping message.... ignore
    2021-09-01 17:56:31.591 UTC [globalEventExecutor-1-2] INFO  o.a.s.s.s.ServerUserAuthService - Session admin@/172.30.161.157:15185 authenticated
    2021-09-01 17:56:31.931 UTC [netconf-netty-1] WARN  o.o.n.i.u.DeserializerExceptionHandler - An exception occurred during message handling
    io.netty.handler.codec.DecoderException: java.lang.NullPointerException
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:459) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1414) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:945) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.local.LocalChannel.finishPeerRead0(LocalChannel.java:446) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.local.LocalChannel.access$300(LocalChannel.java:50) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.local.LocalChannel$5.run(LocalChannel.java:400) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [netty-common-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) [netty-common-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886) [netty-common-4.1.22.Final.jar:4.1.22.Final]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_292]
    Caused by: java.lang.NullPointerException: null
    at org.openexi.sax.ReaderSupport.doAttribute(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.openexi.sax.EXIReader.doElement(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.openexi.sax.EXIReader.parse(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.openexi.sax.EXIReader.parse(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.opendaylight.netconf.nettyutil.handler.NetconfEXIToMessageDecoder.decode(NetconfEXIToMessageDecoder.java:96) ~[netconf-netty-util-1.4.2.jar:na]
    at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    ... 21 common frames omitted
    2021-09-01 17:56:32.600 UTC [netconf-netty-1] WARN  o.o.n.i.u.DeserializerExceptionHandler - An exception occurred during message handling
    io.netty.handler.codec.DecoderException: java.io.EOFException
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:459) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:392) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:359) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:342) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:377) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:342) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1409) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:927) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:822) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [netty-common-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) [netty-common-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886) [netty-common-4.1.22.Final.jar:4.1.22.Final]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_292]
    Caused by: java.io.EOFException: null
    at org.openexi.proc.io.BodyBitInputStream.getEightBits(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.openexi.proc.io.BitPackedScanner.readEightBitsUnsigned(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.openexi.proc.io.Scanner.readUnsignedInteger(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.openexi.proc.io.Scanner.readLiteralString(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.openexi.proc.io.StringValueScanner.scan(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.openexi.proc.io.ValueScannerLexical.scan(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.openexi.proc.io.SimpleScanner.doAttributeWildcardAny(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.openexi.proc.io.SimpleScanner.nextEvent(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.openexi.sax.EXIReader.doElement(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.openexi.sax.EXIReader.parse(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.openexi.sax.EXIReader.parse(Unknown Source) ~[nagasena-0000.0002.0062.0.jar:na]
    at org.opendaylight.netconf.nettyutil.handler.NetconfEXIToMessageDecoder.decode(NetconfEXIToMessageDecoder.java:96) ~[netconf-netty-util-1.4.2.jar:na]
    at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    ... 21 common frames omitted
    2021-09-01 17:56:32.603 UTC [netconf-netty-1] WARN  i.n.util.concurrent.DefaultPromise - An exception was thrown by org.opendaylight.netconf.util.messages.SendErrorExceptionUtil$SendErrorVerifyingListener.operationComplete()
    java.lang.IllegalStateException: Unable to send exception NetconfDocumentedException{message=java.io.EOFException, errorType=RPC, errorTag=MALFORMED_MESSAGE, errorSeverity=ERROR, errorInfo={cause=java.io.EOFException}} [java.nio.channels.ClosedChannelException]
    at com.google.common.base.Preconditions.checkState(Preconditions.java:828) ~[guava-23.6-jre.jar:na]
    at org.opendaylight.netconf.util.messages.SendErrorExceptionUtil$SendErrorVerifyingListener.operationComplete(SendErrorExceptionUtil.java:103) ~[netconf-util-1.4.2.jar:na]
    at org.opendaylight.netconf.util.messages.SendErrorExceptionUtil$SendErrorVerifyingListener.operationComplete(SendErrorExceptionUtil.java:94) ~[netconf-util-1.4.2.jar:na]
    at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511) [netty-common-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:485) [netty-common-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424) [netty-common-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:162) [netty-common-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:95) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:30) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at org.opendaylight.netconf.util.messages.SendErrorExceptionUtil.sendErrorMessage(SendErrorExceptionUtil.java:45) [netconf-util-1.4.2.jar:na]
    at org.opendaylight.netconf.impl.util.DeserializerExceptionHandler.handleDeserializerException(DeserializerExceptionHandler.java:48) [netconf-impl-1.4.2.jar:na]
    at org.opendaylight.netconf.impl.util.DeserializerExceptionHandler.exceptionCaught(DeserializerExceptionHandler.java:37) [netconf-impl-1.4.2.jar:na]
    at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:285) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:264) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:256) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.exceptionCaught(ChannelInboundHandlerAdapter.java:131) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:285) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException(AbstractChannelHandlerContext.java:850) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:247) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:377) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:342) [netty-codec-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1409) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:927) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:822) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [netty-common-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) [netty-common-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463) [netty-transport-4.1.22.Final.jar:4.1.22.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886) [netty-common-4.1.22.Final.jar:4.1.22.Final]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_292]
    2021-09-01 17:56:41.255 UTC [WebSocketSimpleContainer@815992954-29] DEBUG o.o.r.w.c.RansimClientWebSocket - Periodic ping message.... ignore
    ^C


    Please help me to solve this problem.


  12. Hi Team,

    When my SDNR sends below hello message to honeycomb with <capability>urn:ietf:params:netconf:base:1.1</capability> capability it is replying with exception as below:

    Hello msg send from SDNR:

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


    Error response we are getting

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <rpc-error>
    <error-type>rpc</error-type>
    <error-tag>malformed-message</error-tag>
    <error-severity>error</error-severity>
    <error-message>java.lang.IllegalStateException: Malformed chunk header encountered (byte 1)</error-message>
    <error-info>
    <cause>java.lang.IllegalStateException: Malformed chunk header encountered (byte 1)</cause>
    </error-info>
    </rpc-error>
    </rpc-reply>


    or some of other team member getting 

    <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
        <rpc-error>
            <error-type>rpc</error-type>
            <error-tag>malformed-message</error-tag>
            <error-severity>error</error-severity>
            <error-message>java.lang.NullPointerException</error-message>
            <error-info>
                <cause>java.lang.NullPointerException</cause>
            </error-info>
        </rpc-error>
    </rpc-reply>



    if we remove the <capability>urn:ietf:params:netconf:base:1.1</capability> capability from hello msg it works for us.

    If someone help in it.

    Thanks in advance, waiting for replay