]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/network/networkd-fdb.h
tree-wide: avoid some loaded terms
[thirdparty/systemd.git] / src / network / networkd-fdb.h
CommitLineData
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
15typedef struct Network Network;
16typedef struct FdbEntry FdbEntry;
17typedef struct Link Link;
1a75764a 18typedef struct NetworkConfigSection NetworkConfigSection;
fc2f9534 19
bdb397ed
SS
20typedef 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
29struct 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 45void fdb_entry_free(FdbEntry *fdb_entry);
a60a720c 46int fdb_entry_configure(Link *link, FdbEntry *fdb_entry);
fc2f9534 47
fcbf4cb7 48DEFINE_NETWORK_SECTION_FUNCTIONS(FdbEntry, fdb_entry_free);
fc2f9534 49
bdb397ed
SS
50const char* fdb_ntf_flags_to_string(NeighborCacheEntryFlags i) _const_;
51NeighborCacheEntryFlags fdb_ntf_flags_from_string(const char *s) _pure_;
52
a2106925
LP
53CONFIG_PARSER_PROTOTYPE(config_parse_fdb_hwaddr);
54CONFIG_PARSER_PROTOTYPE(config_parse_fdb_vlan_id);
c2c2793f 55CONFIG_PARSER_PROTOTYPE(config_parse_fdb_destination);
61b824c5 56CONFIG_PARSER_PROTOTYPE(config_parse_fdb_vxlan_vni);
bdb397ed 57CONFIG_PARSER_PROTOTYPE(config_parse_fdb_ntf_flags);