4ac69aacd538f636704f7df25864e7a32420e988
[vpp.git] / src / plugins / ioam.am
1 # Copyright (c) 2015 Cisco and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
5 #
6 #     http://www.apache.org/licenses/LICENSE-2.0
7 #
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13
14
15 ########################################
16 # iOAM Proof of Transit
17 ########################################
18
19 IOAM_POT_SRC =                                  \
20         ioam/lib-pot/pot_util.c                 \
21         ioam/encap/ip6_ioam_pot.c               \
22         ioam/lib-pot/pot_util.h                 \
23         ioam/lib-pot/math64.h                   \
24         ioam/lib-pot/pot_api.c
25
26 IOAM_POT_NOINST_HDR =                           \
27   ioam/lib-pot/pot_all_api_h.h                  \
28   ioam/lib-pot/pot_msg_enum.h                   \
29   ioam/lib-pot/pot.api.h                        \
30   ioam/lib-pot/pot_util.h                       \
31   ioam/lib-pot/math64.h
32
33 IOAM_POT_API = ioam/lib-pot/pot.api
34
35 ioam_pot_test_plugin_la_SOURCES =               \
36         ioam/lib-pot/pot_test.c                 \
37         ioam/lib-pot/pot_plugin.api.h
38
39 vppapitestplugins_LTLIBRARIES += ioam_pot_test_plugin.la
40
41 ########################################
42 # iOAM trace export for IPv6
43 ########################################
44
45 IOAM_EXPORT_SRC =                 \
46 ioam/export/ioam_export.c         \
47 ioam/export/node.c                \
48 ioam/export/ioam_export.api.h     \
49 ioam/export/ioam_export_thread.c
50
51 IOAM_EXPORT_NOINST_HDR =                \
52   ioam/export/ioam_export_all_api_h.h   \
53   ioam/export/ioam_export_msg_enum.h    \
54   ioam/export/ioam_export.api.h
55
56 IOAM_EXPORT_API = ioam/export/ioam_export.api
57
58 ioam_export_test_plugin_la_SOURCES =  \
59   ioam/export/ioam_export_test.c      \
60   ioam/export/ioam_export_plugin.api.h
61
62 vppapitestplugins_LTLIBRARIES += ioam_export_test_plugin.la
63
64 ########################################
65 # iOAM Trace
66 ########################################
67 IOAM_TRACE_SRC =                                \
68         ioam/lib-trace/trace_util.c             \
69         ioam/encap/ip6_ioam_trace.c             \
70         ioam/lib-trace/trace_api.c
71
72 IOAM_TRACE_NOINST_HDR =                 \
73   ioam/export/ioam_export_all_api_h.h   \
74   ioam/lib-trace/trace_all_api_h.h      \
75   ioam/lib-trace/trace_msg_enum.h       \
76   ioam/lib-trace/trace.api.h            \
77   ioam/lib-trace/trace_util.h           \
78   ioam/encap/ip6_ioam_trace.h           \
79   ioam/lib-trace/trace_config.h
80
81 IOAM_TRACE_API = ioam/lib-trace/trace.api
82
83 ioam_trace_test_plugin_la_SOURCES =             \
84         ioam/lib-trace/trace_test.c             \
85         ioam/lib-trace/trace_plugin.api.h
86
87 vppapitestplugins_LTLIBRARIES += ioam_trace_test_plugin.la
88
89 nobase_include_HEADERS +=                       \
90        ioam/lib-trace/trace_util.h              \
91        ioam/export-common/ioam_export.h
92
93 ########################################
94 # VxLAN-GPE
95 ########################################
96 IOAM_VXLAN_GPE_SRC =                                    \
97         ioam/lib-vxlan-gpe/ioam_encap.c                 \
98         ioam/lib-vxlan-gpe/ioam_decap.c                 \
99         ioam/lib-vxlan-gpe/ioam_transit.c               \
100         ioam/lib-vxlan-gpe/ioam_pop.c                   \
101         ioam/lib-vxlan-gpe/vxlan_gpe_api.c              \
102         ioam/lib-vxlan-gpe/vxlan_gpe_ioam_trace.c       \
103         ioam/lib-vxlan-gpe/vxlan_gpe_ioam.c             \
104         ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.c   \
105         ioam/export-vxlan-gpe/vxlan_gpe_node.c          \
106         ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api.h\
107         ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_thread.c
108
109 IOAM_VXLAN_GPE_NOINST_HDR =                                     \
110   ioam/export/ioam_export_all_api_h.h                           \
111   ioam/lib-vxlan-gpe/vxlan_gpe_all_api_h.h                      \
112   ioam/lib-vxlan-gpe/vxlan_gpe_msg_enum.h                       \
113   ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api.h                       \
114   ioam/lib-vxlan-gpe/vxlan_gpe_ioam_util.h                      \
115   ioam/lib-vxlan-gpe/vxlan_gpe_ioam_packet.h                    \
116   ioam/lib-vxlan-gpe/vxlan_gpe_ioam.h                           \
117   ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_all_api_h.h       \
118   ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_msg_enum.h        \
119   ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api.h
120
121 IOAM_VXLAN_GPE_API  = ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api
122 IOAM_VXLAN_GPE_API += ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api
123
124 ioam_vxlan_gpe_test_plugin_la_SOURCES =         \
125         ioam/lib-vxlan-gpe/vxlan_gpe_test.c                     \
126         ioam/lib-vxlan-gpe/vxlan_gpe_plugin.api.h
127
128 vppapitestplugins_LTLIBRARIES += ioam_vxlan_gpe_test_plugin.la
129
130 vxlan_gpe_ioam_export_test_plugin_la_SOURCES =          \
131   ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_test.c      \
132   ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_plugin.api.h
133
134 vppapitestplugins_LTLIBRARIES += vxlan_gpe_ioam_export_test_plugin.la
135
136 ########################################
137 # iOAM E2E
138 ########################################
139
140 IOAM_E2E_SRC =                                  \
141         ioam/encap/ip6_ioam_e2e.c               \
142         ioam/encap/ip6_ioam_seqno.c             \
143         ioam/lib-e2e/ioam_seqno_lib.c
144
145 IOAM_E2E_NOINST_HDR =                    \
146         ioam/encap/ip6_ioam_e2e.h        \
147         ioam/encap/ip6_ioam_seqno.h      \
148         ioam/lib-e2e/ioam_seqno_lib.h
149
150 ########################################
151 # ipfix collector
152 ########################################
153
154 IPFIX_COLLECTOR_SRC =                           \
155         ioam/ipfixcollector/ipfixcollector.c    \
156         ioam/ipfixcollector/node.c              \
157         ioam/ipfixcollector/ipfixcollector.h
158
159 ########################################
160 # iOAM Analyse
161 ########################################
162
163 IOAM_ANALYSE_SRC =                              \
164         ioam/analyse/ip6/ip6_ioam_analyse.c     \
165         ioam/analyse/ip6/node.c                 \
166         ioam/analyse/ip6/ip6_ioam_analyse.h     \
167         ioam/analyse/ioam_summary_export.c      \
168         ioam/analyse/ioam_analyse.h             \
169         ioam/analyse/ioam_summary_export.h
170
171 ########################################
172 # iOAM record cache and rewrite
173 ########################################
174
175 IOAM_IP6_MANYCAST_SRC =        \
176 ioam/ip6/ioam_cache.c                     \
177 ioam/ip6/ioam_cache_node.c                \
178 ioam/ip6/ioam_cache_tunnel_select_node.c  \
179 ioam/ip6/ioam_cache.api.h
180
181 IOAM_IP6_MANYCAST_API = ioam/ip6/ioam_cache.api
182
183 IOAM_IP6_MANYCAST_NOINST_HDR =      \
184   ioam/ip6/ioam_cache_all_api_h.h   \
185   ioam/ip6/ioam_cache_msg_enum.h    \
186   ioam/ip6/ioam_cache.api.h
187
188 # udp ping
189 ########################################
190
191 UDP_PING_SRC =                                          \
192         ioam/udp-ping/udp_ping_node.c       \
193         ioam/udp-ping/udp_ping_util.c           \
194         ioam/udp-ping/udp_ping_export.c         \
195         ioam/udp-ping/udp_ping_api.c
196
197 UDP_PING_NOINST_HDR =                               \
198         ioam/udp-ping/udp_ping_packet.h         \
199         ioam/udp-ping/udp_ping.h                    \
200         ioam/udp-ping/udp_ping_util.h           \
201         ioam/udp-ping/udp_ping_all_api_h.h      \
202         ioam/udp-ping/udp_ping_msg_enum.h       \
203         ioam/udp-ping/udp_ping.api.h
204
205 UDP_PING_API = ioam/udp-ping/udp_ping.api
206
207 udp_ping_test_plugin_la_SOURCES =               \
208         ioam/udp-ping/udp_ping_test.c                   \
209         ioam/udp-ping/udp_ping_plugin.api.h  
210
211 vppapitestplugins_LTLIBRARIES += udp_ping_test_plugin.la
212  
213 ########################################
214 # iOAM plugins
215 ########################################
216
217 ioam_plugin_la_SOURCES =                    \
218         $(IOAM_POT_SRC)             \
219         $(IOAM_EXPORT_SRC)          \
220         $(IOAM_TRACE_SRC)           \
221         $(IOAM_VXLAN_GPE_SRC)           \
222         $(IOAM_E2E_SRC)                     \
223                 $(IPFIX_COLLECTOR_SRC)          \
224                 $(IOAM_ANALYSE_SRC)                 \
225         $(IOAM_IP6_MANYCAST_SRC)    \
226                 $(UDP_PING_SRC)
227
228 API_FILES +=                                        \
229         $(IOAM_POT_API)                 \
230         $(IOAM_EXPORT_API)              \
231         $(IOAM_TRACE_API)               \
232         $(IOAM_VXLAN_GPE_API)               \
233         $(IOAM_IP6_MANYCAST_API)        \
234                 $(UDP_PING_API)
235
236 noinst_HEADERS +=                               \
237         $(IOAM_POT_NOINST_HDR)                  \
238         $(IOAM_EXPORT_NOINST_HDR)               \
239         $(IOAM_TRACE_NOINST_HDR)                \
240         $(IOAM_VXLAN_GPE_NOINST_HDR)            \
241         $(IOAM_E2E_NOINST_HDR)                          \
242         $(IOAM_IP6_MANYCAST_NOINST_HDR)         \
243                 $(UDP_PING_NOINST_HDR)
244
245 vppplugins_LTLIBRARIES += ioam_plugin.la
246
247 # vi:syntax=automake