FD.io VPP
v17.04.2-2-ga8f93f8
Vector Packet Processing
Main Page
Related Pages
Data Structures
Source
Files
Symbols
FD.io VPP
Vector Packet Processing
Release Notes
Debug CLI
Startup Configuration
Todo List
Node Identifiers
Data Structures
Source
Files
Symbols
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
af_packet.h
Go to the documentation of this file.
1
/*
2
*------------------------------------------------------------------
3
* af_packet.h - linux kernel packet interface header file
4
*
5
* Copyright (c) 2016 Cisco and/or its affiliates.
6
* Licensed under the Apache License, Version 2.0 (the "License");
7
* you may not use this file except in compliance with the License.
8
* You may obtain a copy of the License at:
9
*
10
* http://www.apache.org/licenses/LICENSE-2.0
11
*
12
* Unless required by applicable law or agreed to in writing, software
13
* distributed under the License is distributed on an "AS IS" BASIS,
14
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
17
*------------------------------------------------------------------
18
*/
19
20
typedef
struct
21
{
22
CLIB_CACHE_LINE_ALIGN_MARK
(cacheline0);
23
volatile
u32
*
lockp
;
24
u8
*
host_if_name
;
25
int
fd
;
26
struct
tpacket_req *
rx_req
;
27
struct
tpacket_req *
tx_req
;
28
u8
*
rx_ring
;
29
u8
*
tx_ring
;
30
u32
hw_if_index
;
31
u32
sw_if_index
;
32
u32
unix_file_index
;
33
34
u32
next_rx_frame
;
35
u32
next_tx_frame
;
36
37
u32
per_interface_next_index
;
38
u8
is_admin_up
;
39
}
af_packet_if_t
;
40
41
typedef
struct
42
{
43
CLIB_CACHE_LINE_ALIGN_MARK
(cacheline0);
44
af_packet_if_t
*
interfaces
;
45
46
/* bitmap of pending rx interfaces */
47
uword
*
pending_input_bitmap
;
48
49
/* rx buffer cache */
50
u32
**
rx_buffers
;
51
52
/* hash of host interface names */
53
mhash_t
if_index_by_host_if_name
;
54
}
af_packet_main_t
;
55
56
af_packet_main_t
af_packet_main
;
57
extern
vnet_device_class_t
af_packet_device_class
;
58
extern
vlib_node_registration_t
af_packet_input_node
;
59
60
int
af_packet_create_if
(
vlib_main_t
*
vm
,
u8
* host_if_name,
61
u8
* hw_addr_set,
u32
* sw_if_index);
62
int
af_packet_delete_if
(
vlib_main_t
*
vm
,
u8
* host_if_name);
63
64
/*
65
* fd.io coding-style-patch-verification: ON
66
*
67
* Local Variables:
68
* eval: (c-set-style "gnu")
69
* End:
70
*/
af_packet_main_t::rx_buffers
u32 ** rx_buffers
Definition:
af_packet.h:50
mhash_t
Definition:
mhash.h:46
af_packet_delete_if
int af_packet_delete_if(vlib_main_t *vm, u8 *host_if_name)
Definition:
af_packet.c:299
CLIB_CACHE_LINE_ALIGN_MARK
#define CLIB_CACHE_LINE_ALIGN_MARK(mark)
Definition:
cache.h:68
af_packet_create_if
int af_packet_create_if(vlib_main_t *vm, u8 *host_if_name, u8 *hw_addr_set, u32 *sw_if_index)
Definition:
af_packet.c:176
af_packet_main_t::pending_input_bitmap
uword * pending_input_bitmap
Definition:
af_packet.h:47
af_packet_if_t::tx_req
struct tpacket_req * tx_req
Definition:
af_packet.h:27
af_packet_if_t
Definition:
af_packet.h:20
af_packet_if_t::unix_file_index
u32 unix_file_index
Definition:
af_packet.h:32
vlib_node_registration_t
struct _vlib_node_registration vlib_node_registration_t
af_packet_if_t::rx_req
struct tpacket_req * rx_req
Definition:
af_packet.h:26
vnet_device_class_t
struct _vnet_device_class vnet_device_class_t
af_packet_if_t::host_if_name
u8 * host_if_name
Definition:
af_packet.h:24
af_packet_main_t::interfaces
af_packet_if_t * interfaces
Definition:
af_packet.h:44
af_packet_if_t::next_rx_frame
u32 next_rx_frame
Definition:
af_packet.h:34
af_packet_if_t::is_admin_up
u8 is_admin_up
Definition:
af_packet.h:38
af_packet_if_t::tx_ring
u8 * tx_ring
Definition:
af_packet.h:29
af_packet_if_t::next_tx_frame
u32 next_tx_frame
Definition:
af_packet.h:35
vm
vlib_main_t * vm
Definition:
buffer.c:276
af_packet_if_t::per_interface_next_index
u32 per_interface_next_index
Definition:
af_packet.h:37
af_packet_input_node
vlib_node_registration_t af_packet_input_node
(constructor) VLIB_REGISTER_NODE (af_packet_input_node)
Definition:
node.c:266
af_packet_if_t::sw_if_index
u32 sw_if_index
Definition:
af_packet.h:31
u32
unsigned int u32
Definition:
types.h:88
af_packet_main
af_packet_main_t af_packet_main
Definition:
af_packet.h:56
af_packet_main_t
Definition:
af_packet.h:41
af_packet_main_t::if_index_by_host_if_name
mhash_t if_index_by_host_if_name
Definition:
af_packet.h:53
af_packet_device_class
vnet_device_class_t af_packet_device_class
uword
u64 uword
Definition:
types.h:112
u8
unsigned char u8
Definition:
types.h:56
vlib_main_t
Definition:
main.h:59
af_packet_if_t::fd
int fd
Definition:
af_packet.h:25
af_packet_if_t::rx_ring
u8 * rx_ring
Definition:
af_packet.h:28
af_packet_if_t::lockp
volatile u32 * lockp
Definition:
af_packet.h:23
af_packet_if_t::hw_if_index
u32 hw_if_index
Definition:
af_packet.h:30
src
vnet
devices
af_packet
af_packet.h
Generated on Sat Jul 1 2017 12:01:56 for FD.io VPP by
1.8.11