DPDK
19.05.0
Main Page
Related Pages
Data Structures
Files
Examples
File List
Globals
lib
librte_eal
common
include
rte_keepalive.h
Go to the documentation of this file.
1
/*-
2
* BSD LICENSE
3
*
4
* Copyright 2015-2016 Intel Shannon Ltd. All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions
8
* are met:
9
*
10
* * Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* * Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in
14
* the documentation and/or other materials provided with the
15
* distribution.
16
* * Neither the name of Intel Corporation nor the names of its
17
* contributors may be used to endorse or promote products derived
18
* from this software without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
*/
32
39
#ifndef _KEEPALIVE_H_
40
#define _KEEPALIVE_H_
41
42
#include <rte_config.h>
43
#include <
rte_memory.h
>
44
45
#ifndef RTE_KEEPALIVE_MAXCORES
46
49
#define RTE_KEEPALIVE_MAXCORES RTE_MAX_LCORE
50
#endif
51
52
enum
rte_keepalive_state {
53
RTE_KA_STATE_UNUSED = 0,
54
RTE_KA_STATE_ALIVE = 1,
55
RTE_KA_STATE_MISSING = 4,
56
RTE_KA_STATE_DEAD = 2,
57
RTE_KA_STATE_GONE = 3,
58
RTE_KA_STATE_DOZING = 5,
59
RTE_KA_STATE_SLEEP = 6
60
};
61
70
typedef
void (*
rte_keepalive_failure_callback_t
)(
71
void
*data,
72
const
int
id_core);
73
85
typedef
void (*
rte_keepalive_relay_callback_t
)(
86
void
*data,
87
const
int
id_core,
88
enum
rte_keepalive_state core_state,
89
uint64_t last_seen
90
);
91
96
struct
rte_keepalive;
97
107
struct
rte_keepalive *
rte_keepalive_create
(
108
rte_keepalive_failure_callback_t
callback,
109
void
*data);
110
116
void
rte_keepalive_dispatch_pings
(
void
*ptr_timer,
void
*ptr_data);
117
125
void
rte_keepalive_register_core
(
struct
rte_keepalive *keepcfg,
126
const
int
id_core);
127
136
void
137
rte_keepalive_mark_alive
(
struct
rte_keepalive *keepcfg);
138
148
void
149
rte_keepalive_mark_sleep
(
struct
rte_keepalive *keepcfg);
150
165
void
166
rte_keepalive_register_relay_callback
(
struct
rte_keepalive *keepcfg,
167
rte_keepalive_relay_callback_t
callback,
168
void
*data);
169
170
#endif
/* _KEEPALIVE_H_ */
Generated by
1.8.1.2