Merge pull request #17882 from LabNConsulting/chopps/doc-update-mgmtd

small mgmtd-dev doc update and yanglint cleanup
This commit is contained in:
Jafar Al-Gharaibeh 2025-01-20 13:29:37 -06:00 committed by GitHub
commit b2d62e50f1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 31 additions and 7 deletions

View File

@ -160,14 +160,19 @@ Back-End Interface:
should be destroyed with a call to `mgmt_be_client_destroy` and to be safe should be destroyed with a call to `mgmt_be_client_destroy` and to be safe
NULL out the global `mgmt_be_client` variable. NULL out the global `mgmt_be_client` variable.
#. In ``mgmtd/mgmt_be_adapter.c`` add xpath prefix mappings to a one or both #. In ``mgmtd/mgmt_be_adapter.c`` add xpath prefix mappings to a each of the
mapping arrays (``be_client_config_xpaths`` and ``be_client_oper_xpaths``) to mapping arrays (``be_client_config_xpaths``, ``be_client_oper_xpaths``, and
direct ``mgmtd`` to send config and oper-state requests to your daemon. NOTE: ``be_client_rpc_xpaths``) to direct ``mgmtd`` to send config, oper-state, and
make sure to include library supported xpaths prefixes as well (e.g., RPC requests to your daemon.
NOTE: make sure to include library supported xpaths prefixes as well (e.g.,
"/frr-interface:lib"). A good way to figure these paths out are to look in "/frr-interface:lib"). A good way to figure these paths out are to look in
each of the YANG modules that the daemon uses and include each of their paths each of the YANG modules that the daemon uses and include each of their paths
in the array. in the array.
#. In ``python/xref2vtysh.py`` add ``VTYSH_xxxD`` (for client xxx) to
``lib/mgmt_be_client.c`` entry in the ``daemon_falgs`` dictionary.
Add YANG and CLI into MGMTD Add YANG and CLI into MGMTD
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -7,13 +7,14 @@ module frr-test-module {
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
import ietf-yang-types {
prefix yang;
}
import frr-interface { import frr-interface {
prefix frr-interface; prefix frr-interface;
} }
organization "placeholder for lint";
contact "placeholder for lint";
description description
"FRRouting internal testing module. "FRRouting internal testing module.
@ -45,41 +46,56 @@ module frr-test-module {
revision 2018-11-26 { revision 2018-11-26 {
description description
"Initial revision."; "Initial revision.";
reference "placeholder for lint";
} }
container frr-test-module { container frr-test-module {
config false; config false;
description "a container for test module data";
container vrfs { container vrfs {
description "a container of vrfs";
list vrf { list vrf {
key "name"; key "name";
description "a keyed vrf list object";
leaf name { leaf name {
type string; type string;
description "name of vrf";
} }
container interfaces { container interfaces {
description "container of leaf-list interfaces";
leaf-list interface { leaf-list interface {
type frr-interface:interface-ref; type frr-interface:interface-ref;
description "leaf list interface object";
} }
leaf-list interface-new { leaf-list interface-new {
type frr-interface:interface-ref; type frr-interface:interface-ref;
description "second leaf list interface object";
} }
} }
container routes { container routes {
description "container of key-less route objects";
list route { list route {
description "a key-less route object";
leaf prefix { leaf prefix {
type inet:ipv4-prefix; type inet:ipv4-prefix;
description "prefix of the route object";
} }
leaf next-hop { leaf next-hop {
type inet:ipv4-address; type inet:ipv4-address;
description "nexthop of the route object";
} }
leaf interface { leaf interface {
type frr-interface:interface-ref; type frr-interface:interface-ref;
description "interface of the route object";
} }
leaf metric { leaf metric {
type uint8; type uint8;
description "metric of the route object";
} }
leaf active { leaf active {
type empty; type empty;
description "active status of the route object";
} }
} }
} }
@ -87,16 +103,19 @@ module frr-test-module {
input { input {
leaf data { leaf data {
type string; type string;
description "data input to ping action.";
} }
} }
output { output {
leaf vrf { leaf vrf {
type string; type string;
description "vrf returned from ping action.";
} }
// can't use the same name in input and output // can't use the same name in input and output
// because of a bug in libyang < 2.1.148 // because of a bug in libyang < 2.1.148
leaf data-out { leaf data-out {
type string; type string;
description "data return from ping action.";
} }
} }
} }