module hicn { namespace "urn:sysrepo:hicn"; prefix hcn; import ietf-inet-types { prefix inet; } revision 2020-04-29{ description "revised revision focus on telemetry."; } /* new data types and grouping definition to forward the remote request toward hicn controler--to-->hicn */ typedef float { type decimal64 { fraction-digits 2; } } 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 face-stats-reply { list face{ key faceid; leaf faceid { description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value ."; type uint32; } leaf intfc { description "This is the idx number of the faceid."; type uint32; } leaf irx_packets { description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value ."; type uint64; } leaf irx_bytes { description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value ."; type uint64; } leaf itx_packets { description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value ."; type uint64; } leaf itx_bytes { description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value ."; type uint64; } leaf drx_packets { description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value ."; type uint64; } leaf drx_bytes { description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value ."; type uint64; } leaf dtx_packets { description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value ."; type uint64; } leaf dtx_bytes { description "Upper bound on PIT entry lifetime, otherwise -1 to assign default value ."; type uint64; } } } grouping route-reply { list route{ key routeid; leaf routeid { description "the unique key for each item."; type uint32; } leaf prefix { description "IP address."; type string; } 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; } } typedef hicn-prefix { description "hICN prefix."; type inet:ip-prefix; } /* Hicn operational data */ container hicn-state { config false; description "operational data container for the hicn."; container faces{ uses face-stats-reply; } container states{ uses states-reply; } container routes{ uses route-reply; } } /* RPC Definitions */ rpc strategies-get { description "Operation to get hicn strategies."; } rpc face-params-get { description "Operation to del hicn route."; input { leaf faceid { description "Face to be retrieved ."; type uint32; } } } rpc hicn-enable { description "Enable hicn on a gie prefix."; input { leaf prefix { type hicn-prefix; } } } rpc hicn-disable { description "Disable hicn on a gie prefix."; input { leaf prefix { type hicn-prefix; } } } }