DPDK
2.2.0
Main Page
Related Pages
Data Structures
Files
Examples
File List
Globals
drivers
net
bonding
rte_eth_bond_alb.h
1
/*-
2
* BSD LICENSE
3
*
4
* Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
*
11
* * Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* * Redistributions in binary form must reproduce the above copyright
14
* notice, this list of conditions and the following disclaimer in
15
* the documentation and/or other materials provided with the
16
* distribution.
17
* * Neither the name of Intel Corporation nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
*/
33
34
#ifndef RTE_ETH_BOND_ALB_H_
35
#define RTE_ETH_BOND_ALB_H_
36
37
#include <
rte_ether.h
>
38
#include <
rte_arp.h
>
39
40
#define ALB_HASH_TABLE_SIZE 256
41
#define ALB_NULL_INDEX 0xFFFFFFFF
42
43
struct
client_data {
45
struct
ether_addr
app_mac;
47
uint32_t app_ip;
49
struct
ether_addr
cli_mac;
51
uint32_t cli_ip;
54
uint8_t slave_idx;
56
uint8_t in_use;
58
uint8_t ntt;
61
struct
vlan_hdr
vlan[2];
63
uint8_t vlan_count;
65
};
66
67
struct
mode_alb_private {
68
struct
client_data client_table[ALB_HASH_TABLE_SIZE];
70
struct
rte_mempool
*mempool;
72
uint8_t ntt;
74
uint32_t last_slave;
76
rte_spinlock_t
lock;
77
};
78
87
int
88
bond_mode_alb_enable(
struct
rte_eth_dev *bond_dev);
89
99
void
100
bond_mode_alb_arp_recv(
struct
ether_hdr
*eth_h, uint16_t offset,
101
struct
bond_dev_private
*internals);
102
116
uint8_t
117
bond_mode_alb_arp_xmit(
struct
ether_hdr
*eth_h, uint16_t offset,
118
struct
bond_dev_private
*internals);
119
130
uint8_t
131
bond_mode_alb_arp_upd(
struct
client_data *client_info,
132
struct
rte_mbuf
*pkt,
struct
bond_dev_private
*internals);
133
139
void
140
bond_mode_alb_client_list_upd(
struct
rte_eth_dev *bond_dev);
141
142
#endif
/* RTE_ETH_BOND_ALB_H_ */
Generated by
1.8.1.2