]>
Commit | Line | Data |
---|---|---|
53e1b683 | 1 | /* SPDX-License-Identifier: LGPL-2.1+ */ |
fc2f9534 LP |
2 | #pragma once |
3 | ||
4 | /*** | |
810adae9 | 5 | Copyright © 2014 Intel Corporation. All rights reserved. |
fc2f9534 LP |
6 | ***/ |
7 | ||
bdb397ed SS |
8 | #include <linux/neighbour.h> |
9 | ||
a2106925 | 10 | #include "conf-parser.h" |
634f0f98 ZJS |
11 | #include "list.h" |
12 | #include "macro.h" | |
fcbf4cb7 | 13 | #include "networkd-util.h" |
fc2f9534 | 14 | |
634f0f98 ZJS |
15 | typedef struct Network Network; |
16 | typedef struct FdbEntry FdbEntry; | |
17 | typedef struct Link Link; | |
1a75764a | 18 | typedef struct NetworkConfigSection NetworkConfigSection; |
fc2f9534 | 19 | |
bdb397ed SS |
20 | typedef enum NeighborCacheEntryFlags { |
21 | NEIGHBOR_CACHE_ENTRY_FLAGS_USE = NTF_USE, | |
22 | NEIGHBOR_CACHE_ENTRY_FLAGS_SELF = NTF_SELF, | |
23 | NEIGHBOR_CACHE_ENTRY_FLAGS_MASTER = NTF_MASTER, | |
24 | NEIGHBOR_CACHE_ENTRY_FLAGS_ROUTER = NTF_ROUTER, | |
25 | _NEIGHBOR_CACHE_ENTRY_FLAGS_MAX, | |
26 | _NEIGHBOR_CACHE_ENTRY_FLAGS_INVALID = -1, | |
27 | } NeighborCacheEntryFlags; | |
28 | ||
fc2f9534 LP |
29 | struct FdbEntry { |
30 | Network *network; | |
1a75764a | 31 | NetworkConfigSection *section; |
fc2f9534 | 32 | |
61b824c5 SS |
33 | uint32_t vni; |
34 | ||
c2c2793f | 35 | int family; |
fc2f9534 LP |
36 | uint16_t vlan_id; |
37 | ||
8f8404d4 | 38 | struct ether_addr mac_addr; |
c2c2793f | 39 | union in_addr_union destination_addr; |
bdb397ed | 40 | NeighborCacheEntryFlags fdb_ntf_flags; |
c2c2793f | 41 | |
fc2f9534 LP |
42 | LIST_FIELDS(FdbEntry, static_fdb_entries); |
43 | }; | |
44 | ||
fc2f9534 | 45 | void fdb_entry_free(FdbEntry *fdb_entry); |
a60a720c | 46 | int fdb_entry_configure(Link *link, FdbEntry *fdb_entry); |
fc2f9534 | 47 | |
fcbf4cb7 | 48 | DEFINE_NETWORK_SECTION_FUNCTIONS(FdbEntry, fdb_entry_free); |
fc2f9534 | 49 | |
bdb397ed SS |
50 | const char* fdb_ntf_flags_to_string(NeighborCacheEntryFlags i) _const_; |
51 | NeighborCacheEntryFlags fdb_ntf_flags_from_string(const char *s) _pure_; | |
52 | ||
a2106925 LP |
53 | CONFIG_PARSER_PROTOTYPE(config_parse_fdb_hwaddr); |
54 | CONFIG_PARSER_PROTOTYPE(config_parse_fdb_vlan_id); | |
c2c2793f | 55 | CONFIG_PARSER_PROTOTYPE(config_parse_fdb_destination); |
61b824c5 | 56 | CONFIG_PARSER_PROTOTYPE(config_parse_fdb_vxlan_vni); |
bdb397ed | 57 | CONFIG_PARSER_PROTOTYPE(config_parse_fdb_ntf_flags); |