FD.io VPP  v19.01.1-17-ge106252
Vector Packet Processing
svs.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2018 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 /**
17  * Source VRF Selection matches against a packet's source address to set
18  * the VRF in which the subsequnet destination IP address lookup is done.
19  * If no match for the source address is found, then the RX interface's
20  * table/VRF is used.
21  */
22 #ifndef __SVS_H__
23 #define __SVS_H__
24 
25 #include <vnet/fib/fib_types.h>
26 
27 #define SVS_PLUGIN_VERSION_MAJOR 1
28 #define SVS_PLUGIN_VERSION_MINOR 0
29 
30 extern int svs_table_add (fib_protocol_t fproto, u32 table_id);
31 extern int svs_table_delete (fib_protocol_t fproto, u32 table_id);
32 
33 extern int svs_route_add (u32 table_id,
34  const fib_prefix_t * pfx, u32 source_table_id);
35 extern int svs_route_delete (u32 table_id, const fib_prefix_t * pfx);
36 
37 extern int svs_enable (fib_protocol_t fproto, u32 table_id, u32 sw_if_index);
38 extern int svs_disable (fib_protocol_t fproto, u32 table_id, u32 sw_if_index);
39 
40 typedef walk_rc_t (*svs_walk_fn_t) (fib_protocol_t fproto, u32 table_id,
41  u32 sw_if_index, void *ctx);
42 
43 extern void svs_walk (svs_walk_fn_t fn, void *ctx);
44 
45 /*
46  * fd.io coding-style-patch-verification: ON
47  *
48  * Local Variables:
49  * eval: (c-set-style "gnu")
50  * End:
51  */
52 
53 #endif
int svs_enable(fib_protocol_t fproto, u32 table_id, u32 sw_if_index)
Definition: svs.c:116
int svs_table_delete(fib_protocol_t fproto, u32 table_id)
Definition: svs.c:38
int svs_route_delete(u32 table_id, const fib_prefix_t *pfx)
Definition: svs.c:101
void svs_walk(svs_walk_fn_t fn, void *ctx)
Definition: svs.c:218
enum fib_protocol_t_ fib_protocol_t
Protocol Type.
enum walk_rc_t_ walk_rc_t
Walk return code.
u32 sw_if_index
Definition: vxlan_gbp.api:37
Aggregrate type for a prefix.
Definition: fib_types.h:203
unsigned int u32
Definition: types.h:88
int svs_table_add(fib_protocol_t fproto, u32 table_id)
Definition: svs.c:30
long ctx[MAX_CONNS]
Definition: main.c:144
walk_rc_t(* svs_walk_fn_t)(fib_protocol_t fproto, u32 table_id, u32 sw_if_index, void *ctx)
Definition: svs.h:40
int svs_route_add(u32 table_id, const fib_prefix_t *pfx, u32 source_table_id)
Definition: svs.c:80
int svs_disable(fib_protocol_t fproto, u32 table_id, u32 sw_if_index)
Definition: svs.c:193