FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
mdata.h
Go to the documentation of this file.
1
2
/*
3
* mdata.h - Buffer metadata change tracker
4
*
5
* Copyright (c) 2019 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
#ifndef __included_mdata_h__
19
#define __included_mdata_h__
20
21
#include <
vnet/vnet.h
>
22
23
#include <
vppinfra/hash.h
>
24
#include <
vppinfra/error.h
>
25
26
/** @file mdata.h
27
* buffer metadata change tracker definitions
28
*/
29
30
typedef
struct
31
{
32
/** Node index, ~0 means no data from this run */
33
u32
node_index
;
34
/** buffer metadata, cast to vlib_buffer_t as needed */
35
u8
mdata[128];
36
}
mdata_t
;
37
38
typedef
struct
39
{
40
/** API message ID base */
41
u16
msg_id_base
;
42
43
/** Per-thread buffer metadata before calling node fcn */
44
mdata_t
**
before_per_thread
;
45
46
/** Spinlock to protect modified metadata by node */
47
clib_spinlock_t
modify_lock
;
48
49
/** Modified metadata by node */
50
mdata_t
*
modifies
;
51
52
/* convenience */
53
vlib_main_t
*
vlib_main
;
54
vnet_main_t
*
vnet_main
;
55
}
mdata_main_t
;
56
57
extern
mdata_main_t
mdata_main
;
58
59
#endif
/* __included_mdata_h__ */
60
61
/*
62
* fd.io coding-style-patch-verification: ON
63
*
64
* Local Variables:
65
* eval: (c-set-style "gnu")
66
* End:
67
*/
mdata_main_t::msg_id_base
u16 msg_id_base
API message ID base.
Definition:
mdata.h:41
mdata_main_t::vlib_main
vlib_main_t * vlib_main
Definition:
mdata.h:53
mdata_main_t::modify_lock
clib_spinlock_t modify_lock
Spinlock to protect modified metadata by node.
Definition:
mdata.h:47
u16
unsigned short u16
Definition:
types.h:57
mdata_main_t
Definition:
mdata.h:38
mdata_t
Definition:
mdata.h:30
error.h
mdata_main_t::vnet_main
vnet_main_t * vnet_main
Definition:
mdata.h:54
clib_spinlock_s
Definition:
lock.h:51
mdata_main_t::before_per_thread
mdata_t ** before_per_thread
Per-thread buffer metadata before calling node fcn.
Definition:
mdata.h:44
vnet_main_t
Definition:
vnet.h:76
u32
unsigned int u32
Definition:
types.h:88
mdata_t::node_index
u32 node_index
Node index, ~0 means no data from this run.
Definition:
mdata.h:33
vlib_main_t
Definition:
main.h:102
hash.h
u8
unsigned char u8
Definition:
types.h:56
mdata_main_t::modifies
mdata_t * modifies
Modified metadata by node.
Definition:
mdata.h:50
mdata_main
mdata_main_t mdata_main
Definition:
mdata.c:34
vnet.h
src
plugins
mdata
mdata.h
Generated on Sat Jan 8 2022 10:04:09 for FD.io VPP by
1.8.17