| 98 | } |
| 99 | |
| 100 | struct rte_rib_node * |
| 101 | rte_rib_lookup(struct rte_rib *rib, uint32_t ip) |
| 102 | { |
| 103 | struct rte_rib_node *cur, *prev = NULL; |
| 104 | |
| 105 | if (unlikely(rib == NULL)) { |
| 106 | rte_errno = EINVAL; |
| 107 | return NULL; |
| 108 | } |
| 109 | |
| 110 | cur = rib->tree; |
| 111 | while ((cur != NULL) && is_covered(ip, cur->ip, cur->depth)) { |
| 112 | if (is_valid_node(cur)) |
| 113 | prev = cur; |
| 114 | cur = get_nxt_node(cur, ip); |
| 115 | } |
| 116 | return prev; |
| 117 | } |
| 118 | |
| 119 | struct rte_rib_node * |
| 120 | rte_rib_lookup_parent(struct rte_rib_node *ent) |