LCOV - code coverage report
Current view: top level - plugins/ioam/encap - ip6_ioam_e2e.h (source / functions) Hit Total Coverage
Test: coverage-filtered.info Lines: 0 5 0.0 %
Date: 2023-10-26 01:39:38 Functions: 0 1 0.0 %

          Line data    Source code
       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           0 : ioam_e2ec_get_seqno_data_from_flow_ctx (u32 flow_ctx)
      45             : {
      46           0 :   ioam_e2e_data_t *data = NULL;
      47             :   u32 index;
      48             : 
      49           0 :   index =  get_flow_data_from_flow_ctx(flow_ctx,
      50             :                                        HBH_OPTION_TYPE_IOAM_EDGE_TO_EDGE);
      51           0 :   data = &ioam_e2e_main.e2e_data[index];
      52           0 :   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__ */

Generated by: LCOV version 1.14