Hybrid ICN (hICN) plugin
v21.06-rc0-4-g18fa668
hicn-plugin
src
infra.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2017-2020 Cisco and/or its affiliates.
3
* Licensed under the Apache License, Version 2.0 (the "License");
4
* you may not use this file except in compliance with the License.
5
* You may obtain a copy of the License at:
6
*
7
* http://www.apache.org/licenses/LICENSE-2.0
8
*
9
* Unless required by applicable law or agreed to in writing, software
10
* distributed under the License is distributed on an "AS IS" BASIS,
11
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
* See the License for the specific language governing permissions and
13
* limitations under the License.
14
*/
15
16
#ifndef __HICN_INFRA_H__
17
#define __HICN_INFRA_H__
18
19
#include <vlib/vlib.h>
20
#include <vnet/vnet.h>
21
#include <vnet/interface.h>
22
23
#include "
pcs.h
"
24
33
typedef
struct
hicn_main_s
34
{
35
/* Binary API message ID base */
36
u16 msg_id_base;
37
38
/* Have we been enabled */
39
u16 is_enabled;
40
41
/* Forwarder PIT/CS */
42
hicn_pit_cs_t
pitcs;
43
44
/* Global PIT lifetime info */
45
/*
46
* Boundaries for the interest lifetime. If greater than
47
* pit_lifetime_max_ms, pit_lifetime_max_ms is used in the PIT
48
*/
49
u64 pit_lifetime_max_ms;
50
51
vnet_link_t link;
52
53
}
hicn_main_t
;
54
55
extern
hicn_main_t
hicn_main;
56
57
extern
int
hicn_infra_fwdr_initialized;
58
59
/* PIT and CS size */
60
u32 hicn_infra_pit_size;
61
u32 hicn_infra_cs_size;
62
75
int
hicn_infra_plugin_enable_disable
(
int
enable_disable,
int
pit_max_size,
76
f64 pit_max_lifetime_sec_req,
77
int
cs_max_size, vnet_link_t link);
78
79
/* vlib nodes that compose the hICN forwarder */
80
extern
vlib_node_registration_t hicn_interest_pcslookup_node;
81
extern
vlib_node_registration_t hicn_data_pcslookup_node;
82
extern
vlib_node_registration_t hicn_data_fwd_node;
83
extern
vlib_node_registration_t hicn_data_store_node;
84
extern
vlib_node_registration_t hicn_interest_hitpit_node;
85
extern
vlib_node_registration_t hicn_interest_hitcs_node;
86
extern
vlib_node_registration_t hicn_pg_interest_node;
87
extern
vlib_node_registration_t hicn_pg_data_node;
88
extern
vlib_node_registration_t hicn_pg_server_node;
89
extern
vlib_node_registration_t hicn_data_input_ip6_node;
90
extern
vlib_node_registration_t hicn_data_input_ip4_node;
91
92
#endif
/* // __HICN_INFRA_H__ */
93
94
/*
95
* fd.io coding-style-patch-verification: ON
96
*
97
* Local Variables: eval: (c-set-style "gnu") End:
98
*/
hicn_main_t
struct hicn_main_s hicn_main_t
hICN plugin global state.
hicn_pit_cs_s
Definition:
pcs.h:143
hicn_infra_plugin_enable_disable
int hicn_infra_plugin_enable_disable(int enable_disable, int pit_max_size, f64 pit_max_lifetime_sec_req, int cs_max_size, vnet_link_t link)
Enable and disable the hicn plugin.
hicn_main_s
hICN plugin global state.
Definition:
infra.h:33
pcs.h
Generated by
1.8.17