aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVengada <venggovi@cisco.com>2017-03-09 22:05:02 -0800
committerVengada Govindan <venggovi@cisco.com>2017-03-15 01:53:31 +0000
commit3bde40778cc2bf5fab6b13d81eca0180f7d27af3 (patch)
tree11c1d9677a4070d908e86a548dde4b570e54c52c /src
parent803c51d7a17109eb0881a0b9da20a45f3a0391ab (diff)
VPP changes to support iOAM over NSH-MD2. Separate trace data
structure definitions into two files to share code with NSH plugin (iOAM) Change-Id: I0192551f71678e4f814bc6a7d25200a1580f3033 Signed-off-by: Vengada <venggovi@cisco.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/ioam.am7
-rw-r--r--src/plugins/ioam/analyse/ioam_analyse.h1
-rw-r--r--src/plugins/ioam/encap/ip6_ioam_trace.c2
-rw-r--r--src/plugins/ioam/lib-trace/trace_api.c1
-rw-r--r--src/plugins/ioam/lib-trace/trace_config.h41
-rw-r--r--src/plugins/ioam/lib-trace/trace_util.c1
-rw-r--r--src/plugins/ioam/lib-trace/trace_util.h20
-rw-r--r--src/plugins/ioam/lib-vxlan-gpe/vxlan_gpe_ioam_trace.c1
8 files changed, 56 insertions, 18 deletions
diff --git a/src/plugins/ioam.am b/src/plugins/ioam.am
index d3816413d9f..40bb8f5b661 100644
--- a/src/plugins/ioam.am
+++ b/src/plugins/ioam.am
@@ -67,7 +67,6 @@ vppapitestplugins_LTLIBRARIES += ioam_export_test_plugin.la
IOAM_TRACE_SRC = \
ioam/lib-trace/trace_util.c \
ioam/encap/ip6_ioam_trace.c \
- ioam/lib-trace/trace_util.h \
ioam/lib-trace/trace_api.c
IOAM_TRACE_NOINST_HDR = \
@@ -76,7 +75,8 @@ IOAM_TRACE_NOINST_HDR = \
ioam/lib-trace/trace_msg_enum.h \
ioam/lib-trace/trace.api.h \
ioam/lib-trace/trace_util.h \
- ioam/encap/ip6_ioam_trace.h
+ ioam/encap/ip6_ioam_trace.h \
+ ioam/lib-trace/trace_config.h
IOAM_TRACE_API = ioam/lib-trace/trace.api
@@ -86,6 +86,9 @@ ioam_trace_test_plugin_la_SOURCES = \
vppapitestplugins_LTLIBRARIES += ioam_trace_test_plugin.la
+nobase_include_HEADERS += \
+ ioam/lib-trace/trace_util.h
+
########################################
# VxLAN-GPE
########################################
diff --git a/src/plugins/ioam/analyse/ioam_analyse.h b/src/plugins/ioam/analyse/ioam_analyse.h
index 3e04c1ca69c..ef2865daf8c 100644
--- a/src/plugins/ioam/analyse/ioam_analyse.h
+++ b/src/plugins/ioam/analyse/ioam_analyse.h
@@ -21,6 +21,7 @@
#include <vppinfra/types.h>
#include <ioam/lib-e2e/e2e_util.h>
#include <ioam/lib-trace/trace_util.h>
+#include <ioam/lib-trace/trace_config.h>
#define IOAM_FLOW_TEMPLATE_ID 260
#define IOAM_TRACE_MAX_NODES 10
diff --git a/src/plugins/ioam/encap/ip6_ioam_trace.c b/src/plugins/ioam/encap/ip6_ioam_trace.c
index 2cd1044f317..57d3ec5de75 100644
--- a/src/plugins/ioam/encap/ip6_ioam_trace.c
+++ b/src/plugins/ioam/encap/ip6_ioam_trace.c
@@ -27,6 +27,8 @@
#include <vppinfra/elog.h>
#include <vnet/plugin/plugin.h>
+#include <ioam/lib-trace/trace_util.h>
+#include <ioam/lib-trace/trace_config.h>
#include <ioam/encap/ip6_ioam_trace.h>
#include <ioam/udp-ping/udp_ping.h>
#include <ioam/udp-ping/udp_ping_packet.h>
diff --git a/src/plugins/ioam/lib-trace/trace_api.c b/src/plugins/ioam/lib-trace/trace_api.c
index 2ada5b7e5af..6889859baa0 100644
--- a/src/plugins/ioam/lib-trace/trace_api.c
+++ b/src/plugins/ioam/lib-trace/trace_api.c
@@ -22,6 +22,7 @@
#include <vnet/vnet.h>
#include <vnet/plugin/plugin.h>
#include <ioam/lib-trace/trace_util.h>
+#include <ioam/lib-trace/trace_config.h>
#include <vlibapi/api.h>
#include <vlibmemory/api.h>
diff --git a/src/plugins/ioam/lib-trace/trace_config.h b/src/plugins/ioam/lib-trace/trace_config.h
new file mode 100644
index 00000000000..d9fa9ff2dee
--- /dev/null
+++ b/src/plugins/ioam/lib-trace/trace_config.h
@@ -0,0 +1,41 @@
+/*
+ * trace_config.h -- iOAM trace configuration utility routines
+ *
+ * Copyright (c) 2017 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_config_h
+#define include_vnet_trace_config_h
+
+extern trace_main_t trace_main;
+
+always_inline trace_profile *
+trace_profile_find (void)
+{
+ trace_main_t *sm = &trace_main;
+
+ return (&(sm->profile));
+}
+
+
+
+#endif
+
+/*
+ * fd.io coding-style-patch-verification: ON
+ *
+ * Local Variables:
+ * eval: (c-set-style "gnu")
+ * End:
+ */
diff --git a/src/plugins/ioam/lib-trace/trace_util.c b/src/plugins/ioam/lib-trace/trace_util.c
index 5c7f1eefd9c..b316a236286 100644
--- a/src/plugins/ioam/lib-trace/trace_util.c
+++ b/src/plugins/ioam/lib-trace/trace_util.c
@@ -18,6 +18,7 @@
#include <string.h>
#include <vppinfra/mem.h>
#include "trace_util.h"
+#include "trace_config.h"
trace_main_t trace_main;
diff --git a/src/plugins/ioam/lib-trace/trace_util.h b/src/plugins/ioam/lib-trace/trace_util.h
index c8b504701e4..61f18d9173a 100644
--- a/src/plugins/ioam/lib-trace/trace_util.h
+++ b/src/plugins/ioam/lib-trace/trace_util.h
@@ -62,7 +62,6 @@ typedef struct
vnet_main_t *vnet_main;
} trace_main_t;
-extern trace_main_t trace_main;
/*
* Initialize Trace profile
@@ -70,19 +69,6 @@ extern trace_main_t trace_main;
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);
@@ -94,10 +80,12 @@ typedef CLIB_PACKED (struct
{
u8 ioam_trace_type;
u8 data_list_elts_left;
- u32 elts[0]; /* Variable type. So keep it generic */
+ u32 elts[0]; /* Variable type. So keep it generic */
}) ioam_trace_hdr_t;
/* *INDENT-ON* */
+
+
#define BIT_TTL_NODEID (1<<0)
#define BIT_ING_INTERFACE (1<<1)
#define BIT_EGR_INTERFACE (1<<2)
@@ -218,7 +206,7 @@ typedef struct
} ioam_trace_ts_app_t;
static inline u8
-fetch_trace_data_size (u8 trace_type)
+fetch_trace_data_size (u16 trace_type)
{
u8 trace_data_size = 0;
diff --git a/src/plugins/ioam/lib-vxlan-gpe/vxlan_gpe_ioam_trace.c b/src/plugins/ioam/lib-vxlan-gpe/vxlan_gpe_ioam_trace.c
index e37b1642d96..48edb4b0204 100644
--- a/src/plugins/ioam/lib-vxlan-gpe/vxlan_gpe_ioam_trace.c
+++ b/src/plugins/ioam/lib-vxlan-gpe/vxlan_gpe_ioam_trace.c
@@ -25,6 +25,7 @@
#include <vppinfra/elog.h>
#include <ioam/lib-trace/trace_util.h>
+#include <ioam/lib-trace/trace_config.h>
#include <ioam/lib-vxlan-gpe/vxlan_gpe_ioam.h>
/* Timestamp precision multipliers for seconds, milliseconds, microseconds