FD.io VPP  v19.04.4-rc0-5-ge88582fac
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 {
47  u32 index;
48 
49  index = get_flow_data_from_flow_ctx(flow_ctx,
51  data = &ioam_e2e_main.e2e_data[index];
52  return &(data->seqno_data);
53 }
54 
55 static inline u32
57 {
59 
61  return data->seq_num;
62 }
63 
64 #endif /* __included_ioam_e2e_h__ */
ioam_e2e_main_t ioam_e2e_main
Definition: ip6_ioam_e2e.c:30
typedef CLIB_PACKED(struct { ip6_hop_by_hop_option_t hdr;ioam_e2e_packet_t e2e_hdr;}) ioam_e2e_option_t
#define NULL
Definition: clib.h:58
static ioam_seqno_data * ioam_e2ec_get_seqno_data_from_flow_ctx(u32 flow_ctx)
Definition: ip6_ioam_e2e.h:44
u8 data[128]
Definition: ipsec.api:248
static u32 ioam_e2e_get_cur_seqno_from_flow_ctx(u32 flow_ctx)
Definition: ip6_ioam_e2e.h:56
#define HBH_OPTION_TYPE_IOAM_EDGE_TO_EDGE
vnet_main_t * vnet_main
Definition: ip6_ioam_e2e.h:38
unsigned int u32
Definition: types.h:88
static u32 get_flow_data_from_flow_ctx(u32 flow_ctx, u8 option)
vlib_main_t * vlib_main
Definition: ip6_ioam_e2e.h:37
ioam_seqno_data seqno_data
Definition: ip6_ioam_e2e.h:32
struct ioam_e2e_data_t_ ioam_e2e_data_t
ioam_e2e_data_t * e2e_data
Definition: ip6_ioam_e2e.h:36