diff options
author | Masoud Hemmatpour <mhemmatp@cisco.com> | 2019-02-13 15:46:22 +0100 |
---|---|---|
committer | Masoud Hemmatpour <mhemmatp@cisco.com> | 2019-03-01 17:40:40 +0100 |
commit | efaa7522f58c0d8269081f2107e5fb6dc0afe9b9 (patch) | |
tree | 4954244827d7d976eea9cfb44ff1c2f00a877486 /utils/sysrepo-plugin/plugin/model/hicn_model.h | |
parent | 05cd40ed288c1c0ef94a55477a0a0b41f7c3f37a (diff) |
[HICN-5] hicn sysrepo plugin initial
Change-Id: I4713465c39abd00fac709cfc908b9384ea75532f
Signed-off-by: Masoud Hemmatpour <mhemmatp@cisco.com>
Signed-off-by: Luca Muscariello <lumuscar+fdio@cisco.com>
Signed-off-by: Masoud Hemmatpour <mhemmatp@cisco.com>
Signed-off-by: Luca Muscariello <lumuscar+fdio@cisco.com>
Signed-off-by: Masoud Hemmatpour <mhemmatp@cisco.com>
Diffstat (limited to 'utils/sysrepo-plugin/plugin/model/hicn_model.h')
-rw-r--r-- | utils/sysrepo-plugin/plugin/model/hicn_model.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/utils/sysrepo-plugin/plugin/model/hicn_model.h b/utils/sysrepo-plugin/plugin/model/hicn_model.h new file mode 100644 index 000000000..1f5acabc5 --- /dev/null +++ b/utils/sysrepo-plugin/plugin/model/hicn_model.h @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2019 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __IETF_HICN_H__ +#define __IETF_HICN_H__ + +#include "../hicn_vpp_comm.h" + + +#define MEM_ALIGN 4096 + +// Number of locks is equal to number of nodes in hicn-state +// It is a coarse grain approach later can be changed to fine grained +// better to initialize the lock by 0 +#define NLOCKS 5 +#define LOCK_INIT 0 + + +enum locks_name {lstate, lstrategy, lstrategies, lroute, lface_ip_params}; + +#define NSTATE_LEAVES 15 +#define NSTRATEGY_LEAVES 1 +#define NSTRATEGIES_LEAVES 2 +#define NROUTE_LEAVES 2 +#define NFACE_IP_PARAMS_LEAVES 3 + + +typedef struct __attribute__ ((__packed__)) { + + uint64_t pkts_processed; + uint64_t pkts_interest_count; + uint64_t pkts_data_count; + uint64_t pkts_from_cache_count; + uint64_t pkts_no_pit_count; + uint64_t pit_expired_count; + uint64_t cs_expired_count; + uint64_t cs_lru_count; + uint64_t pkts_drop_no_buf; + uint64_t interests_aggregated; + uint64_t interests_retx; + uint64_t interests_hash_collision; + uint64_t pit_entries_count; + uint64_t cs_entries_count; + uint64_t cs_entries_ntw_count; + int32_t retval; + +} hicn_state_t; + +typedef struct __attribute__ ((__packed__)) { + uint8_t description[200]; + int32_t retval; +} hicn_strategy_t; + + +typedef struct __attribute__ ((__packed__)) { + + uint8_t n_strategies; + uint32_t strategy_id[256]; + int32_t retval; +} hicn_strategies_t; + +typedef struct __attribute__ ((__packed__)) { + uint16_t faceids[1000]; + uint32_t strategy_id; + int32_t retval; +} hicn_route_t; + +typedef struct __attribute__ ((__packed__)) { + uint64_t nh_addr[2]; + uint32_t swif; + uint32_t flags; + int32_t retval; +} hicn_face_ip_params_t; + +int hicn_subscribe_events(sr_session_ctx_t *session, + sr_subscription_ctx_t **subscription); + +#endif /* __IETF_HICN_H__ */
\ No newline at end of file |