FD.io VPP
v21.10.1-2-g0a485f517
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_t
Definition:
ip6_ioam_e2e.h:35
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
ip6_ioam_seqno.h
ioam_e2e_data_t
struct ioam_e2e_data_t_ ioam_e2e_data_t
ioam_e2e_data_t_
Definition:
ip6_ioam_e2e.h:29
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
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:195
CLIB_PACKED
typedef CLIB_PACKED(struct { ip6_hop_by_hop_option_t hdr;ioam_e2e_packet_t e2e_hdr;}) ioam_e2e_option_t
ioam_e2e_data_t_::pad
u32 pad
Definition:
ip6_ioam_e2e.h:31
ioam_seqno_data_
Definition:
ioam_seqno_lib.h:46
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_main_t::vnet_main
vnet_main_t * vnet_main
Definition:
ip6_ioam_e2e.h:38
ioam_e2e_main_t::e2e_data
ioam_e2e_data_t * e2e_data
Definition:
ip6_ioam_e2e.h:36
data
u8 data[128]
Definition:
ipsec_types.api:95
HBH_OPTION_TYPE_IOAM_EDGE_TO_EDGE
#define HBH_OPTION_TYPE_IOAM_EDGE_TO_EDGE
Definition:
ip6_hop_by_hop_packet.h:46
vnet_main_t
Definition:
vnet.h:76
index
u32 index
Definition:
flow_types.api:221
u32
unsigned int u32
Definition:
types.h:88
vlib_main_t
Definition:
main.h:102
ioam_e2e_main
ioam_e2e_main_t ioam_e2e_main
Definition:
ip6_ioam_e2e.c:29
ioam_e2e_data_t_::flow_ctx
u32 flow_ctx
Definition:
ip6_ioam_e2e.h:30
e2e_util.h
src
plugins
ioam
encap
ip6_ioam_e2e.h
Generated on Sat Jan 8 2022 10:35:25 for FD.io VPP by
1.8.17