# Copyright (c) 2015 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.


########################################
# iOAM Proof of Transit
########################################

IOAM_POT_SRC =					\
	ioam/lib-pot/pot_util.c			\
	ioam/encap/ip6_ioam_pot.c		\
	ioam/lib-pot/pot_util.h			\
	ioam/lib-pot/math64.h			\
	ioam/lib-pot/pot_api.c

IOAM_POT_NOINST_HDR =				\
  ioam/lib-pot/pot_all_api_h.h			\
  ioam/lib-pot/pot_msg_enum.h			\
  ioam/lib-pot/pot.api.h			\
  ioam/lib-pot/pot_util.h			\
  ioam/lib-pot/math64.h

IOAM_POT_API = ioam/lib-pot/pot.api

ioam_pot_test_plugin_la_SOURCES =		\
	ioam/lib-pot/pot_test.c			\
	ioam/lib-pot/pot_plugin.api.h

vppapitestplugins_LTLIBRARIES += ioam_pot_test_plugin.la

########################################
# iOAM trace export for IPv6
########################################

IOAM_EXPORT_SRC =		  \
ioam/export/ioam_export.c         \
ioam/export/node.c                \
ioam/export/ioam_export.api.h     \
ioam/export/ioam_export_thread.c

IOAM_EXPORT_NOINST_HDR =                \
  ioam/export/ioam_export_all_api_h.h   \
  ioam/export/ioam_export_msg_enum.h    \
  ioam/export/ioam_export.api.h

IOAM_EXPORT_API = ioam/export/ioam_export.api

ioam_export_test_plugin_la_SOURCES =  \
  ioam/export/ioam_export_test.c      \
  ioam/export/ioam_export_plugin.api.h

vppapitestplugins_LTLIBRARIES += ioam_export_test_plugin.la

########################################
# iOAM Trace
########################################
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 =                 \
  ioam/export/ioam_export_all_api_h.h   \
  ioam/lib-trace/trace_all_api_h.h	\
  ioam/lib-trace/trace_msg_enum.h	\
  ioam/lib-trace/trace.api.h		\
  ioam/lib-trace/trace_util.h

IOAM_TRACE_API = ioam/lib-trace/trace.api

ioam_trace_test_plugin_la_SOURCES =		\
	ioam/lib-trace/trace_test.c		\
	ioam/lib-trace/trace_plugin.api.h

vppapitestplugins_LTLIBRARIES += ioam_trace_test_plugin.la

########################################
# VxLAN-GPE
########################################
IOAM_VXLAN_GPE_SRC =					\
	ioam/lib-vxlan-gpe/ioam_encap.c			\
	ioam/lib-vxlan-gpe/ioam_decap.c			\
	ioam/lib-vxlan-gpe/ioam_transit.c		\
	ioam/lib-vxlan-gpe/ioam_pop.c			\
	ioam/lib-vxlan-gpe/vxlan_gpe_api.c		\
	ioam/lib-vxlan-gpe/vxlan_gpe_ioam_trace.c	\
	ioam/lib-vxlan-gpe/vxlan_gpe_ioam.c		\
	ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.c	\
	ioam/export-vxlan-gpe/vxlan_gpe_node.c		\
	ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api.h\
	ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_thread.c

IOAM_VXLAN_GPE_NOINST_HDR =                       		\
  ioam/export/ioam_export_all_api_h.h   			\
  ioam/lib-vxlan-gpe/vxlan_gpe_all_api_h.h			\
  ioam/lib-vxlan-gpe/vxlan_gpe_msg_enum.h			\
  ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api.h			\
  ioam/lib-vxlan-gpe/vxlan_gpe_ioam_util.h			\
  ioam/lib-vxlan-gpe/vxlan_gpe_ioam_packet.h                    \
  ioam/lib-vxlan-gpe/vxlan_gpe_ioam.h				\
  ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_all_api_h.h       \
  ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_msg_enum.h        \
  ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api.h

IOAM_VXLAN_GPE_API  = ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api
IOAM_VXLAN_GPE_API += ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api

ioam_vxlan_gpe_test_plugin_la_SOURCES =		\
	ioam/lib-vxlan-gpe/vxlan_gpe_test.c			\
	ioam/lib-vxlan-gpe/vxlan_gpe_plugin.api.h

vppapitestplugins_LTLIBRARIES += ioam_vxlan_gpe_test_plugin.la

vxlan_gpe_ioam_export_test_plugin_la_SOURCES =          \
  ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_test.c      \
  ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_plugin.api.h

vppapitestplugins_LTLIBRARIES += vxlan_gpe_ioam_export_test_plugin.la

########################################
# iOAM E2E plugin
########################################

IOAM_E2E_SRC =                			\
	ioam/encap/ip6_ioam_e2e.c               \
	ioam/encap/ip6_ioam_seqno.c             \
	ioam/encap/ip6_ioam_seqno_analyse.c

IOAM_E2E_NOINST_HDR =                   \
	ioam/encap/ip6_ioam_e2e.h        \
	ioam/encap/ip6_ioam_seqno.h

########################################
# iOAM plugins
########################################

ioam_plugin_la_SOURCES =		\
        $(IOAM_POT_SRC)                 \
        $(IOAM_EXPORT_SRC)              \
        $(IOAM_TRACE_SRC)               \
        $(IOAM_VXLAN_GPE_SRC)   	\
        $(IOAM_E2E_SRC)

API_FILES +=				\
        $(IOAM_POT_API)                 \
        $(IOAM_EXPORT_API)              \
        $(IOAM_TRACE_API)               \
        $(IOAM_VXLAN_GPE_API)

noinst_HEADERS +=                               \
        $(IOAM_POT_NOINST_HDR)                  \
        $(IOAM_EXPORT_NOINST_HDR)               \
        $(IOAM_TRACE_NOINST_HDR)                \
        $(IOAM_VXLAN_GPE_NOINST_HDR)            \
        $(IOAM_E2E_NOINST_HDR)

vppplugins_LTLIBRARIES += ioam_plugin.la

# vi:syntax=automake