summaryrefslogtreecommitdiffstats
path: root/utils/sysrepo-plugin/plugin/yang
diff options
context:
space:
mode:
Diffstat (limited to 'utils/sysrepo-plugin/plugin/yang')
-rw-r--r--utils/sysrepo-plugin/plugin/yang/hicn_netconf_client.xml84
-rw-r--r--utils/sysrepo-plugin/plugin/yang/model/hicn.yang546
-rw-r--r--utils/sysrepo-plugin/plugin/yang/startup.xml11
3 files changed, 641 insertions, 0 deletions
diff --git a/utils/sysrepo-plugin/plugin/yang/hicn_netconf_client.xml b/utils/sysrepo-plugin/plugin/yang/hicn_netconf_client.xml
new file mode 100644
index 000000000..ae3a96a0c
--- /dev/null
+++ b/utils/sysrepo-plugin/plugin/yang/hicn_netconf_client.xml
@@ -0,0 +1,84 @@
+<node-params-set xmlns="urn:sysrepo:hicn">
+ <enable_disable>true</enable_disable>
+ <pit_max_size>-1</pit_max_size>
+ <cs_max_size>-1</cs_max_size>
+ <cs_reserved_app>-1</cs_reserved_app>
+ <pit_dflt_lifetime_sec>-1</pit_dflt_lifetime_sec>
+ <pit_max_lifetime_sec>-1</pit_max_lifetime_sec>
+ <pit_min_lifetime_sec>-1</pit_min_lifetime_sec>
+</node-params-set>
+
+
+<node-params-get xmlns="urn:sysrepo:hicn"/>
+
+<node-stat-get xmlns="urn:sysrepo:hicn"/>
+
+<strategy-get xmlns="urn:sysrepo:hicn">
+ <strategy_id>0</strategy_id>
+</strategy-get>
+
+<strategies-get xmlns="urn:sysrepo:hicn"/>
+
+
+<route-get xmlns="urn:sysrepo:hicn">
+ <prefix0>10</prefix0>
+ <prefix1>20</prefix1>
+ <len>30</len>
+</route-get>
+
+<route-del xmlns="urn:sysrepo:hicn">
+ <prefix0>10</prefix0>
+ <prefix1>20</prefix1>
+ <len>30</len>
+</route-del>
+
+<route-nhops-add xmlns="urn:sysrepo:hicn">
+ <prefix0>10</prefix0>
+ <prefix1>20</prefix1>
+ <len>30</len>
+ <face_ids0>40</face_ids0>
+ <face_ids1>50</face_ids1>
+ <face_ids2>60</face_ids2>
+ <face_ids3>70</face_ids3>
+ <face_ids4>80</face_ids4>
+ <face_ids5>90</face_ids5>
+ <face_ids6>100</face_ids6>
+ <n_faces>110</n_faces>
+</route-nhops-add>
+
+<route-nhops-del xmlns="urn:sysrepo:hicn">
+ <prefix0>10</prefix0>
+ <prefix1>20</prefix1>
+ <len>30</len>
+ <faceid>40</faceid>
+</route-nhops-del>
+
+
+<face-ip-params-get xmlns="urn:sysrepo:hicn">
+ <faceid>10</faceid>
+</face-ip-params-get>
+
+<face-ip-add xmlns="urn:sysrepo:hicn">
+ <nh_addr0>10</nh_addr0>
+ <nh_addr1>20</nh_addr1>
+ <swif>30</swif>
+</face-ip-add>
+
+<face-ip-del xmlns="urn:sysrepo:hicn">
+ <faceid>0</faceid>
+</face-ip-del>
+
+<punting-add xmlns="urn:sysrepo:hicn">
+ <prefix0>10</prefix0>
+ <prefix1>20</prefix1>
+ <len>30</len>
+ <swif>40</swif>
+</punting-add>
+
+
+<punting-del xmlns="urn:sysrepo:hicn">
+ <prefix0>10</prefix0>
+ <prefix1>20</prefix1>
+ <len>30</len>
+ <swif>40</swif>
+</punting-del>
diff --git a/utils/sysrepo-plugin/plugin/yang/model/hicn.yang b/utils/sysrepo-plugin/plugin/yang/model/hicn.yang
new file mode 100644
index 000000000..1bab9771b
--- /dev/null
+++ b/utils/sysrepo-plugin/plugin/yang/model/hicn.yang
@@ -0,0 +1,546 @@
+module hicn {
+ namespace "urn:sysrepo:hicn";
+ prefix hcn;
+
+ revision 2019-02-06 {
+ description "Initial revision.";
+ }
+
+
+/* new data types and grouping definition to forward the remote request toward hicn controler--to-->hicn */
+
+ typedef float {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ }
+
+
+ grouping params {
+
+ leaf enable_disable {
+ description "Enable / disable ICN forwarder in VPP.";
+ type boolean;
+ default false;
+ }
+
+ leaf pit_max_size {
+ description "PIT maximum size, otherwise -1 to assign default value.";
+ type int32;
+ default -1;
+ }
+
+ leaf cs_max_size {
+ description "CS maximum size, otherwise -1 to assign default value.";
+ type int32;
+ default -1;
+ }
+
+ leaf cs_reserved_app {
+ description "Portion of CS reserved to application, otherwise -1 to assign default value.";
+ type int32;
+ default -1;
+ }
+
+ leaf pit_dflt_lifetime_sec {
+ description "Default PIT entry lifetime, otherwise -1 to assign default value.";
+ type float;
+ default -1;
+ }
+
+ leaf pit_max_lifetime_sec {
+ description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value.";
+ type float;
+ default -1;
+ }
+
+ leaf pit_min_lifetime_sec {
+ description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value .";
+ type float;
+ default -1;
+ }
+}
+
+ grouping face_ip_add {
+
+ leaf nh_addr0 {
+ description "IP local address.";
+ type uint64;
+ }
+
+ leaf nh_addr1 {
+ description "IP local address.";
+ type uint64;
+ }
+
+ leaf swif {
+ description "IPv4 local port number.";
+ type uint32;
+ }
+ }
+
+ grouping route_nhops_add {
+
+ leaf prefix0 {
+ description "Prefix0 to be added to the FIB.";
+ type uint64;
+ }
+
+ leaf prefix1 {
+ description "Prefix1 to be added to the FIB.";
+ type uint64;
+ }
+
+ leaf len {
+ description "Length of the prefix.";
+ type uint8;
+ }
+
+ leaf face_ids0 {
+ description "A Face ID to the next hop forwarder for the specified prefix.";
+ type uint32;
+ }
+
+ leaf face_ids1 {
+ description "A Face ID to the next hop forwarder for the specified prefix.";
+ type uint32;
+ }
+
+ leaf face_ids2 {
+ description "A Face ID to the next hop forwarder for the specified prefix.";
+ type uint32;
+ }
+
+ leaf face_ids3 {
+ description "A Face ID to the next hop forwarder for the specified prefix.";
+ type uint32;
+ }
+
+ leaf face_ids4 {
+ description "A Face ID to the next hop forwarder for the specified prefix.";
+ type uint32;
+ }
+
+ leaf face_ids5 {
+ description "A Face ID to the next hop forwarder for the specified prefix.";
+ type uint32;
+ }
+
+ leaf face_ids6 {
+ description "A Face ID to the next hop forwarder for the specified prefix.";
+ type uint32;
+ }
+
+ leaf n_faces {
+ description "Number of face to add.";
+ type uint8;
+ }
+ }
+
+
+ grouping route_nhops_del {
+
+ leaf prefix0 {
+ description "Prefix0 to be added to the FIB.";
+ type uint64;
+ }
+
+ leaf prefix1 {
+ description "Prefix1 to be added to the FIB.";
+ type uint64;
+ }
+
+ leaf len {
+ description "Length of the prefix.";
+ type uint8;
+ }
+
+ leaf faceid {
+ description "A Face ID to the next hop forwarder for the specified prefix.";
+ type uint16;
+ }
+
+ }
+
+
+ grouping route_add {
+
+ leaf prefix0 {
+ description "Prefix0 to be added to the FIB.";
+ type uint64;
+ }
+
+ leaf prefix1 {
+ description "Prefix1 to be added to the FIB.";
+ type uint64;
+ }
+
+ leaf len {
+ description "Length of the prefix.";
+ type uint8;
+ }
+ }
+
+
+ grouping route_del {
+
+ leaf prefix0 {
+ description "Prefix0 to be added to the FIB.";
+ type uint64;
+ }
+
+ leaf prefix1 {
+ description "Prefix1 to be added to the FIB.";
+ type uint64;
+ }
+
+ leaf len {
+ description "Length of the prefix.";
+ type uint8;
+ }
+ }
+
+
+ grouping route_get {
+
+
+ leaf prefix0 {
+ description "Prefix0 to be added to the FIB.";
+ type uint64;
+ }
+
+ leaf prefix1 {
+ description "Prefix1 to be added to the FIB.";
+ type uint64;
+ }
+
+ leaf len {
+ description "Length of the prefix.";
+ type uint8;
+ }
+ }
+
+ grouping punting_add {
+
+ leaf prefix0 {
+ description "Prefix to be added to the FIB.";
+ type uint64;
+ }
+
+ leaf prefix1 {
+ description "Prefix to be added to the FIB.";
+ type uint64;
+ }
+
+ leaf len {
+ description "Length of the prefix.";
+ type uint8;
+ }
+
+ leaf swif {
+ description "Interface id.";
+ type uint32;
+ }
+ }
+
+ grouping register_prod_app {
+
+ leaf-list prefix {
+ description "Prefix to be matched to the FIB.";
+ type uint64;
+ }
+
+ leaf len {
+ description "Length of the prefix.";
+ type uint8;
+ }
+
+ leaf swif {
+ description "Interface id.";
+ type uint32;
+ }
+
+ leaf cs_reserved {
+ description "CS memory reserved -- in number of packets.";
+ type uint32;
+ }
+
+ }
+
+/* new data types and grouping definition to backward the remote response hicn--to-->controler */
+
+
+ grouping states-reply {
+
+ leaf pkts_processed {
+ description "ICN packets processed.";
+ type uint64;
+ }
+
+ leaf pkts_interest_count {
+ description "PIT maximum size, otherwise -1 to assign default value.";
+ type uint64;
+ }
+
+ leaf pkts_data_count {
+ description "CS maximum size, otherwise -1 to assign default value.";
+ type uint64;
+ }
+
+ leaf pkts_from_cache_count {
+ description "Portion of CS reserved to application, otherwise -1 to assign default value.";
+ type uint64;
+ }
+
+ leaf pkts_no_pit_count {
+ description "Default PIT entry lifetime, otherwise -1 to assign default value.";
+ type uint64;
+ }
+
+ leaf pit_expired_count {
+ description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value.";
+ type uint64;
+ }
+
+ leaf cs_expired_count {
+ description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value .";
+ type uint64;
+ }
+
+ leaf cs_lru_count {
+ description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value .";
+ type uint64;
+ }
+
+ leaf pkts_drop_no_buf {
+ description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value .";
+ type uint64;
+ }
+
+ leaf interests_aggregated {
+ description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value .";
+ type uint64;
+ }
+
+ leaf interests_retx {
+ description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value .";
+ type uint64;
+ }
+
+ leaf interests_hash_collision {
+ description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value .";
+ type uint64;
+ }
+
+ leaf pit_entries_count {
+ description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value .";
+ type uint64;
+ }
+
+ leaf cs_entries_count {
+ description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value .";
+ type uint64;
+ }
+
+ leaf cs_entries_ntw_count {
+ description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value .";
+ type uint64;
+ }
+
+}
+
+
+
+ grouping strategy-reply {
+
+ leaf description {
+ description "Enable / disable ICN forwarder in VPP.";
+ type uint8;
+ }
+ }
+
+ grouping route-reply {
+
+ leaf faceids {
+ description "Enable / disable ICN forwarder in VPP.";
+ type uint16;
+
+ }
+
+ leaf strategy_id {
+ description "compile-time plugin features.";
+ type uint32;
+ }
+ }
+
+ grouping strategies-reply {
+ leaf n_strategies {
+ description "Enable / disable ICN forwarder in VPP.";
+ type uint8;
+ }
+ leaf strategy_id {
+ description "Enable / disable ICN forwarder in VPP.";
+ type uint32;
+ }
+
+ }
+
+ grouping face-ip-params-reply {
+
+ leaf nh_addr {
+ description "Enable / disable ICN forwarder in VPP.";
+ type uint64;
+ }
+
+ leaf swif {
+ description "compile-time plugin features.";
+ type uint32;
+ }
+
+ leaf flags {
+ description "compile-time plugin features.";
+ type uint32;
+ }
+
+ }
+
+
+/* Hicn configuration */
+
+ container hicn-conf {
+ config true;
+ description "config data container for the hicn-vpp.";
+
+ container params{
+ uses params;
+ }
+ }
+
+
+/* Hicn operational data */
+
+ container hicn-state {
+ config false;
+ description "operational data container for the hicn.";
+
+ container states{
+ uses states-reply;
+ }
+ container strategy{
+ uses strategy-reply;
+ }
+ container route{
+ uses route-reply;
+ }
+ container strategies{
+ uses strategies-reply;
+ }
+ container face-ip-params{
+ uses face-ip-params-reply;
+ }
+ }
+
+/* RPC Definitions */
+
+
+ rpc node-params-set {
+ description "Operation to set hicn params in vpp.";
+ input {
+ uses params;
+ }
+ }
+
+ rpc node-params-get {
+ description "Operation to get hicn parameter in vpp.";
+ }
+
+
+ rpc node-stat-get {
+ description "Operation to get hicn status in vpp.";
+ }
+
+
+ rpc strategy-get {
+ description "Operation to get hicn strategy.";
+ input {
+ leaf strategy_id {
+ description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value .";
+ type uint32;
+ }
+ }
+ }
+
+ rpc strategies-get {
+ description "Operation to get hicn strategies.";
+ }
+
+ rpc route-get {
+ description "Operation to get hicn route.";
+ input {
+ uses route_get;
+ }
+ }
+
+ rpc route-del {
+ description "Operation to del hicn route.";
+ input {
+ uses route_del;
+ }
+ }
+
+ rpc route-nhops-add {
+ description "Operation to add hicn route nhops.";
+ input {
+ uses route_nhops_add;
+ }
+ }
+
+ rpc route-nhops-del {
+ description "Operation to add hicn face ip punt.";
+ input {
+ uses route_nhops_del;
+ }
+ }
+
+ rpc face-ip-params-get {
+ description "Operation to del hicn route.";
+ input {
+ leaf faceid {
+ description "Face to be retrieved .";
+ type uint16;
+ }
+ }
+ }
+
+ rpc face-ip-add {
+ description "Operation to add hicn face ip.";
+ input {
+ uses face_ip_add;
+ }
+ }
+
+ rpc face-ip-del {
+ description "Operation to del hicn face ip.";
+ input {
+ leaf faceid {
+ description "Face to be deleted .";
+ type uint16;
+ }
+ }
+ }
+
+ rpc punting-add {
+ description "Operation to add hicn punt.";
+ input {
+ uses punting_add;
+ }
+ }
+
+ rpc punting-del {
+ description "Operation to del hicn punt.";
+ input {
+ uses punting_add; /* It uses the same payload as the add*/
+ }
+ }
+
+} \ No newline at end of file
diff --git a/utils/sysrepo-plugin/plugin/yang/startup.xml b/utils/sysrepo-plugin/plugin/yang/startup.xml
new file mode 100644
index 000000000..f88e13ea2
--- /dev/null
+++ b/utils/sysrepo-plugin/plugin/yang/startup.xml
@@ -0,0 +1,11 @@
+<hicn-conf xmlns="urn:sysrepo:hicn">
+<params>
+ <enable_disable>false</enable_disable>
+ <pit_max_size>-1</pit_max_size>
+ <cs_max_size>-1</cs_max_size>
+ <cs_reserved_app>-1</cs_reserved_app>
+ <pit_dflt_lifetime_sec>-1</pit_dflt_lifetime_sec>
+ <pit_max_lifetime_sec>-1</pit_max_lifetime_sec>
+ <pit_min_lifetime_sec>-1</pit_min_lifetime_sec>
+</params>
+</hicn-conf> \ No newline at end of file