Skip to content

Unable to gracefully terminate NETCONF Call Home session from server side (ORAN ORU setup) #1795

@mradul-29

Description

@mradul-29

Hi @michalvasko
We are working on an O-RAN based ORU (O-RU) implementation using Netopeer2 + sysrepo (libnetconf2 underneath) on an embedded Linux platform.

Environment:
NETCONF server: Netopeer2-server (running as: netopeer2-server -v3 -t 10)
libnetconf2 v3.5.4
Backend: sysrepo v2.2.36
Transport: SSH (Call Home enabled)
Architecture: ORU and ORU-Controller
Connection type: persistent Call Home
Platform: embedded Linux (watchdog enabled, process restart sensitive) (aarch64)

Current Behavior :
We successfully establish a NETCONF Call Home connection from the ORU (server side) to the controller.
However, we are facing an issue when trying to terminate the active Call Home session from the ORU side.

What We Tried:

  • Sysrepo config change
    Removed call-home block from ietf-netconf-server running sysrepo
    Result: prevents future reconnections, but existing session remains active
  • Signals to netopeer2-server
    SIGUSR1 → session closes, but watchdog connection drop → resulted in system reboot
    SIGTERM → causes full service restart and system rebooted
  • Network-level methods
    iptables / socket-level attempts not viable in this environment
  • Kill-session
    Attempted to trigger the kill-session RPC from using the Sysrepo sr_rpc_send_tree API.
    The implementation looks like this:
Image

The sr_rpc_send_tree call returns an error.

We need a way to: Gracefully terminate an active Call Home NETCONF session from the ORU side, without:

  • restarting netopeer2-server
  • triggering watchdog
  • relying on controller-side disconnect

Question:
1.) Is there a supported way in Netopeer2/libnetconf2 to cleanly close an active Call Home session from the server side (without restarting the process)?
2.) Is controller-side disconnect the only expected approach for this scenario?

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    is:questionIssue is actually a question.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions