DPDK
17.05.2
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_memory.h
>
43
44
#ifndef RTE_KEEPALIVE_MAXCORES
45
48
#define RTE_KEEPALIVE_MAXCORES RTE_MAX_LCORE
49
#endif
50
51
enum
rte_keepalive_state {
52
RTE_KA_STATE_UNUSED = 0,
53
RTE_KA_STATE_ALIVE = 1,
54
RTE_KA_STATE_MISSING = 4,
55
RTE_KA_STATE_DEAD = 2,
56
RTE_KA_STATE_GONE = 3,
57
RTE_KA_STATE_DOZING = 5,
58
RTE_KA_STATE_SLEEP = 6
59
};
60
69
typedef
void (*
rte_keepalive_failure_callback_t
)(
70
void
*data,
71
const
int
id_core);
72
84
typedef
void (*
rte_keepalive_relay_callback_t
)(
85
void
*data,
86
const
int
id_core,
87
enum
rte_keepalive_state core_state,
88
uint64_t last_seen
89
);
90
95
struct
rte_keepalive;
96
106
struct
rte_keepalive *
rte_keepalive_create
(
107
rte_keepalive_failure_callback_t
callback,
108
void
*data);
109
115
void
rte_keepalive_dispatch_pings
(
void
*ptr_timer,
void
*ptr_data);
116
124
void
rte_keepalive_register_core
(
struct
rte_keepalive *keepcfg,
125
const
int
id_core);
126
135
void
136
rte_keepalive_mark_alive
(
struct
rte_keepalive *keepcfg);
137
147
void
148
rte_keepalive_mark_sleep
(
struct
rte_keepalive *keepcfg);
149
164
void
165
rte_keepalive_register_relay_callback
(
struct
rte_keepalive *keepcfg,
166
rte_keepalive_relay_callback_t
callback,
167
void
*data);
168
169
#endif
/* _KEEPALIVE_H_ */
Generated by
1.8.1.2