FD.io VPP
v18.01.2-1-g9b554f3
Vector Packet Processing
Main Page
Related Pages
Modules
Namespaces
Data Structures
Source
Files
Symbols
tap.h
Go to the documentation of this file.
1
/*
2
*------------------------------------------------------------------
3
* Copyright (c) 2017 Cisco and/or its affiliates.
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at:
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*------------------------------------------------------------------
16
*/
17
18
#ifndef _VNET_DEVICES_VIRTIO_TAP_H_
19
#define _VNET_DEVICES_VIRTIO_TAP_H_
20
21
#ifndef MIN
22
#define MIN(x,y) (((x)<(y))?(x):(y))
23
#endif
24
25
typedef
struct
26
{
27
u32
id
;
28
u8
mac_addr_set
;
29
u8
mac_addr[6];
30
u16
rx_ring_sz
;
31
u16
tx_ring_sz
;
32
u8
*
host_namespace
;
33
u8
*
host_if_name
;
34
u8
host_mac_addr[6];
35
u8
*
host_bridge
;
36
ip4_address_t
host_ip4_addr
;
37
u8
host_ip4_prefix_len
;
38
ip6_address_t
host_ip6_addr
;
39
u8
host_ip6_prefix_len
;
40
/* return */
41
u32
sw_if_index
;
42
int
rv
;
43
clib_error_t
*
error
;
44
}
tap_create_if_args_t
;
45
46
/** TAP interface details struct */
47
typedef
struct
48
{
49
u32
id
;
50
u32
sw_if_index
;
51
u8
dev_name[64];
52
u16
tx_ring_sz
;
53
u16
rx_ring_sz
;
54
u8
host_mac_addr[6];
55
u8
host_if_name[64];
56
u8
host_namespace[64];
57
u8
host_bridge[64];
58
u8
host_ip4_addr[4];
59
u8
host_ip4_prefix_len
;
60
u8
host_ip6_addr[16];
61
u8
host_ip6_prefix_len
;
62
}
tap_interface_details_t
;
63
64
typedef
struct
65
{
66
u32
last_used_interface_id
;
67
uword
*
dev_instance_by_interface_id
;
68
}
tap_main_t
;
69
70
void
tap_create_if
(
vlib_main_t
*
vm
,
tap_create_if_args_t
* args);
71
int
tap_delete_if
(
vlib_main_t
*
vm
,
u32
sw_if_index);
72
int
tap_dump_ifs
(
tap_interface_details_t
** out_tapids);
73
74
#endif
/* _VNET_DEVICES_VIRTIO_TAP_H_ */
75
76
/*
77
* fd.io coding-style-patch-verification: ON
78
*
79
* Local Variables:
80
* eval: (c-set-style "gnu")
81
* End:
82
*/
tap_create_if_args_t::host_ip4_addr
ip4_address_t host_ip4_addr
Definition:
tap.h:36
tap_interface_details_t::host_ip6_prefix_len
u8 host_ip6_prefix_len
Definition:
tap.h:61
tap_create_if_args_t::rx_ring_sz
u16 rx_ring_sz
Definition:
tap.h:30
tap_create_if_args_t::host_ip6_prefix_len
u8 host_ip6_prefix_len
Definition:
tap.h:39
tap_create_if
void tap_create_if(vlib_main_t *vm, tap_create_if_args_t *args)
Definition:
tap.c:80
tap_interface_details_t::host_ip4_prefix_len
u8 host_ip4_prefix_len
Definition:
tap.h:59
tap_delete_if
int tap_delete_if(vlib_main_t *vm, u32 sw_if_index)
Definition:
tap.c:408
tap_main_t::last_used_interface_id
u32 last_used_interface_id
Definition:
tap.h:66
tap_create_if_args_t::sw_if_index
u32 sw_if_index
Definition:
tap.h:41
ip4_address_t
Definition:
ip4_packet.h:49
tap_dump_ifs
int tap_dump_ifs(tap_interface_details_t **out_tapids)
Definition:
tap.c:448
tap_create_if_args_t::tx_ring_sz
u16 tx_ring_sz
Definition:
tap.h:31
tap_create_if_args_t::rv
int rv
Definition:
tap.h:42
tap_create_if_args_t::mac_addr_set
u8 mac_addr_set
Definition:
tap.h:28
tap_create_if_args_t::host_ip6_addr
ip6_address_t host_ip6_addr
Definition:
tap.h:38
tap_create_if_args_t::host_ip4_prefix_len
u8 host_ip4_prefix_len
Definition:
tap.h:37
vm
vlib_main_t * vm
Definition:
buffer.c:283
tap_create_if_args_t::host_bridge
u8 * host_bridge
Definition:
tap.h:35
u32
unsigned int u32
Definition:
types.h:88
tap_create_if_args_t::host_if_name
u8 * host_if_name
Definition:
tap.h:33
tap_interface_details_t::id
u32 id
Definition:
tap.h:49
uword
u64 uword
Definition:
types.h:112
clib_error_t
Definition:
clib_error.h:21
u16
unsigned short u16
Definition:
types.h:57
u8
unsigned char u8
Definition:
types.h:56
vlib_main_t
Definition:
main.h:59
tap_main_t
Definition:
tap.h:64
tap_create_if_args_t::error
clib_error_t * error
Definition:
tap.h:43
tap_interface_details_t
TAP interface details struct.
Definition:
tap.h:47
tap_interface_details_t::tx_ring_sz
u16 tx_ring_sz
Definition:
tap.h:52
tap_interface_details_t::rx_ring_sz
u16 rx_ring_sz
Definition:
tap.h:53
tap_create_if_args_t::host_namespace
u8 * host_namespace
Definition:
tap.h:32
tap_create_if_args_t::id
u32 id
Definition:
tap.h:27
tap_interface_details_t::sw_if_index
u32 sw_if_index
Definition:
tap.h:50
tap_create_if_args_t
Definition:
tap.h:25
tap_main_t::dev_instance_by_interface_id
uword * dev_instance_by_interface_id
Definition:
tap.h:67
ip6_address_t
Definition:
ip6_packet.h:46
src
vnet
devices
tap
tap.h
Generated on Wed Sep 5 2018 06:02:29 for FD.io VPP by
1.8.11