VPP changes to support iOAM over NSH-MD2. Separate trace data 98/5698/4
authorVengada <venggovi@cisco.com>
Fri, 10 Mar 2017 06:05:02 +0000 (22:05 -0800)
committerVengada Govindan <venggovi@cisco.com>
Wed, 15 Mar 2017 01:53:31 +0000 (01:53 +0000)
structure definitions into two files to share code with NSH
plugin (iOAM)

Change-Id: I0192551f71678e4f814bc6a7d25200a1580f3033
Signed-off-by: Vengada <venggovi@cisco.com>
src/plugins/ioam.am
src/plugins/ioam/analyse/ioam_analyse.h
src/plugins/ioam/encap/ip6_ioam_trace.c
src/plugins/ioam/lib-trace/trace_api.c
src/plugins/ioam/lib-trace/trace_config.h [new file with mode: 0644]
src/plugins/ioam/lib-trace/trace_util.c
src/plugins/ioam/lib-trace/trace_util.h
src/plugins/ioam/lib-vxlan-gpe/vxlan_gpe_ioam_trace.c

index d381641..40bb8f5 100644 (file)
@@ -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
 ########################################
index 3e04c1c..ef2865d 100644 (file)
@@ -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
index 2cd1044..57d3ec5 100644 (file)
@@ -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>
index 2ada5b7..6889859 100644 (file)
@@ -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 (file)
index 0000000..d9fa9ff
--- /dev/null
@@ -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:
+ */
index 5c7f1ee..b316a23 100644 (file)
@@ -18,6 +18,7 @@
 #include <string.h>
 #include <vppinfra/mem.h>
 #include "trace_util.h"
+#include "trace_config.h"
 
 trace_main_t trace_main;
 
index c8b5047..61f18d9 100644 (file)
@@ -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;
 
index e37b164..48edb4b 100644 (file)
@@ -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