Import Upstream version 1.2.2
[quagga-debian.git] / lib / memtypes.c
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
13 struct 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   { MTYPE_VRF,                  "VRF"                           },
73   { MTYPE_VRF_NAME,             "VRF name"                      },
74   { MTYPE_VRF_BITMAP,           "VRF bit-map"                   },
75   { MTYPE_IF_LINK_PARAMS,       "Informational Link Parameters" },
76   { -1, NULL },
77 };
78
79 struct memory_list memory_list_zebra[] = 
80 {
81   { MTYPE_RTADV_PREFIX,         "Router Advertisement Prefix"   },
82   { MTYPE_ZEBRA_VRF,            "ZEBRA VRF"                             },
83   { MTYPE_NEXTHOP,              "Nexthop"                       },
84   { MTYPE_RIB,                  "RIB"                           },
85   { MTYPE_RIB_QUEUE,            "RIB process work queue"        },
86   { MTYPE_STATIC_ROUTE,         "Static route"                  },
87   { MTYPE_RIB_DEST,             "RIB destination"               },
88   { MTYPE_RIB_TABLE_INFO,       "RIB table info"                },
89   { MTYPE_NETLINK_NAME, "Netlink name"                  },
90   { MTYPE_NETLINK_RCVBUF,       "Netlink receive buffer"        },
91   { MTYPE_RNH,                  "Nexthop tracking object"       },
92   { -1, NULL },
93 };
94
95 struct memory_list memory_list_bgp[] =
96 {
97   { MTYPE_BGP,                  "BGP instance"                  },
98   { MTYPE_BGP_LISTENER,         "BGP listen socket details"     },
99   { MTYPE_BGP_PEER,             "BGP peer"                      },
100   { MTYPE_BGP_PEER_HOST,        "BGP peer hostname"             },
101   { MTYPE_PEER_GROUP,           "Peer group"                    },
102   { MTYPE_PEER_DESC,            "Peer description"              },
103   { MTYPE_PEER_PASSWORD,        "Peer password string"          },
104   { MTYPE_ATTR,                 "BGP attribute"                 },
105   { MTYPE_ATTR_EXTRA,           "BGP extra attributes"          },
106   { MTYPE_AS_PATH,              "BGP aspath"                    },
107   { MTYPE_AS_SEG,               "BGP aspath seg"                },
108   { MTYPE_AS_SEG_DATA,          "BGP aspath segment data"       },
109   { MTYPE_AS_STR,               "BGP aspath str"                },
110   { 0, NULL },
111   { MTYPE_BGP_TABLE,            "BGP table"                     },
112   { MTYPE_BGP_NODE,             "BGP node"                      },
113   { MTYPE_BGP_ROUTE,            "BGP route"                     },
114   { MTYPE_BGP_ROUTE_EXTRA,      "BGP ancillary route info"      },
115   { MTYPE_BGP_CONN,             "BGP connected"                 },
116   { MTYPE_BGP_STATIC,           "BGP static"                    },
117   { MTYPE_BGP_ADVERTISE_ATTR,   "BGP adv attr"                  },
118   { MTYPE_BGP_ADVERTISE,        "BGP adv"                       },
119   { MTYPE_BGP_SYNCHRONISE,      "BGP synchronise"               },
120   { MTYPE_BGP_ADJ_IN,           "BGP adj in"                    },
121   { MTYPE_BGP_ADJ_OUT,          "BGP adj out"                   },
122   { MTYPE_BGP_MPATH_INFO,       "BGP multipath info"            },
123   { 0, NULL },
124   { MTYPE_AS_LIST,              "BGP AS list"                   },
125   { MTYPE_AS_FILTER,            "BGP AS filter"                 },
126   { MTYPE_AS_FILTER_STR,        "BGP AS filter str"             },
127   { 0, NULL },
128   { MTYPE_COMMUNITY,            "community"                     },
129   { MTYPE_COMMUNITY_VAL,        "community val"                 },
130   { MTYPE_COMMUNITY_STR,        "community str"                 },
131   { 0, NULL },
132   { MTYPE_ECOMMUNITY,           "extcommunity"                  },
133   { MTYPE_ECOMMUNITY_VAL,       "extcommunity val"              },
134   { MTYPE_ECOMMUNITY_STR,       "extcommunity str"              },
135   { 0, NULL },
136   { MTYPE_COMMUNITY_LIST,       "community-list"                },
137   { MTYPE_COMMUNITY_LIST_NAME,  "community-list name"           },
138   { MTYPE_COMMUNITY_LIST_ENTRY, "community-list entry"          },
139   { MTYPE_COMMUNITY_LIST_CONFIG,  "community-list config"       },
140   { MTYPE_COMMUNITY_LIST_HANDLER, "community-list handler"      },
141   { 0, NULL },
142   { MTYPE_CLUSTER,              "Cluster list"                  },
143   { MTYPE_CLUSTER_VAL,          "Cluster list val"              },
144   { 0, NULL },
145   { MTYPE_BGP_PROCESS_QUEUE,    "BGP Process queue"             },
146   { MTYPE_BGP_CLEAR_NODE_QUEUE, "BGP node clear queue"          },
147   { 0, NULL },
148   { MTYPE_TRANSIT,              "BGP transit attr"              },
149   { MTYPE_TRANSIT_VAL,          "BGP transit val"               },
150   { 0, NULL },
151   { MTYPE_BGP_DISTANCE,         "BGP distance"                  },
152   { MTYPE_BGP_NEXTHOP_CACHE,    "BGP nexthop"                   },
153   { MTYPE_BGP_CONFED_LIST,      "BGP confed list"               },
154   { MTYPE_PEER_UPDATE_SOURCE,   "BGP peer update interface"     },
155   { MTYPE_BGP_DAMP_INFO,        "Dampening info"                },
156   { MTYPE_BGP_DAMP_ARRAY,       "BGP Dampening array"           },
157   { MTYPE_BGP_REGEXP,           "BGP regexp"                    },
158   { MTYPE_BGP_AGGREGATE,        "BGP aggregate"                 },
159   { MTYPE_BGP_ADDR,             "BGP own address"               },
160   { MTYPE_ENCAP_TLV,            "ENCAP TLV",                    },
161   { MTYPE_LCOMMUNITY,           "Large Community",              },
162   { MTYPE_LCOMMUNITY_STR,       "Large Community str",          },
163   { MTYPE_LCOMMUNITY_VAL,       "Large Community val",          },
164   { -1, NULL }
165 };
166
167 struct memory_list memory_list_rip[] =
168 {
169   { MTYPE_RIP,                "RIP structure"                   },
170   { MTYPE_RIP_INFO,           "RIP route info"                  },
171   { MTYPE_RIP_INTERFACE,      "RIP interface"                   },
172   { MTYPE_RIP_PEER,           "RIP peer"                        },
173   { MTYPE_RIP_OFFSET_LIST,    "RIP offset list"                 },
174   { MTYPE_RIP_DISTANCE,       "RIP distance"                    },
175   { -1, NULL }
176 };
177
178 struct memory_list memory_list_ripng[] =
179 {
180   { MTYPE_RIPNG,              "RIPng structure"                 },
181   { MTYPE_RIPNG_ROUTE,        "RIPng route info"                },
182   { MTYPE_RIPNG_AGGREGATE,    "RIPng aggregate"                 },
183   { MTYPE_RIPNG_PEER,         "RIPng peer"                      },
184   { MTYPE_RIPNG_OFFSET_LIST,  "RIPng offset lst"                },
185   { MTYPE_RIPNG_RTE_DATA,     "RIPng rte data"                  },
186   { -1, NULL }
187 };
188
189 struct memory_list memory_list_babel[] =
190 {
191   { MTYPE_BABEL,              "Babel structure"                 },
192   { MTYPE_BABEL_IF,           "Babel interface"                 },
193   { -1, NULL }
194 };
195
196 struct memory_list memory_list_ospf[] =
197 {
198   { MTYPE_OSPF_TOP,           "OSPF top"                        },
199   { MTYPE_OSPF_AREA,          "OSPF area"                       },
200   { MTYPE_OSPF_AREA_RANGE,    "OSPF area range"                 },
201   { MTYPE_OSPF_NETWORK,       "OSPF network"                    },
202   { MTYPE_OSPF_NEIGHBOR_STATIC,"OSPF static nbr"                },
203   { MTYPE_OSPF_IF,            "OSPF interface"                  },
204   { MTYPE_OSPF_NEIGHBOR,      "OSPF neighbor"                   },
205   { MTYPE_OSPF_ROUTE,         "OSPF route"                      },
206   { MTYPE_OSPF_TMP,           "OSPF tmp mem"                    },
207   { MTYPE_OSPF_LSA,           "OSPF LSA"                        },
208   { MTYPE_OSPF_LSA_DATA,      "OSPF LSA data"                   },
209   { MTYPE_OSPF_LSDB,          "OSPF LSDB"                       },
210   { MTYPE_OSPF_PACKET,        "OSPF packet"                     },
211   { MTYPE_OSPF_FIFO,          "OSPF FIFO queue"                 },
212   { MTYPE_OSPF_VERTEX,        "OSPF vertex"                     },
213   { MTYPE_OSPF_VERTEX_PARENT, "OSPF vertex parent",             },
214   { MTYPE_OSPF_NEXTHOP,       "OSPF nexthop"                    },
215   { MTYPE_OSPF_PATH,          "OSPF path"                       },
216   { MTYPE_OSPF_VL_DATA,       "OSPF VL data"                    },
217   { MTYPE_OSPF_CRYPT_KEY,     "OSPF crypt key"                  },
218   { MTYPE_OSPF_EXTERNAL_INFO, "OSPF ext. info"                  },
219   { MTYPE_OSPF_DISTANCE,      "OSPF distance"                   },
220   { MTYPE_OSPF_IF_INFO,       "OSPF if info"                    },
221   { MTYPE_OSPF_IF_PARAMS,     "OSPF if params"                  },
222   { MTYPE_OSPF_MESSAGE,         "OSPF message"                  },
223   { MTYPE_OSPF_MPLS_TE,       "OSPF MPLS parameters"            },
224   { MTYPE_OSPF_PCE_PARAMS,    "OSPF PCE parameters"             },
225   { -1, NULL },
226 };
227
228 struct memory_list memory_list_ospf6[] =
229 {
230   { MTYPE_OSPF6_TOP,          "OSPF6 top"                       },
231   { MTYPE_OSPF6_AREA,         "OSPF6 area"                      },
232   { MTYPE_OSPF6_IF,           "OSPF6 interface"                 },
233   { MTYPE_OSPF6_NEIGHBOR,     "OSPF6 neighbor"                  },
234   { MTYPE_OSPF6_ROUTE,        "OSPF6 route"                     },
235   { MTYPE_OSPF6_PREFIX,       "OSPF6 prefix"                    },
236   { MTYPE_OSPF6_MESSAGE,      "OSPF6 message"                   },
237   { MTYPE_OSPF6_LSA,          "OSPF6 LSA"                       },
238   { MTYPE_OSPF6_LSA_SUMMARY,  "OSPF6 LSA summary"               },
239   { MTYPE_OSPF6_LSDB,         "OSPF6 LSA database"              },
240   { MTYPE_OSPF6_VERTEX,       "OSPF6 vertex"                    },
241   { MTYPE_OSPF6_SPFTREE,      "OSPF6 SPF tree"                  },
242   { MTYPE_OSPF6_NEXTHOP,      "OSPF6 nexthop"                   },
243   { MTYPE_OSPF6_EXTERNAL_INFO,"OSPF6 ext. info"                 },
244   { MTYPE_OSPF6_OTHER,        "OSPF6 other"                     },
245   { MTYPE_OSPF6_DISTANCE,     "OSPF6 distance"                  },
246   { -1, NULL },
247 };
248
249 struct memory_list memory_list_isis[] =
250 {
251   { MTYPE_ISIS,               "ISIS"                            },
252   { MTYPE_ISIS_TMP,           "ISIS TMP"                        },
253   { MTYPE_ISIS_CIRCUIT,       "ISIS circuit"                    },
254   { MTYPE_ISIS_LSP,           "ISIS LSP"                        },
255   { MTYPE_ISIS_ADJACENCY,     "ISIS adjacency"                  },
256   { MTYPE_ISIS_AREA,          "ISIS area"                       },
257   { MTYPE_ISIS_AREA_ADDR,     "ISIS area address"               },
258   { MTYPE_ISIS_TLV,           "ISIS TLV"                        },
259   { MTYPE_ISIS_DYNHN,         "ISIS dyn hostname"               },
260   { MTYPE_ISIS_SPFTREE,       "ISIS SPFtree"                    },
261   { MTYPE_ISIS_VERTEX,        "ISIS vertex"                     },
262   { MTYPE_ISIS_ROUTE_INFO,    "ISIS route info"                 },
263   { MTYPE_ISIS_NEXTHOP,       "ISIS nexthop"                    },
264   { MTYPE_ISIS_NEXTHOP6,      "ISIS nexthop6"                   },
265   { MTYPE_ISIS_DICT,          "ISIS dictionary"                 },
266   { MTYPE_ISIS_DICT_NODE,     "ISIS dictionary node"            },
267   { MTYPE_ISIS_MPLS_TE,       "ISIS MPLS_TE parameters"         },
268   { -1, NULL },
269 };
270
271 struct memory_list memory_list_pim[] =
272 {
273   { MTYPE_PIM_CHANNEL_OIL,       "PIM SSM (S,G) channel OIL"      },
274   { MTYPE_PIM_INTERFACE,         "PIM interface"                  },
275   { MTYPE_PIM_IGMP_JOIN,         "PIM interface IGMP static join" },
276   { MTYPE_PIM_IGMP_SOCKET,       "PIM interface IGMP socket"      },
277   { MTYPE_PIM_IGMP_GROUP,        "PIM interface IGMP group"       },
278   { MTYPE_PIM_IGMP_GROUP_SOURCE, "PIM interface IGMP source"      },
279   { MTYPE_PIM_NEIGHBOR,          "PIM interface neighbor"         },
280   { MTYPE_PIM_IFCHANNEL,         "PIM interface (S,G) state"      },
281   { MTYPE_PIM_UPSTREAM,          "PIM upstream (S,G) state"       },
282   { MTYPE_PIM_SSMPINGD,          "PIM sspimgd socket"             },
283   { MTYPE_PIM_STATIC_ROUTE,      "PIM Static Route"               },
284   { -1, NULL },
285 };
286
287 struct memory_list memory_list_nhrp[] =
288 {
289   { MTYPE_NHRP_IF,              "NHRP interface"                },
290   { MTYPE_NHRP_VC,              "NHRP virtual connection"       },
291   { MTYPE_NHRP_PEER,            "NHRP peer entry"               },
292   { MTYPE_NHRP_CACHE,           "NHRP cache entry"              },
293   { MTYPE_NHRP_NHS,             "NHRP next hop server"          },
294   { MTYPE_NHRP_REGISTRATION,    "NHRP registration entries"     },
295   { MTYPE_NHRP_SHORTCUT,        "NHRP shortcut"                 },
296   { MTYPE_NHRP_ROUTE,           "NHRP routing entry"            },
297   { -1, NULL }
298 };
299
300 struct memory_list memory_list_vtysh[] =
301 {
302   { MTYPE_VTYSH_CONFIG,         "Vtysh configuration",          },
303   { MTYPE_VTYSH_CONFIG_LINE,    "Vtysh configuration line"      },
304   { -1, NULL },
305 };
306
307 struct mlist mlists[] __attribute__ ((unused)) = {
308   { memory_list_lib,    "LIB"   },
309   { memory_list_zebra,  "ZEBRA" },
310   { memory_list_rip,    "RIP"   },
311   { memory_list_ripng,  "RIPNG" },
312   { memory_list_ospf,   "OSPF"  },
313   { memory_list_ospf6,  "OSPF6" },
314   { memory_list_isis,   "ISIS"  },
315   { memory_list_bgp,    "BGP"   },
316   { memory_list_pim,    "PIM"   },
317   { memory_list_nhrp,   "NHRP"  },
318   { NULL, NULL},
319 };