2 * Copyright (c) 2016 Cisco and/or its affiliates.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at:
7 * http://www.apache.org/licenses/LICENSE-2.0
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
17 * Neighbour Adjacency sub-type. These adjs represent an L3 peer on a
24 #include <vnet/vnet.h>
25 #include <vnet/adj/adj_types.h>
26 #include <vnet/fib/fib_node.h>
27 #include <vnet/dpo/dpo.h>
31 * Add (and lock) a new or lock an existing neighbour adjacency
34 * The protocol for the next-hop address (v4 or v6)
37 * A description of the protocol of the packets that will forward
38 * through this adj. On an ethernet interface this is the MAC header's
42 * The address of the next-hop/peer to send the packet to
45 * The interface on which the peer resides
47 extern adj_index_t adj_nbr_add_or_lock(fib_protocol_t nh_proto,
49 const ip46_address_t *nh_addr,
54 * Add (and lock) a new or lock an existing neighbour adjacency
57 * The protocol for the next-hop address (v4 or v6)
60 * A description of the protocol of the packets that will forward
61 * through this adj. On an ethernet interface this is the MAC header's
65 * The address of the next-hop/peer to send the packet to
68 * The interface on which the peer resides
71 * The rewrite to prepend to packets
73 extern adj_index_t adj_nbr_add_or_lock_w_rewrite(fib_protocol_t nh_proto,
75 const ip46_address_t *nh_addr,
81 * Update the rewrite string for an existing adjacecny.
84 * The index of the adj to update
89 extern void adj_nbr_update_rewrite(adj_index_t adj_index,
94 * Format aa incomplete neigbour (ARP) adjacency
96 extern u8* format_adj_nbr_incomplete(u8* s, va_list *ap);
100 * Format a neigbour (REWRITE) adjacency
102 extern u8* format_adj_nbr(u8* s, va_list *ap);
106 * Module initialisation
108 extern void adj_nbr_module_init(void);
112 * Return the size of the adjacency database. for testing purposes
114 extern u32 adj_nbr_db_size(void);