FD.io VPP
v19.01.3-6-g70449b9b9
Vector Packet Processing
ip6_ioam_e2e.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 __included_ip6_ioam_e2e_h__
17
#define __included_ip6_ioam_e2e_h__
18
19
#include <
ioam/lib-e2e/e2e_util.h
>
20
#include "
ip6_ioam_seqno.h
"
21
22
/* *INDENT-OFF* */
23
typedef
CLIB_PACKED
(
struct
{
24
ip6_hop_by_hop_option_t
hdr;
25
ioam_e2e_packet_t e2e_hdr;
26
}) ioam_e2e_option_t;
27
/* *INDENT-ON* */
28
29
typedef
struct
ioam_e2e_data_t_
{
30
u32
flow_ctx
;
31
u32
pad
;
32
ioam_seqno_data
seqno_data
;
33
}
ioam_e2e_data_t
;
34
35
typedef
struct
{
36
ioam_e2e_data_t
*
e2e_data
;
37
vlib_main_t
*
vlib_main
;
38
vnet_main_t
*
vnet_main
;
39
}
ioam_e2e_main_t
;
40
41
extern
ioam_e2e_main_t
ioam_e2e_main
;
42
43
static
inline
ioam_seqno_data
*
44
ioam_e2ec_get_seqno_data_from_flow_ctx
(
u32
flow_ctx
)
45
{
46
ioam_e2e_data_t
*data =
NULL
;
47
u32
index;
48
49
index =
get_flow_data_from_flow_ctx
(flow_ctx,
50
HBH_OPTION_TYPE_IOAM_EDGE_TO_EDGE
);
51
data = &ioam_e2e_main.
e2e_data
[index];
52
return
&(data->
seqno_data
);
53
}
54
55
static
inline
u32
56
ioam_e2e_get_cur_seqno_from_flow_ctx
(
u32
flow_ctx
)
57
{
58
ioam_seqno_data
*data =
NULL
;
59
60
data =
ioam_e2ec_get_seqno_data_from_flow_ctx
(flow_ctx);
61
return
data->
seq_num
;
62
}
63
64
#endif
/* __included_ioam_e2e_h__ */
ioam_e2e_main
ioam_e2e_main_t ioam_e2e_main
Definition:
ip6_ioam_e2e.c:30
CLIB_PACKED
typedef CLIB_PACKED(struct { ip6_hop_by_hop_option_t hdr;ioam_e2e_packet_t e2e_hdr;}) ioam_e2e_option_t
NULL
#define NULL
Definition:
clib.h:58
ioam_e2ec_get_seqno_data_from_flow_ctx
static ioam_seqno_data * ioam_e2ec_get_seqno_data_from_flow_ctx(u32 flow_ctx)
Definition:
ip6_ioam_e2e.h:44
ioam_e2e_get_cur_seqno_from_flow_ctx
static u32 ioam_e2e_get_cur_seqno_from_flow_ctx(u32 flow_ctx)
Definition:
ip6_ioam_e2e.h:56
HBH_OPTION_TYPE_IOAM_EDGE_TO_EDGE
#define HBH_OPTION_TYPE_IOAM_EDGE_TO_EDGE
Definition:
ip6_hop_by_hop_packet.h:46
ioam_e2e_data_t_
Definition:
ip6_ioam_e2e.h:29
ioam_e2e_main_t::vnet_main
vnet_main_t * vnet_main
Definition:
ip6_ioam_e2e.h:38
u32
unsigned int u32
Definition:
types.h:88
e2e_util.h
get_flow_data_from_flow_ctx
static u32 get_flow_data_from_flow_ctx(u32 flow_ctx, u8 option)
Definition:
ip6_hop_by_hop.h:188
ioam_e2e_main_t
Definition:
ip6_ioam_e2e.h:35
ip6_ioam_seqno.h
ioam_seqno_data_::seq_num
u32 seq_num
Definition:
ioam_seqno_lib.h:50
ioam_e2e_main_t::vlib_main
vlib_main_t * vlib_main
Definition:
ip6_ioam_e2e.h:37
ioam_e2e_data_t_::seqno_data
ioam_seqno_data seqno_data
Definition:
ip6_ioam_e2e.h:32
ip6_hop_by_hop_option_t
Definition:
ip6_hop_by_hop_packet.h:29
ioam_e2e_data_t_::pad
u32 pad
Definition:
ip6_ioam_e2e.h:31
vnet_main_t
Definition:
vnet.h:51
ioam_e2e_data_t_::flow_ctx
u32 flow_ctx
Definition:
ip6_ioam_e2e.h:30
ioam_seqno_data_
Definition:
ioam_seqno_lib.h:46
ioam_e2e_data_t
struct ioam_e2e_data_t_ ioam_e2e_data_t
vlib_main_t
Definition:
main.h:61
ioam_e2e_main_t::e2e_data
ioam_e2e_data_t * e2e_data
Definition:
ip6_ioam_e2e.h:36
src
plugins
ioam
encap
ip6_ioam_e2e.h
Generated on Sun Dec 8 2019 18:02:03 for FD.io VPP by
1.8.13