FD.io VPP
v16.12-rc0-308-g931be3a
Vector Packet Processing
Main Page
Related Pages
Data Structures
Source
Files
Symbols
FD.io VPP
Vector Packet Processing
Release Notes
Debug CLI
Startup Configuration
Todo List
Node Identifiers
Data Structures
Source
Files
Symbols
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
error.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015 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
* error.h: drop/punt error packets
17
*
18
* Copyright (c) 2008 Eliot Dresselhaus
19
*
20
* Permission is hereby granted, free of charge, to any person obtaining
21
* a copy of this software and associated documentation files (the
22
* "Software"), to deal in the Software without restriction, including
23
* without limitation the rights to use, copy, modify, merge, publish,
24
* distribute, sublicense, and/or sell copies of the Software, and to
25
* permit persons to whom the Software is furnished to do so, subject to
26
* the following conditions:
27
*
28
* The above copyright notice and this permission notice shall be
29
* included in all copies or substantial portions of the Software.
30
*
31
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
33
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
35
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
36
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
37
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
38
*/
39
40
#ifndef included_vlib_error_h
41
#define included_vlib_error_h
42
43
/* Combined 16 bit node & 16 bit code as 32 bit number. */
44
typedef
u32
vlib_error_t
;
45
46
always_inline
u32
47
vlib_error_get_node
(
vlib_error_t
e)
48
{
49
return
e >> 12;
50
}
51
52
always_inline
u32
53
vlib_error_get_code
(
vlib_error_t
e)
54
{
55
return
e & 0xfff;
56
}
57
58
always_inline
vlib_error_t
59
vlib_error_set
(
u32
node_index,
u32
code)
60
{
61
ASSERT
(node_index < (1 << 20));
62
ASSERT
(code < (1 << 12));
63
return
(node_index << 12) | code;
64
}
65
66
always_inline
vlib_error_t
67
vlib_error_set_code
(
vlib_error_t
e,
u32
code)
68
{
69
ASSERT
(
vlib_error_get_code
(e) == 0);
70
ASSERT
(code < (1 << 12));
71
e |= code;
72
return
e;
73
}
74
75
typedef
struct
76
{
77
/* Error counters. */
78
u64
*
counters
;
79
80
/* Counter values as of last counter clear. */
81
u64
*
counters_last_clear
;
82
83
/* Error name strings in heap. Heap index
84
indexes counter vector. */
85
char
**
error_strings_heap
;
86
}
vlib_error_main_t
;
87
88
/* Per node error registration. */
89
void
vlib_register_errors
(
struct
vlib_main_t
*vm,
90
u32
node_index,
91
u32
n_errors,
char
*error_strings[]);
92
93
#endif
/* included_vlib_error_h */
94
95
/*
96
* fd.io coding-style-patch-verification: ON
97
*
98
* Local Variables:
99
* eval: (c-set-style "gnu")
100
* End:
101
*/
vlib_error_main_t::counters_last_clear
u64 * counters_last_clear
Definition:
error.h:81
always_inline
#define always_inline
Definition:
clib.h:84
vlib_error_get_node
static u32 vlib_error_get_node(vlib_error_t e)
Definition:
error.h:47
u64
unsigned long u64
Definition:
types.h:89
vlib_register_errors
void vlib_register_errors(struct vlib_main_t *vm, u32 node_index, u32 n_errors, char *error_strings[])
Definition:
error.c:145
vlib_error_t
u32 vlib_error_t
Definition:
error.h:44
vlib_error_get_code
static u32 vlib_error_get_code(vlib_error_t e)
Definition:
error.h:53
vlib_error_main_t::counters
u64 * counters
Definition:
error.h:78
vlib_error_main_t::error_strings_heap
char ** error_strings_heap
Definition:
error.h:85
ASSERT
#define ASSERT(truth)
Definition:
error_bootstrap.h:69
u32
unsigned int u32
Definition:
types.h:88
vlib_main_t
Definition:
main.h:59
vlib_error_main_t
Definition:
error.h:75
vlib_error_set
static vlib_error_t vlib_error_set(u32 node_index, u32 code)
Definition:
error.h:59
vlib_error_set_code
static vlib_error_t vlib_error_set_code(vlib_error_t e, u32 code)
Definition:
error.h:67
vlib
vlib
error.h
Generated on Thu Nov 3 2016 18:25:05 for FD.io VPP by
1.8.11