16 #ifndef __HICN_PARAM_H__
17 #define __HICN_PARAM_H__
29 #define HICN_FEATURE_CS 1 // 1 enable 0 disable
34 #define HICN_PARAM_FACES_MAX 512
36 STATIC_ASSERT ((HICN_PARAM_FACES_MAX & (HICN_PARAM_FACES_MAX - 1)) == 0,
37 "HICN_PARAM_FACES_MAX must be a power of 2");
42 #define HICN_PARAM_HICN_NAME_LEN_MAX 20 // bytes
45 #define HICN_PARAM_FIB_ENTRY_NHOPS_MAX 10
48 #define HICN_PARAM_FIB_ENTRY_NHOP_WGHT_DFLT 0x10
49 #define HICN_PARAM_FIB_ENTRY_NHOP_WGHT_MAX 0xff
54 #define HICN_PARAM_PIT_ENTRIES_MIN 1024
55 #define HICN_PARAM_PIT_ENTRIES_DFLT 1024 * 128
56 #define HICN_PARAM_PIT_ENTRIES_MAX 2 * 1024 * 1024
61 #define HICN_PARAM_PIT_ENTRY_PHOPS_MAX 20
63 STATIC_ASSERT ((ceil (log2 ((HICN_PARAM_PIT_ENTRY_PHOPS_MAX - 4)))) ==
64 (floor (log2 ((HICN_PARAM_PIT_ENTRY_PHOPS_MAX - 4)))),
65 "HICN_PARAM_PIT_ENTRY_PHOPS_MAX - 4 must be a power of two");
68 (HICN_PARAM_PIT_ENTRY_PHOPS_MAX <= HICN_PARAM_FACES_MAX),
69 "HICN_PARAM_PIT_ENTRY_PHOP_MAX must be <= than HICN_PARAM_FACES_MAX");
72 #define HICN_PARAM_RTX_MAX 10
75 #define HICN_PARAM_PIT_LIFETIME_BOUND_MIN_SEC 0
76 #define HICN_PARAM_PIT_LIFETIME_BOUND_MAX_SEC 200
79 #define HICN_PARAM_PIT_LIFETIME_DFLT_MAX_MS 20000
82 #define HICN_PARAM_FACE_MAX_CS_RESERVED 20000 // packets
83 #define HICN_PARAM_FACE_MIN_CS_RESERVED 0 // packets
84 #define HICN_PARAM_FACE_DFT_CS_RESERVED 20000 // packets
89 #define HICN_PARAM_CS_ENTRIES_MIN 0 // can disable CS
90 #define HICN_PARAM_CS_ENTRIES_DFLT 4 * 1024
91 #define HICN_PARAM_CS_ENTRIES_MAX 1024 * 1024
93 #define HICN_PARAM_CS_LRU_DEFAULT (16 * 1024)
96 #define HICN_PARAM_CS_LIFETIME_MIN 0
97 #define HICN_PARAM_CS_LIFETIME_DFLT (5 * 60 * 1000) // 300 seconds
98 #define HICN_PARAM_CS_LIFETIME_MAX (24 * 3600 * 1000) // 24 hours...
101 #define HICN_PARAM_CS_RESERVED_APP 50 //%
102 #define HICN_PARAM_CS_MIN_MBUF \
103 4096 // this seems to be the minumim default number of mbuf we can have in
108 #define HICN_IP4_VERSION_HEADER_LENGTH 0x45
109 #define HICN_IP4_PROTOCOL IP_PROTOCOL_TCP
110 #define HICN_IP4_TTL_DEFAULT 128
113 #define IPV6_DEFAULT_VERSION 6
114 #define IPV6_DEFAULT_TRAFFIC_CLASS 0
115 #define IPV6_DEFAULT_FLOW_LABEL 0
116 #define HCIN_IP6_VERSION_TRAFFIC_FLOW \
117 (IPV6_DEFAULT_VERSION << 28) | (IPV6_DEFAULT_TRAFFIC_CLASS << 20) | \
118 (IPV6_DEFAULT_FLOW_LABEL & 0xfffff)
119 #define HICN_IP6_PROTOCOL IP_PROTOCOL_TCP
120 #define HICN_IP6_HOP_LIMIT 0x40