cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
462
Views
0
Helpful
1
Replies

Issue with live-status and instance-identifier type

macauley
Level 1
Level 1

Hello,

I have been building a new version of our Infinera G30 NETCONF NED and struggling through a whole new set of issues, but would like help on one specific to a get of "live-status" and instance-identifier types.  We are using NSO version 5.7.2.1.

 

Here is an example of discovered performance configuration with the “pm-entity” being and instance-identifier type:
 
      <performance>
        <pmdaystart>0</pmdaystart>
        <statistics-enable>enabled</statistics-enable>
        <pm-point>
          <pm-entity xmlns:ne="http://coriant.com/yang/os/ne">/ne:ne/ne:shelf[ne:shelf-id='1']</pm-entity>
          <pmp-type>shelf-temperature</pmp-type>
          <pm-time-period>15min</pm-time-period>
          <supervision-switch>enabled</supervision-switch>
          <thresholding-switch>enabled</thresholding-switch>
          <history-recording>enabled</history-recording>
          <pm-thresholds/>
        </pm-point>
        <pm-point>
          <pm-entity xmlns:ne="http://coriant.com/yang/os/ne">/ne:ne/ne:shelf[ne:shelf-id='1']</pm-entity>
          <pmp-type>shelf-temperature</pmp-type>
          <pm-time-period>24h</pm-time-period>
          <supervision-switch>enabled</supervision-switch>
          <thresholding-switch>enabled</thresholding-switch>
          <history-recording>enabled</history-recording>
          <pm-thresholds/>
        </pm-point>
 
I do an NSO retrieval of the performance config subtree using the following curl command:
 
% curl -is -u admin:admin -H "Accept: application/yang-data+xml" 'http://localhost:8080/restconf/data/tailf-ncs:devices/device=sacr-tpdr5/config/ne:ne/performance'
HTTP/1.1 200 OK
Date: Tue, 02 Aug 2022 21:40:48 GMT
Last-Modified: Tue, 02 Aug 2022 21:35:21 GMT
Cache-Control: private, no-cache, must-revalidate, proxy-revalidate
Etag: "1659-476121-891503"
Content-Type: application/yang-data+xml
Transfer-Encoding: chunked
Pragma: no-cache
Content-Security-Policy: default-src 'self'; block-all-mixed-content; base-uri 'self'; frame-ancestors 'none';
Strict-Transport-Security: max-age=15552000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block

<performance xmlns="http://coriant.com/yang/os/ne"  xmlns:ne="http://coriant.com/yang/os/ne"  xmlns:ncs="http://tail-f.com/ns/ncs">
  <pmdaystart>0</pmdaystart>
  <statistics-enable>enabled</statistics-enable>
  <pm-point>
    <pm-entity xmlns:ne="http://coriant.com/yang/os/ne" xmlns:ncs="http://tail-f.com/ns/ncs">/ncs:devices/ncs:device[ncs:name='sacr-tpdr5']/ncs:config/ne:ne/ne:shelf[ne:shelf-id='1']</pm-entity>
    <pmp-type>shelf-temperature</pmp-type>
    <pm-time-period>15min</pm-time-period>
    <supervision-switch>enabled</supervision-switch>
    <thresholding-switch>enabled</thresholding-switch>
    <history-recording>enabled</history-recording>
  </pm-point>
  <pm-point>
    <pm-entity xmlns:ne="http://coriant.com/yang/os/ne" xmlns:ncs="http://tail-f.com/ns/ncs">/ncs:devices/ncs:device[ncs:name='sacr-tpdr5']/ncs:config/ne:ne/ne:shelf[ne:shelf-id='1']</pm-entity>
    <pmp-type>shelf-temperature</pmp-type>
    <pm-time-period>24h</pm-time-period>
    <supervision-switch>enabled</supervision-switch>
    <thresholding-switch>enabled</thresholding-switch>
    <history-recording>enabled</history-recording>
  </pm-point>

I see the “pm-entity” instance-identifier has been parsed and modified from the original to be the NCS path. I assume all is good.  Now I want to test the live-status by doing the following curl command:

 

