RLReadyLinks Docs

NETCONF notifications

Receive ReadyLinks switch alarms as NETCONF notifications. Covers the readylinks-rlos notification-status leaves, message formats, create-subscription, and client examples.

The switch publishes each alarm as a YANG notification. A NETCONF client that holds a subscription receives it on the same SSH session it uses for get and edit-config.

ItemValue
TransportNETCONF over SSH, TCP 830
Modulereadylinks-rlos (YANG repo)
Namespacehttp://readylinks.io/rlos/yang/conf
Prefixrlos
Revision2026-09-08
Notificationnotification-status
Subscribe with<create-subscription> (RFC 5277), stream NETCONF
ReplayNot supported. Only notifications raised while you are subscribed are delivered

#Prerequisites

  1. NETCONF is enabled and you can log in. See How to use NETCONF.
  2. The switch is set up to raise the alarms you need. Notifications follow the same switches as SNMP traps (see Gating), so the global trap switch (snmp-server traps) must stay on. You don't need any SNMP trap receivers.

#The notification-status notification

The definition from readylinks-rlos, with descriptions omitted:

yang
notification notification-status {
  leaf switch-session-status            { type string; }
  leaf ghn-port-status                  { type string; }
  leaf ghn-memory-status                { type string; }
  leaf ghn-cpu-status                   { type string; }
  leaf ghn-reboot-status                { type string; }
  leaf ghn-reset-status                 { type string; }
  leaf ghn-upgrade-will-restart-status  { type string; }
  leaf ghn-upgrade-restarted-status     { type string; }
  leaf switch-reset-status              { type string; }
  leaf switch-reboot-status             { type string; }
  leaf switch-cpu-status                { type string; }
  leaf switch-temperature-status        { type string; }
  leaf switch-memory-status             { type string; }
  leaf switch-port-status               { type string; }
  leaf switch-port-downspeed            { type string; }
}
  • One leaf per notification. Each notification carries exactly one leaf. The leaf tells you the alarm family, and its text tells you the event.
  • Text length. The text is at most 1023 characters.
  • Matching SNMP trap. Each notification is sent at the same moment as its SNMP trap. See the SNMP trap reference.

#Leaves and message formats

In the formats below, <N> is the port number, which is the same value as the ifIndex.N varbind in the SNMP trap. <mac>, <name> and <location> are the switch's MAC (00-13-ba-0c-68-57 format), system name and system location. For G.hn events they are the endpoint's MAC and name.

LeafCodeEventMessage format
switch-session-status1Management session (trap 78)rliSwitchSession <text> <mac> <name> <location>
ghn-port-status2G.hn endpoint up / down (66 / 67)ifIndex.<N> linkUp mac: <mac> name: <name> / ifIndex.<N> linkDown mac: <mac> name: <name>
ghn-memory-status3G.hn endpoint memory (68 / 69)ifIndex.<N> rliGhnMemoryAlarm mac: <mac> name: <name> / ifIndex.<N> rliGhnMemoryNormal ...
ghn-cpu-status4G.hn endpoint CPU (76 / 77)ifIndex.<N> rliGhnCPUUtiAlarm mac: <mac> name: <name> / ifIndex.<N> rliGhnCPUItiNormal ...
ghn-reboot-status5G.hn endpoint reboot (79)ifIndex.<N> rliGhnReboot mac: <mac> name: <name>
ghn-reset-status6G.hn endpoint reset (80)ifIndex.<N> rliGhnReset mac: <mac> name: <name>
ghn-upgrade-will-restart-status7G.hn upgrade done, restarting (83)ifIndex.<N> rliGhnUpgradeWillRestart mac: <mac> name: <name>
ghn-upgrade-restarted-status8G.hn restart command accepted (84)ifIndex.<N> rliGhnUpgradeRestarted mac: <mac> name: <name>
switch-reset-status9Switch factory reset (82)rliSwitchReset mac: <mac> name: <name> location:<location>
switch-reboot-status10Switch reboot (81)rliSwitchReboot mac: <mac> name: <name> location:<location>
switch-cpu-status11Switch CPU (74 / 75)rliSwitchCPUUtilAlarm mac: <mac> name: <name> location:<location> / rliSwitchCPUUtilNormal ...
switch-temperature-status12Switch temperature (72 / 73)rliSwitchTemperatureAlarm mac: <mac> name: <name> location:<location> / rliSwitchTemperatureNormal ...
switch-memory-status13Switch memory (70 / 71)rliSwitchMemoryAlarm mac: <mac> name: <name> location:<location> / rliSwitchMemoryNormal ...
switch-port-status14Port link (linkDown / linkUp)ifIndex.<N> linkDown / ifIndex.<N> linkUp
switch-port-downspeed15Port speed below maximum (89) <port>'s speed is <speed>M, it support max speed is <max>M!
  • Code column. The code is the switch's internal event number for each leaf. It is never sent on the wire. Use the leaf name to identify the event.
  • <text> in session events. This is the same text as the alarminfor varbind of trap 78, for example 192.0.2.10(admin) logged into the system via the WEB UI.
  • Matching CPU events. The G.hn CPU messages are spelled rliGhnCPUUtiAlarm and rliGhnCPUItiNormal. Match on these exact strings.
  • No space after location:. In switch messages, the location follows location: with no space.

PoE, RMON, coldStart, and G.hn endpoint temperature alarms have no NETCONF notification. Use SNMP traps or syslog for them.

#Subscribe

Send <create-subscription> on the session. The NETCONF stream carries the notifications of every module on the switch. To receive only readylinks-rlos notifications, use the stream readylinks-rlos instead.

xml
<rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <create-subscription xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
    <stream>NETCONF</stream>
  </create-subscription>
</rpc>

The subscription lasts for the life of the session. Reconnect and subscribe again after a session drops. Events raised while you were disconnected are not replayed.

#Example notification

xml
<notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
  <eventTime>2026-10-21T14:03:11.52-05:00</eventTime>
  <notification-status xmlns="http://readylinks.io/rlos/yang/conf">
    <switch-port-downspeed> Ethernet0/5's speed is 1000M, it support max speed is 2500M!</switch-port-downspeed>
  </notification-status>
</notification>
xml
<notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
  <eventTime>2026-10-21T14:05:42.08-05:00</eventTime>
  <notification-status xmlns="http://readylinks.io/rlos/yang/conf">
    <ghn-port-status>ifIndex.3 linkDown mac: 00-13-ba-0c-68-57 name: modem-example</ghn-port-status>
  </notification-status>
</notification>

#Client examples

Subscribe
shell
netopeer2-cli
> connect --ssh --port 830 --login admin --host 192.0.2.20
> subscribe --stream NETCONF

To test, unplug and reconnect a cable on a port with traps enabled. A switch-port-status notification arrives for linkDown and another for linkUp.

Edit this page on GitLab

Last updated October 21, 2026