@@ -397,15 +397,6 @@ int lrtr_ipv6_addr_to_str(const struct lrtr_ipv6_addr *ip_addr, char *b, const u
397397*/
398398int lrtr_ipv6_str_to_addr(const char *a, struct lrtr_ipv6_addr *ip);
399399
400- /**
401- * @ingroup util_h[{
402- * Converts the passed IPv6 address first_bit network byte order to host byte order.
403- * @param[in] src Pointer to a uint32_t array storing a ipv6 address in network byte order.
404- * @param[out] dest Pointer a uint32_t array that will be used to store the ipv6 addr in host byte order.
405- * }
406- */
407- void lrtr_ipv6_addr_to_host_byte_order(const uint32_t *src, uint32_t *dest);
408-
409400
410401
411402/**
@@ -1155,133 +1146,6 @@ void rtr_mgr_for_each_ipv6_record(struct rtr_mgr_config *config,
11551146 pfx_for_each_fp fp,
11561147 void *data);
11571148
1158- /* @} */
1159- /*
1160- * This file is part of RTRlib.
1161- *
1162- * This file is subject to the terms and conditions of the MIT license.
1163- * See the file LICENSE in the top level directory for more details.
1164- *
1165- * Website: http://rtrlib.realmv6.org/
1166- */
1167-
1168- /**
1169- * @defgroup mod_lpfst_pfx_h Longest prefix first search tree
1170- * @ingroup mod_pfx_h
1171- * @brief An implementation of a \ref mod_pfx_h "pfx_table" data structure
1172- * using longest prefix first trees (lpfst) for storing @ref pfx_record "pfx_records".
1173- * @details This implementation uses two separate lpfs-trees, one for IPv4
1174- * validation records and one for IPv6 records.\n
1175- * See \ref mod_pfx_h "pfx_table" for a list of supported operations of
1176- * this data structure.\n
1177- * For general details about the data structure see: <a
1178- * href="http://dx.doi.org/10.1016/j.comnet.2007.01.023">Wuu et al. "A
1179- * longest prefix first search tree for IP lookup", Computer Networks,
1180- * 51(12), pp. 3354-3367, 2007</a>.
1181- *
1182- * @{
1183- */
1184-
1185-
1186- /*
1187- * This file is part of RTRlib.
1188- *
1189- * This file is subject to the terms and conditions of the MIT license.
1190- * See the file LICENSE in the top level directory for more details.
1191- *
1192- * Website: http://rtrlib.realmv6.org/
1193- */
1194-
1195-
1196-
1197- /**
1198- * @brief lpfst_node
1199- * @param prefix
1200- * @param rchild
1201- * @param lchild
1202- * @param parent
1203- * @param data
1204- * @param len number of elements in data array
1205- */
1206- struct lpfst_node {
1207- struct lrtr_ip_addr prefix;
1208- struct lpfst_node *rchild;
1209- struct lpfst_node *lchild;
1210- struct lpfst_node *parent;
1211- void *data;
1212- uint8_t len;
1213- };
1214-
1215- /**
1216- * @brief Inserts new_node in the tree.
1217- * @param[in] root Root node of the tree for the inserting process.
1218- * @param[in] new_node Node that will be inserted.
1219- * @param[in] level Level of the the root node in the tree.
1220- */
1221- void lpfst_insert(struct lpfst_node *root, struct lpfst_node *new_node,
1222- const unsigned int level);
1223-
1224- /**
1225- * @brief Searches for the node with the longest prefix, matching the passed ip
1226- * prefix and prefix length.
1227- * @param[in] root_node Node were the lookup process starts.
1228- * @param[in] lrtr_ip_addr IP-Prefix.
1229- * @param[in] mask_len Length of the network mask of the prefix.
1230- * @param[in,out] level of the the node root in the tree. Is set to the level of
1231- * the node that is returned.
1232- * @returns The lpfst_node with the longest prefix in the tree matching the
1233- * passed ip prefix and prefix length.
1234- * @returns NULL if no node that matches the passed prefix and prefix length
1235- * could be found.
1236- */
1237- struct lpfst_node *lpfst_lookup(const struct lpfst_node *root_node,
1238- const struct lrtr_ip_addr *prefix,
1239- const uint8_t mask_len, unsigned int *level);
1240-
1241- /**
1242- * @brief Search for a node with the same prefix and prefix length.
1243- * @param[in] root_node Node were the lookup process starts.
1244- * @param[in] lrtr_ip_addr IP-Prefix.
1245- * @param[in] mask_len Length of the network mask of the prefix.
1246- * @param[in,out] level of the the node root in the tree. Is set to the level of
1247- * the node that is returned.
1248- * @param[in] found Is true if a node which matches could be found else found is
1249- * set to false.
1250- * @return A node which matches the passed parameter (found==true).
1251- * @return The parent of the node where the lookup operation
1252- * stopped (found==false).
1253- * @return NULL if root_node is NULL.
1254- */
1255- struct lpfst_node *lpfst_lookup_exact(struct lpfst_node *root_node,
1256- const struct lrtr_ip_addr *prefix,
1257- const uint8_t mask_len,
1258- unsigned int *level, bool *found);
1259-
1260- /**
1261- * @brief Removes the node with the passed IP prefix and mask_len from the tree.
1262- * @param[in] root Node were the inserting process starts.
1263- * @param[in] prefix Prefix that will removed from the tree.
1264- * @param[in] mask_len Length of the network mask of the prefix.
1265- * @param[in] level Level of the root node in the tree.
1266- * @returns Node that was removed from the tree. The caller has to free it.
1267- * @returns NULL If the Prefix could'nt be found in the tree.
1268- */
1269- struct lpfst_node *lpfst_remove(struct lpfst_node *root_node,
1270- const struct lrtr_ip_addr *prefix,
1271- const uint8_t mask_len,
1272- const unsigned int level);
1273-
1274- /**
1275- * @brief Detects if a node is a leaf in the tree.
1276- * @param[in] node
1277- * @returns true if node is a leaf.
1278- * @returns false if node isn't a leaf.
1279- */
1280- bool lpfst_is_leaf(const struct lpfst_node *node);
1281-
1282- int lpfst_get_children(const struct lpfst_node *root_node,
1283- struct lpfst_node ***array, unsigned int *len);
1284-
12851149/**
12861150 * @brief pfx_table.
12871151 * @param ipv4
@@ -1290,24 +1154,9 @@ int lpfst_get_children(const struct lpfst_node *root_node,
12901154 * @param lock
12911155 */
12921156struct pfx_table {
1293- struct lpfst_node *ipv4;
1294- struct lpfst_node *ipv6;
1295- pfx_update_fp update_fp;
12961157 ...;
12971158};
12981159
1299- /* @} */
1300- /*
1301- * This file is part of RTRlib.
1302- *
1303- * This file is subject to the terms and conditions of the MIT license.
1304- * See the file LICENSE in the top level directory for more details.
1305- *
1306- * Website: http://rtrlib.realmv6.org/
1307- */
1308-
1309-
1310-
13111160/**
13121161 * @brief Returns the current time of the CLOCK_MONOTONIC clock.
13131162 * @param[in] seconds Time in seconds since some unspecified starting point.
0 commit comments