Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

small mgmtd-dev doc update and yanglint cleanup #17882

Merged
merged 2 commits into from
Jan 20, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions doc/developer/mgmtd-dev.rst
Original file line number Diff line number Diff line change
@@ -160,14 +160,19 @@ Back-End Interface:
should be destroyed with a call to `mgmt_be_client_destroy` and to be safe
NULL out the global `mgmt_be_client` variable.

#. In ``mgmtd/mgmt_be_adapter.c`` add xpath prefix mappings to a one or both
mapping arrays (``be_client_config_xpaths`` and ``be_client_oper_xpaths``) to
direct ``mgmtd`` to send config and oper-state requests to your daemon. NOTE:
make sure to include library supported xpaths prefixes as well (e.g.,
#. In ``mgmtd/mgmt_be_adapter.c`` add xpath prefix mappings to a each of the
mapping arrays (``be_client_config_xpaths``, ``be_client_oper_xpaths``, and
``be_client_rpc_xpaths``) to direct ``mgmtd`` to send config, oper-state, and
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
each of the YANG modules that the daemon uses and include each of their paths
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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

25 changes: 22 additions & 3 deletions yang/frr-test-module.yang
Original file line number Diff line number Diff line change
@@ -7,13 +7,14 @@ module frr-test-module {
import ietf-inet-types {
prefix inet;
}
import ietf-yang-types {
prefix yang;
}
import frr-interface {
prefix frr-interface;
}

organization "placeholder for lint";

contact "placeholder for lint";

description
"FRRouting internal testing module.
@@ -45,58 +46,76 @@ module frr-test-module {
revision 2018-11-26 {
description
"Initial revision.";
reference "placeholder for lint";
}

container frr-test-module {
config false;
description "a container for test module data";
container vrfs {
description "a container of vrfs";
list vrf {
key "name";
description "a keyed vrf list object";

leaf name {
type string;
description "name of vrf";
}
container interfaces {
description "container of leaf-list interfaces";
leaf-list interface {
type frr-interface:interface-ref;
description "leaf list interface object";
}
leaf-list interface-new {
type frr-interface:interface-ref;
description "second leaf list interface object";
}
}
container routes {
description "container of key-less route objects";
list route {
description "a key-less route object";
leaf prefix {
type inet:ipv4-prefix;
description "prefix of the route object";
}
leaf next-hop {
type inet:ipv4-address;
description "nexthop of the route object";
}
leaf interface {
type frr-interface:interface-ref;
description "interface of the route object";
}
leaf metric {
type uint8;
description "metric of the route object";
}
leaf active {
type empty;
description "active status of the route object";
}
}
}
action ping {
input {
leaf data {
type string;
description "data input to ping action.";
}
}
output {
leaf vrf {
type string;
description "vrf returned from ping action.";
}
// can't use the same name in input and output
// because of a bug in libyang < 2.1.148
leaf data-out {
type string;
description "data return from ping action.";
}
}
}