% curl -is -u admin:admin -H "Accept: application/yang-data+xml" 'http://localhost:8080/restconf/data/tailf-ncs:devices/device=sacr-tpdr5/live-status/ne:ne/performance'
HTTP/1.1 200 OK
Date: Tue, 02 Aug 2022 21:43:37 GMT
Last-Modified: Tue, 02 Aug 2022 21:35:21 GMT
Cache-Control: private, no-cache, must-revalidate, proxy-revalidate
Etag: "1659-476121-891503"
Content-Type: application/yang-data+xml
Transfer-Encoding: chunked
Pragma: no-cache
Content-Security-Policy: default-src 'self'; block-all-mixed-content; base-uri 'self'; frame-ancestors 'none';
Strict-Transport-Security: max-age=15552000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block

<performance xmlns="http://coriant.com/yang/os/ne"  xmlns:ne="http://coriant.com/yang/os/ne"  xmlns:ncs="http://tail-f.com/ns/ncs">
  <pmdaystart>0</pmdaystart>
  <statistics-enable>enabled</statistics-enable>%    

 

Looking in the “netconf.log” I see the following error:
 
<INFO> 2-Aug-2022::17:43:41.080 Heimdall ncs[49449]: netconf error from netconf agent 2001:400:e600:4500::6:830: /ncs:devices/device{sacr-tpdr5}/live-status/ne:ne/performance/pm-point: 'http://coriant.com/yang/os/ne' is an unknown namespace.
 
This seems to be happening for multiple instance-identifier when I do a live-status.  Changing them all to strings gets me past the issue, but then I lose the NSO context of the instance-identifier.  Here is the message that is failing to parse from the netconf trace file.  Notice the "<pm-entity>" element is the same as the one retrieved from the "<get-config>" operation.
 
<?xml version="1.0" encoding="UTF-8"?>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="2">
  <data>
    <ne xmlns="http://coriant.com/yang/os/ne">
      <performance>
        <pm-point>
          <pm-entity xmlns:ne="http://coriant.com/yang/os/ne">/ne:ne/ne:shelf[ne:shelf-id='1']</pm-entity>
          <pmp-type>shelf-temperature</pmp-type>
          <pm-time-period>15min</pm-time-period>
        </pm-point>
        <pm-point>
          <pm-entity xmlns:ne="http://coriant.com/yang/os/ne">/ne:ne/ne:shelf[ne:shelf-id='1']</pm-entity>
          <pmp-type>shelf-temperature</pmp-type>
          <pm-time-period>24h</pm-time-period>
        </pm-point>
        <pm-point>

 Any thoughts on this issue?  Here is the YANG snippet.  I can't include everything do to size.

  grouping "pm-point" {
    description
      "Grouping of pm point";
    list "pm-point" {
      key "pm-entity pmp-type pm-time-period";
      description
        "The list of performance monitoring points associated with the monitored management object.";
      leaf "pm-entity" {
        type "instance-identifier" {
        }
        description
          "Specifies the management object instance the performance monitoring data are collected for.";
      }

      leaf "pmp-type" {
        type "pmtypes:pmp-type";
        description
          "Specifies the type of performance monitoring point.";
      }

      leaf "pm-time-period" {
        type "types:management-time-period";
        description
          "Specifies the time-period increments during which PM data are collected.";
      }

      leaf "supervision-switch" {
        type "types:enable-switch";
        default "disabled";
        description
          "Enable/disable counting for all performance monitoring parameters of the given PMP.";
      }

      leaf "thresholding-switch" {
        type "types:enable-switch";
        default "disabled";
        description
          "Enable/disable the TCA processing and reporting for all performance monitoring parameters of the given PM point.";
      }

      leaf "history-recording" {
        type "types:enable-switch";
        default "enabled";
        description
          "Enable/disable the history data storage for all performance monitoring parameters of the given PM point.";
      }

      uses "pmthresholds:pm-thresholds";
    }
  }

  Thank you for any help you could provide!

 

 

1 Reply 1

rogaglia
Cisco Employee
Cisco Employee

I will recommend you to issue a support ticket, it may well be a problem here.

Polls
AI-powered tools for network troubleshooting are likely to be part of everyone’s workflow sooner or later. What is the single biggest challenge or concern you see with adopting these tools in your organization?