summaryrefslogtreecommitdiffstats
path: root/plugins/ioam-plugin/ioam/lib-trace/trace_util.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/ioam-plugin/ioam/lib-trace/trace_util.h')
-rw-r--r--plugins/ioam-plugin/ioam/lib-trace/trace_util.h247
1 files changed, 0 insertions, 247 deletions
diff --git a/plugins/ioam-plugin/ioam/lib-trace/trace_util.h b/plugins/ioam-plugin/ioam/lib-trace/trace_util.h
deleted file mode 100644
index 556f07ee3f1..00000000000
--- a/plugins/ioam-plugin/ioam/lib-trace/trace_util.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * trace_util.h -- Trace Profile Utility header
- *
- * Copyright (c) 2016 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef include_vnet_trace_util_h
-#define include_vnet_trace_util_h
-
-#define debug_ioam debug_ioam_fn
-
-
-/**
- * Usage:
- *
- * On any node that participates in iOAM Trace.
- *
- * Step 1: Initialize this library by calling trace_init()
- * Step 2: Setup a trace profile that contains all the parameters needed to compute cumulative:
- * Call these functions:
- * trace_profile_find
- * trace_profile_create
- * Step 2a: On initial node enable the profile to be used:
- * trace_profile_set_active / trace_profile_get_active will return the profile
- * Step 4: TBD
- * trace_validate
- *
- */
-
-typedef struct trace_profile_
-{
- u8 valid:1;
- u8 trace_type;
- u8 num_elts;
- /* Configured node-id */
- u32 node_id;
- u32 app_data;
- u32 trace_tsp;
-} trace_profile;
-
-typedef struct
-{
- /* Name of the default profile list in use */
- trace_profile profile;
-
- /* API message ID base */
- u16 msg_id_base;
-
- /* convenience */
- vlib_main_t *vlib_main;
- vnet_main_t *vnet_main;
-} trace_main_t;
-
-extern trace_main_t trace_main;
-
-/*
- * Initialize Trace profile
- */
-int trace_util_init (void);
-
-
-/*
- * Find a trace profile
- */
-
-always_inline trace_profile *
-trace_profile_find (void)
-{
- trace_main_t *sm = &trace_main;
-
- return (&(sm->profile));
-}
-
-
-/* setup and clean up profile */
-int trace_profile_create (trace_profile * profile, u8 trace_type, u8 num_elts,
- u32 trace_tsp, u32 node_id, u32 app_data);
-
-void clear_trace_profiles (void);
-
-
-
-#define BIT_TTL_NODEID (1<<0)
-#define BIT_ING_INTERFACE (1<<1)
-#define BIT_EGR_INTERFACE (1<<2)
-#define BIT_TIMESTAMP (1<<3)
-#define BIT_APPDATA (1<<4)
-#define TRACE_TYPE_MASK 0x1F /* Mask of all above bits */
-
-/*
- 0x00011111 iOAM-trace-type is 0x00011111 then the format of node
- data is:
-
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Hop_Lim | node_id |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ingress_if_id | egress_if_id |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- + timestamp +
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | app_data |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-*/
-#define TRACE_TYPE_IF_TS_APP 0x1f
-typedef struct
-{
- u32 ttl_node_id;
- u16 ingress_if;
- u16 egress_if;
- u32 timestamp;
- u32 app_data;
-} ioam_trace_if_ts_app_t;
-
-/*
- 0x00000111 iOAM-trace-type is 0x00000111 then the format is:
-
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Hop_Lim | node_id |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ingress_if_id | egress_if_id |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-*/
-
-#define TRACE_TYPE_IF 0x03
-typedef struct
-{
- u32 ttl_node_id;
- u16 ingress_if;
- u16 egress_if;
-} ioam_trace_if_t;
-
-/*
- 0x00001001 iOAM-trace-type is 0x00001001 then the format is:
-
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Hop_Lim | node_id |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- + timestamp +
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-*/
-
-#define TRACE_TYPE_TS 0x09
-typedef struct
-{
- u32 ttl_node_id;
- u32 timestamp;
-} ioam_trace_ts_t;
-
-/*
- 0x00010001 iOAM-trace-type is 0x00010001 then the format is:
-
-
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Hop_Lim | node_id |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | app_data |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-*/
-
-
-#define TRACE_TYPE_APP 0x11
-typedef struct
-{
- u32 ttl_node_id;
- u32 app_data;
-} ioam_trace_app_t;
-
-/*
-
- 0x00011001 iOAM-trace-type is 0x00011001 then the format is:
-
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Hop_Lim | node_id |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- + timestamp +
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | app_data |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-*/
-
-#define TRACE_TYPE_TS_APP 0x19
-typedef struct
-{
- u32 ttl_node_id;
- u32 timestamp;
- u32 app_data;
-} ioam_trace_ts_app_t;
-
-
-
-static inline u8
-fetch_trace_data_size (u8 trace_type)
-{
- u8 trace_data_size = 0;
-
- if (trace_type == TRACE_TYPE_IF_TS_APP)
- trace_data_size = sizeof (ioam_trace_if_ts_app_t);
- else if (trace_type == TRACE_TYPE_IF)
- trace_data_size = sizeof (ioam_trace_if_t);
- else if (trace_type == TRACE_TYPE_TS)
- trace_data_size = sizeof (ioam_trace_ts_t);
- else if (trace_type == TRACE_TYPE_APP)
- trace_data_size = sizeof (ioam_trace_app_t);
- else if (trace_type == TRACE_TYPE_TS_APP)
- trace_data_size = sizeof (ioam_trace_ts_app_t);
-
- return trace_data_size;
-}
-
-int ioam_trace_get_sizeof_handler (u32 * result);
-int ip6_trace_profile_setup (void);
-int ip6_trace_profile_cleanup (void);
-
-#define TSP_SECONDS 0
-#define TSP_MILLISECONDS 1
-#define TSP_MICROSECONDS 2
-#define TSP_NANOSECONDS 3
-
-#endif
-
-/*
- * fd.io coding-style-patch-verification: ON
- *
- * Local Variables:
- * eval: (c-set-style "gnu")
- * End:
- */