4eda6110d24040000e445bd2797fdb0a1b996257
[vpp.git] / src / plugins / ioam / encap / ip6_ioam_trace.h
1 /*
2  * Copyright (c) 2017 Cisco and/or its affiliates.
3  * trace_util.h -- Trace Profile Utility header
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at:
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 #ifndef PLUGINS_IOAM_PLUGIN_IOAM_ENCAP_IP6_IOAM_TRACE_H_
19 #define PLUGINS_IOAM_PLUGIN_IOAM_ENCAP_IP6_IOAM_TRACE_H_
20
21 #include <vnet/ip/ip6_hop_by_hop_packet.h>
22 #include <ioam/lib-trace/trace_util.h>
23
24 /* *INDENT-OFF* */
25 typedef CLIB_PACKED(struct {
26   ip6_hop_by_hop_option_t hdr;
27   ioam_trace_hdr_t trace_hdr;
28 }) ioam_trace_option_t;
29 /* *INDENT-ON* */
30
31 always_inline void
32 ip6_hbh_ioam_trace_set_bit (ioam_trace_option_t * trace, u8 trace_bit)
33 {
34   ioam_trace_set_bit (&trace->trace_hdr, trace_bit);
35 }
36
37 always_inline void
38 ip6_hbh_ioam_trace_reset_bit (ioam_trace_option_t * trace, u8 trace_bit)
39 {
40   ioam_trace_reset_bit (&trace->trace_hdr, trace_bit);
41 }
42
43 #endif /* PLUGINS_IOAM_PLUGIN_IOAM_ENCAP_IP6_IOAM_TRACE_H_ */
44
45 /*
46  * fd.io coding-style-patch-verification: ON
47  *
48  * Local Variables:
49  * eval: (c-set-style "gnu")
50  * End:
51  */