FD.io VPP  v18.10-34-gcce845e
Vector Packet Processing
fib_api.h
Go to the documentation of this file.
1 /*
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:
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
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.
14  */
15 
16 #ifndef __FIB_API_H__
17 #define __FIB_API_H__
18 
19 #include <vnet/fib/fib_types.h>
20 
21 int
23  u32 table_id,
24  u32 next_hop_sw_if_index,
25  dpo_proto_t next_hop_table_proto,
26  u32 next_hop_table_id,
27  u8 is_rpf_id,
28  u32 * fib_index, u32 * next_hop_fib_index);
29 
30 int
31 add_del_route_t_handler (u8 is_multipath,
32  u8 is_add,
33  u8 is_drop,
34  u8 is_unreach,
35  u8 is_prohibit,
36  u8 is_local,
37  u8 is_multicast,
38  u8 is_classify,
39  u32 classify_table_index,
40  u8 is_resolve_host,
41  u8 is_resolve_attached,
42  u8 is_interface_rx,
43  u8 is_rpf_id,
44  u8 is_dvr,
45  u8 is_source_lookup,
46  u8 is_udp_encap,
47  u32 fib_index,
48  const fib_prefix_t * prefix,
49  dpo_proto_t next_hop_proto,
50  const ip46_address_t * next_hop,
51  u32 next_hop_id,
52  u32 next_hop_sw_if_index,
53  u8 next_hop_fib_index,
54  u16 next_hop_weight,
55  u16 next_hop_preference,
56  mpls_label_t next_hop_via_label,
57  fib_mpls_label_t * next_hop_out_label_stack);
58 
59 struct _vl_api_fib_path;
60 
61 extern void fib_api_path_encode (const fib_route_path_encode_t * api_rpath,
62  struct _vl_api_fib_path *out);
63 
64 void
66  u8 address[16],
67  u8 *length,
68  u8 *is_ip6);
69 
70 
71 struct _vl_api_fib_path;
72 
73 extern int fib_path_api_parse(const struct _vl_api_fib_path *in,
74  fib_route_path_t *out);
75 
78 
79 #endif /* __FIB_API_H__ */
typedef address
Definition: ip_types.api:35
void fib_prefix_to_api(const fib_prefix_t *pfx, u8 address[16], u8 *length, u8 *is_ip6)
Definition: fib_api.c:172
A representation of a fib path for fib_path_encode to convey the information to the caller...
Definition: fib_types.h:584
A representation of a path as described by a route producer.
Definition: fib_types.h:470
fib_protocol_t fib_proto_from_api_address_family(int af)
Definition: fib_api.c:280
u32 mpls_label_t
A label value only, i.e.
Definition: packet.h:24
unsigned char u8
Definition: types.h:56
enum fib_protocol_t_ fib_protocol_t
Protocol Type.
Aggregrate type for a prefix.
Definition: fib_types.h:203
unsigned int u32
Definition: types.h:88
enum dpo_proto_t_ dpo_proto_t
Data path protocol.
unsigned short u16
Definition: types.h:57
Configuration for each label value in the output-stack.
Definition: fib_types.h:425
int add_del_route_check(fib_protocol_t table_proto, u32 table_id, u32 next_hop_sw_if_index, dpo_proto_t next_hop_table_proto, u32 next_hop_table_id, u8 is_rpf_id, u32 *fib_index, u32 *next_hop_fib_index)
Definition: ip_api.c:924
void fib_api_path_encode(const fib_route_path_encode_t *api_rpath, struct _vl_api_fib_path *out)
int fib_proto_to_api_address_family(fib_protocol_t fproto)
Definition: fib_api.c:295
int fib_path_api_parse(const struct _vl_api_fib_path *in, fib_route_path_t *out)
typedef prefix
Definition: ip_types.api:40
int add_del_route_t_handler(u8 is_multipath, u8 is_add, u8 is_drop, u8 is_unreach, u8 is_prohibit, u8 is_local, u8 is_multicast, u8 is_classify, u32 classify_table_index, u8 is_resolve_host, u8 is_resolve_attached, u8 is_interface_rx, u8 is_rpf_id, u8 is_dvr, u8 is_source_lookup, u8 is_udp_encap, u32 fib_index, const fib_prefix_t *prefix, dpo_proto_t next_hop_proto, const ip46_address_t *next_hop, u32 next_hop_id, u32 next_hop_sw_if_index, u8 next_hop_fib_index, u16 next_hop_weight, u16 next_hop_preference, mpls_label_t next_hop_via_label, fib_mpls_label_t *next_hop_out_label_stack)
Definition: ip_api.c:754