FD.io VPP  v21.06-3-gbb25fbf28
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 {
25  ioam_e2e_packet_t e2e_hdr;
26 }) ioam_e2e_option_t;
27 /* *INDENT-ON* */
28 
29 typedef struct ioam_e2e_data_t_ {
34 
35 typedef struct {
40 
42 
43 static inline ioam_seqno_data *
45 {
46  ioam_e2e_data_t *data = NULL;
47  u32 index;
48 
52  return &(data->seqno_data);
53 }
54 
55 static inline u32
57 {
58  ioam_seqno_data *data = NULL;
59 
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:92
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