blob: 6f4f60c81292020c927c726900cb06aa5520d5c8 [file] [log] [blame]
Klement Sekera0e3c0de2016-09-29 14:43:44 +02001/*
2 * Copyright (c) 2011-2016 Cisco and/or its affiliates.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at:
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15/**
16 * @file
17 * @brief BFD global declarations
18 */
19#ifndef __included_bfd_debug_h__
20#define __included_bfd_debug_h__
21
22/* controls debug prints */
Klement Sekeraf61bc522017-02-27 12:49:27 +010023#define BFD_DEBUG (0)
Klement Sekera0e3c0de2016-09-29 14:43:44 +020024
25#if BFD_DEBUG
Klement Sekera637b9c42016-12-08 05:19:14 +010026#define BFD_DEBUG_FILE_DEF \
27 static const char *__file = NULL; \
28 { \
29 __file = strrchr (__FILE__, '/'); \
30 if (__file) \
31 { \
32 ++__file; \
33 } \
34 else \
35 { \
36 __file = __FILE__; \
37 } \
38 }
Klement Sekera0e3c0de2016-09-29 14:43:44 +020039
40#define BFD_DBG(fmt, ...) \
41 do \
42 { \
43 BFD_DEBUG_FILE_DEF \
Klement Sekera637b9c42016-12-08 05:19:14 +010044 static u8 *_s = NULL; \
Klement Sekera0e3c0de2016-09-29 14:43:44 +020045 vlib_main_t *vm = vlib_get_main (); \
46 _s = format (_s, "%6.02f:DBG:%s:%d:%s():" fmt, vlib_time_now (vm), \
47 __file, __LINE__, __func__, ##__VA_ARGS__); \
Klement Sekera637b9c42016-12-08 05:19:14 +010048 printf ("%.*s\n", vec_len (_s), _s); \
49 vec_reset_length (_s); \
Klement Sekera0e3c0de2016-09-29 14:43:44 +020050 } \
51 while (0);
52
53#define BFD_ERR(fmt, ...) \
54 do \
55 { \
56 BFD_DEBUG_FILE_DEF \
Klement Sekera637b9c42016-12-08 05:19:14 +010057 static u8 *_s = NULL; \
Klement Sekera0e3c0de2016-09-29 14:43:44 +020058 vlib_main_t *vm = vlib_get_main (); \
59 _s = format (_s, "%6.02f:ERR:%s:%d:%s():" fmt, vlib_time_now (vm), \
60 __file, __LINE__, __func__, ##__VA_ARGS__); \
Klement Sekera637b9c42016-12-08 05:19:14 +010061 printf ("%.*s\n", vec_len (_s), _s); \
62 vec_reset_length (_s); \
Klement Sekera0e3c0de2016-09-29 14:43:44 +020063 } \
64 while (0);
65
Klement Sekeraa3167442020-02-10 11:49:52 +000066#define BFD_CLK_FMT "%luus/%lu nsec/%.2fs"
67#define BFD_CLK_PRN(nsec) \
68 (nsec * NSEC_PER_SEC), (nsec), (((f64)nsec) / NSEC_PER_SEC)
Klement Sekeraa57a9702017-02-02 06:58:07 +010069
Klement Sekera0e3c0de2016-09-29 14:43:44 +020070#else
71#define BFD_DBG(...)
72#define BFD_ERR(...)
73#endif
74
75#endif /* __included_bfd_debug_h__ */
76
77/*
78 * fd.io coding-style-patch-verification: ON
79 *
80 * Local Variables:
81 * eval: (c-set-style "gnu")
82 * End:
83 */