1/*
2 * Memory type definitions. This file is parsed by memtypes.awk to extract
3 * MTYPE_ and memory_list_.. information in order to autogenerate
4 * memtypes.h.
5 *
6 * The script is sensitive to the format (though not whitespace), see
7 * the top of memtypes.awk for more details.
8 */
9
10#include "zebra.h"
11#include "memory.h"
12
13struct memory_list memory_list_lib[] =
14{
15  { MTYPE_TMP,			"Temporary memory"		},
16  { MTYPE_STRVEC,		"String vector"			},
17  { MTYPE_VECTOR,		"Vector"			},
18  { MTYPE_VECTOR_INDEX,		"Vector index"			},
19  { MTYPE_LINK_LIST,		"Link List"			},
20  { MTYPE_LINK_NODE,		"Link Node"			},
21  { MTYPE_THREAD,		"Thread"			},
22  { MTYPE_THREAD_MASTER,	"Thread master"			},
23  { MTYPE_THREAD_STATS,		"Thread stats"			},
24  { MTYPE_VTY,			"VTY"				},
25  { MTYPE_VTY_OUT_BUF,		"VTY output buffer"		},
26  { MTYPE_VTY_HIST,		"VTY history"			},
27  { MTYPE_IF,			"Interface"			},
28  { MTYPE_CONNECTED,		"Connected" 			},
29  { MTYPE_CONNECTED_LABEL,	"Connected interface label"	},
30  { MTYPE_BUFFER,		"Buffer"			},
31  { MTYPE_BUFFER_DATA,		"Buffer data"			},
32  { MTYPE_STREAM,		"Stream"			},
33  { MTYPE_STREAM_DATA,		"Stream data"			},
34  { MTYPE_STREAM_FIFO,		"Stream FIFO"			},
35  { MTYPE_PREFIX,		"Prefix"			},
36  { MTYPE_PREFIX_IPV4,		"Prefix IPv4"			},
37  { MTYPE_PREFIX_IPV6,		"Prefix IPv6"			},
38  { MTYPE_HASH,			"Hash"				},
39  { MTYPE_HASH_BACKET,		"Hash Bucket"			},
40  { MTYPE_HASH_INDEX,		"Hash Index"			},
41  { MTYPE_ROUTE_TABLE,		"Route table"			},
42  { MTYPE_ROUTE_NODE,		"Route node"			},
43  { MTYPE_DISTRIBUTE,		"Distribute list"		},
44  { MTYPE_DISTRIBUTE_IFNAME,	"Dist-list ifname"		},
45  { MTYPE_ACCESS_LIST,		"Access List"			},
46  { MTYPE_ACCESS_LIST_STR,	"Access List Str"		},
47  { MTYPE_ACCESS_FILTER,	"Access Filter"			},
48  { MTYPE_PREFIX_LIST,		"Prefix List"			},
49  { MTYPE_PREFIX_LIST_ENTRY,	"Prefix List Entry"		},
50  { MTYPE_PREFIX_LIST_STR,	"Prefix List Str"		},
51  { MTYPE_ROUTE_MAP,		"Route map"			},
52  { MTYPE_ROUTE_MAP_NAME,	"Route map name"		},
53  { MTYPE_ROUTE_MAP_INDEX,	"Route map index"		},
54  { MTYPE_ROUTE_MAP_RULE,	"Route map rule"		},
55  { MTYPE_ROUTE_MAP_RULE_STR,	"Route map rule str"		},
56  { MTYPE_ROUTE_MAP_COMPILED,	"Route map compiled"		},
57  { MTYPE_CMD_TOKENS,		"Command desc"			},
58  { MTYPE_KEY,			"Key"				},
59  { MTYPE_KEYCHAIN,		"Key chain"			},
60  { MTYPE_IF_RMAP,		"Interface route map"		},
61  { MTYPE_IF_RMAP_NAME,		"I.f. route map name",		},
62  { MTYPE_SOCKUNION,		"Socket union"			},
63  { MTYPE_PRIVS,		"Privilege information"		},
64  { MTYPE_ZLOG,			"Logging"			},
65  { MTYPE_ZCLIENT,		"Zclient"			},
66  { MTYPE_WORK_QUEUE,		"Work queue"			},
67  { MTYPE_WORK_QUEUE_ITEM,	"Work queue item"		},
68  { MTYPE_WORK_QUEUE_NAME,	"Work queue name string"	},
69  { MTYPE_PQUEUE,		"Priority queue"		},
70  { MTYPE_PQUEUE_DATA,		"Priority queue data"		},
71  { MTYPE_HOST,			"Host config"			},
72  { -1, NULL },
73};
74
75struct memory_list memory_list_zebra[] =
76{
77  { MTYPE_RTADV_PREFIX,		"Router Advertisement Prefix"	},
78  { MTYPE_VRF,			"VRF"				},
79  { MTYPE_VRF_NAME,		"VRF name"			},
80  { MTYPE_NEXTHOP,		"Nexthop"			},
81  { MTYPE_RIB,			"RIB"				},
82  { MTYPE_RIB_QUEUE,		"RIB process work queue"	},
83  { MTYPE_STATIC_IPV4,		"Static IPv4 route"		},
84  { MTYPE_STATIC_IPV6,		"Static IPv6 route"		},
85  { MTYPE_RIB_DEST,		"RIB destination"		},
86  { MTYPE_RIB_TABLE_INFO,	"RIB table info"		},
87  { -1, NULL },
88};
89
90struct memory_list memory_list_bgp[] =
91{
92  { MTYPE_BGP,			"BGP instance"			},
93  { MTYPE_BGP_LISTENER,		"BGP listen socket details"	},
94  { MTYPE_BGP_PEER,		"BGP peer"			},
95  { MTYPE_BGP_PEER_HOST,	"BGP peer hostname"		},
96  { MTYPE_PEER_GROUP,		"Peer group"			},
97  { MTYPE_PEER_DESC,		"Peer description"		},
98  { MTYPE_PEER_PASSWORD,	"Peer password string"		},
99  { MTYPE_ATTR,			"BGP attribute"			},
100  { MTYPE_ATTR_EXTRA,		"BGP extra attributes"		},
101  { MTYPE_AS_PATH,		"BGP aspath"			},
102  { MTYPE_AS_SEG,		"BGP aspath seg"		},
103  { MTYPE_AS_SEG_DATA,		"BGP aspath segment data"	},
104  { MTYPE_AS_STR,		"BGP aspath str"		},
105  { 0, NULL },
106  { MTYPE_BGP_TABLE,		"BGP table"			},
107  { MTYPE_BGP_NODE,		"BGP node"			},
108  { MTYPE_BGP_ROUTE,		"BGP route"			},
109  { MTYPE_BGP_ROUTE_EXTRA,	"BGP ancillary route info"	},
110  { MTYPE_BGP_CONN,		"BGP connected"			},
111  { MTYPE_BGP_STATIC,		"BGP static"			},
112  { MTYPE_BGP_ADVERTISE_ATTR,	"BGP adv attr"			},
113  { MTYPE_BGP_ADVERTISE,	"BGP adv"			},
114  { MTYPE_BGP_SYNCHRONISE,	"BGP synchronise"		},
115  { MTYPE_BGP_ADJ_IN,		"BGP adj in"			},
116  { MTYPE_BGP_ADJ_OUT,		"BGP adj out"			},
117  { MTYPE_BGP_MPATH_INFO,	"BGP multipath info"		},
118  { 0, NULL },
119  { MTYPE_AS_LIST,		"BGP AS list"			},
120  { MTYPE_AS_FILTER,		"BGP AS filter"			},
121  { MTYPE_AS_FILTER_STR,	"BGP AS filter str"		},
122  { 0, NULL },
123  { MTYPE_COMMUNITY,		"community"			},
124  { MTYPE_COMMUNITY_VAL,	"community val"			},
125  { MTYPE_COMMUNITY_STR,	"community str"			},
126  { 0, NULL },
127  { MTYPE_ECOMMUNITY,		"extcommunity"			},
128  { MTYPE_ECOMMUNITY_VAL,	"extcommunity val"		},
129  { MTYPE_ECOMMUNITY_STR,	"extcommunity str"		},
130  { 0, NULL },
131  { MTYPE_COMMUNITY_LIST,	"community-list"		},
132  { MTYPE_COMMUNITY_LIST_NAME,	"community-list name"		},
133  { MTYPE_COMMUNITY_LIST_ENTRY,	"community-list entry"		},
134  { MTYPE_COMMUNITY_LIST_CONFIG,  "community-list config"	},
135  { MTYPE_COMMUNITY_LIST_HANDLER, "community-list handler"	},
136  { 0, NULL },
137  { MTYPE_CLUSTER,		"Cluster list"			},
138  { MTYPE_CLUSTER_VAL,		"Cluster list val"		},
139  { 0, NULL },
140  { MTYPE_BGP_PROCESS_QUEUE,	"BGP Process queue"		},
141  { MTYPE_BGP_CLEAR_NODE_QUEUE, "BGP node clear queue"		},
142  { 0, NULL },
143  { MTYPE_TRANSIT,		"BGP transit attr"		},
144  { MTYPE_TRANSIT_VAL,		"BGP transit val"		},
145  { 0, NULL },
146  { MTYPE_BGP_DISTANCE,		"BGP distance"			},
147  { MTYPE_BGP_NEXTHOP_CACHE,	"BGP nexthop"			},
148  { MTYPE_BGP_CONFED_LIST,	"BGP confed list"		},
149  { MTYPE_PEER_UPDATE_SOURCE,	"BGP peer update interface"	},
150  { MTYPE_BGP_DAMP_INFO,	"Dampening info"		},
151  { MTYPE_BGP_DAMP_ARRAY,	"BGP Dampening array"		},
152  { MTYPE_BGP_REGEXP,		"BGP regexp"			},
153  { MTYPE_BGP_AGGREGATE,	"BGP aggregate"			},
154  { MTYPE_BGP_ADDR,		"BGP own address"		},
155  { -1, NULL }
156};
157
158struct memory_list memory_list_rip[] =
159{
160  { MTYPE_RIP,                "RIP structure"			},
161  { MTYPE_RIP_INFO,           "RIP route info"			},
162  { MTYPE_RIP_INTERFACE,      "RIP interface"			},
163  { MTYPE_RIP_PEER,           "RIP peer"			},
164  { MTYPE_RIP_OFFSET_LIST,    "RIP offset list"			},
165  { MTYPE_RIP_DISTANCE,       "RIP distance"			},
166  { -1, NULL }
167};
168
169struct memory_list memory_list_ripng[] =
170{
171  { MTYPE_RIPNG,              "RIPng structure"			},
172  { MTYPE_RIPNG_ROUTE,        "RIPng route info"		},
173  { MTYPE_RIPNG_AGGREGATE,    "RIPng aggregate"			},
174  { MTYPE_RIPNG_PEER,         "RIPng peer"			},
175  { MTYPE_RIPNG_OFFSET_LIST,  "RIPng offset lst"		},
176  { MTYPE_RIPNG_RTE_DATA,     "RIPng rte data"			},
177  { -1, NULL }
178};
179
180struct memory_list memory_list_babel[] =
181{
182  { MTYPE_BABEL,              "Babel structure"			},
183  { MTYPE_BABEL_IF,           "Babel interface"			},
184  { -1, NULL }
185};
186
187struct memory_list memory_list_ospf[] =
188{
189  { MTYPE_OSPF_TOP,           "OSPF top"			},
190  { MTYPE_OSPF_AREA,          "OSPF area"			},
191  { MTYPE_OSPF_AREA_RANGE,    "OSPF area range"			},
192  { MTYPE_OSPF_NETWORK,       "OSPF network"			},
193  { MTYPE_OSPF_NEIGHBOR_STATIC,"OSPF static nbr"		},
194  { MTYPE_OSPF_IF,            "OSPF interface"			},
195  { MTYPE_OSPF_NEIGHBOR,      "OSPF neighbor"			},
196  { MTYPE_OSPF_ROUTE,         "OSPF route"			},
197  { MTYPE_OSPF_TMP,           "OSPF tmp mem"			},
198  { MTYPE_OSPF_LSA,           "OSPF LSA"			},
199  { MTYPE_OSPF_LSA_DATA,      "OSPF LSA data"			},
200  { MTYPE_OSPF_LSDB,          "OSPF LSDB"			},
201  { MTYPE_OSPF_PACKET,        "OSPF packet"			},
202  { MTYPE_OSPF_FIFO,          "OSPF FIFO queue"			},
203  { MTYPE_OSPF_VERTEX,        "OSPF vertex"			},
204  { MTYPE_OSPF_VERTEX_PARENT, "OSPF vertex parent",		},
205  { MTYPE_OSPF_NEXTHOP,       "OSPF nexthop"			},
206  { MTYPE_OSPF_PATH,	      "OSPF path"			},
207  { MTYPE_OSPF_VL_DATA,       "OSPF VL data"			},
208  { MTYPE_OSPF_CRYPT_KEY,     "OSPF crypt key"			},
209  { MTYPE_OSPF_EXTERNAL_INFO, "OSPF ext. info"			},
210  { MTYPE_OSPF_DISTANCE,      "OSPF distance"			},
211  { MTYPE_OSPF_IF_INFO,       "OSPF if info"			},
212  { MTYPE_OSPF_IF_PARAMS,     "OSPF if params"			},
213  { MTYPE_OSPF_MESSAGE,		"OSPF message"			},
214  { -1, NULL },
215};
216
217struct memory_list memory_list_ospf6[] =
218{
219  { MTYPE_OSPF6_TOP,          "OSPF6 top"			},
220  { MTYPE_OSPF6_AREA,         "OSPF6 area"			},
221  { MTYPE_OSPF6_IF,           "OSPF6 interface"			},
222  { MTYPE_OSPF6_NEIGHBOR,     "OSPF6 neighbor"			},
223  { MTYPE_OSPF6_ROUTE,        "OSPF6 route"			},
224  { MTYPE_OSPF6_PREFIX,       "OSPF6 prefix"			},
225  { MTYPE_OSPF6_MESSAGE,      "OSPF6 message"			},
226  { MTYPE_OSPF6_LSA,          "OSPF6 LSA"			},
227  { MTYPE_OSPF6_LSA_SUMMARY,  "OSPF6 LSA summary"		},
228  { MTYPE_OSPF6_LSDB,         "OSPF6 LSA database"		},
229  { MTYPE_OSPF6_VERTEX,       "OSPF6 vertex"			},
230  { MTYPE_OSPF6_SPFTREE,      "OSPF6 SPF tree"			},
231  { MTYPE_OSPF6_NEXTHOP,      "OSPF6 nexthop"			},
232  { MTYPE_OSPF6_EXTERNAL_INFO,"OSPF6 ext. info"			},
233  { MTYPE_OSPF6_OTHER,        "OSPF6 other"			},
234  { -1, NULL },
235};
236
237struct memory_list memory_list_isis[] =
238{
239  { MTYPE_ISIS,               "ISIS"				},
240  { MTYPE_ISIS_TMP,           "ISIS TMP"			},
241  { MTYPE_ISIS_CIRCUIT,       "ISIS circuit"			},
242  { MTYPE_ISIS_LSP,           "ISIS LSP"			},
243  { MTYPE_ISIS_ADJACENCY,     "ISIS adjacency"			},
244  { MTYPE_ISIS_AREA,          "ISIS area"			},
245  { MTYPE_ISIS_AREA_ADDR,     "ISIS area address"		},
246  { MTYPE_ISIS_TLV,           "ISIS TLV"			},
247  { MTYPE_ISIS_DYNHN,         "ISIS dyn hostname"		},
248  { MTYPE_ISIS_SPFTREE,       "ISIS SPFtree"			},
249  { MTYPE_ISIS_VERTEX,        "ISIS vertex"			},
250  { MTYPE_ISIS_ROUTE_INFO,    "ISIS route info"			},
251  { MTYPE_ISIS_NEXTHOP,       "ISIS nexthop"			},
252  { MTYPE_ISIS_NEXTHOP6,      "ISIS nexthop6"			},
253  { MTYPE_ISIS_DICT,          "ISIS dictionary"			},
254  { MTYPE_ISIS_DICT_NODE,     "ISIS dictionary node"		},
255  { -1, NULL },
256};
257
258struct memory_list memory_list_pim[] =
259{
260  { MTYPE_PIM_CHANNEL_OIL,       "PIM SSM (S,G) channel OIL"      },
261  { MTYPE_PIM_INTERFACE,         "PIM interface"	          },
262  { MTYPE_PIM_IGMP_JOIN,         "PIM interface IGMP static join" },
263  { MTYPE_PIM_IGMP_SOCKET,       "PIM interface IGMP socket"      },
264  { MTYPE_PIM_IGMP_GROUP,        "PIM interface IGMP group"       },
265  { MTYPE_PIM_IGMP_GROUP_SOURCE, "PIM interface IGMP source"      },
266  { MTYPE_PIM_NEIGHBOR,          "PIM interface neighbor"         },
267  { MTYPE_PIM_IFCHANNEL,         "PIM interface (S,G) state"      },
268  { MTYPE_PIM_UPSTREAM,          "PIM upstream (S,G) state"       },
269  { MTYPE_PIM_SSMPINGD,          "PIM sspimgd socket"             },
270  { -1, NULL },
271};
272
273struct memory_list memory_list_vtysh[] =
274{
275  { MTYPE_VTYSH_CONFIG,		"Vtysh configuration",		},
276  { MTYPE_VTYSH_CONFIG_LINE,	"Vtysh configuration line"	},
277  { -1, NULL },
278};
279
280struct mlist mlists[] __attribute__ ((unused)) = {
281  { memory_list_lib,	"LIB"	},
282  { memory_list_zebra,	"ZEBRA"	},
283  { memory_list_rip,	"RIP"	},
284  { memory_list_ripng,	"RIPNG"	},
285  { memory_list_ospf,	"OSPF"	},
286  { memory_list_ospf6,	"OSPF6"	},
287  { memory_list_isis,	"ISIS"	},
288  { memory_list_bgp,	"BGP"	},
289  { memory_list_pim,	"PIM"	},
290  { NULL, NULL},
291};
292