Branch data Line data Source code
1 : : /* SPDX-License-Identifier: LGPL-2.1+ */ 2 : : #pragma once 3 : : 4 : : typedef struct Geneve Geneve; 5 : : 6 : : #include "in-addr-util.h" 7 : : #include "netdev.h" 8 : : #include "networkd-link.h" 9 : : #include "networkd-network.h" 10 : : 11 : : #define GENEVE_VID_MAX (1u << 24) - 1 12 : : 13 : : typedef enum GeneveDF { 14 : : NETDEV_GENEVE_DF_NO = GENEVE_DF_UNSET, 15 : : NETDEV_GENEVE_DF_YES = GENEVE_DF_SET, 16 : : NETDEV_GENEVE_DF_INHERIT = GENEVE_DF_INHERIT, 17 : : _NETDEV_GENEVE_DF_MAX, 18 : : _NETDEV_GENEVE_DF_INVALID = -1 19 : : } GeneveDF; 20 : : 21 : : struct Geneve { 22 : : NetDev meta; 23 : : 24 : : uint32_t id; 25 : : uint32_t flow_label; 26 : : 27 : : int remote_family; 28 : : 29 : : uint8_t tos; 30 : : uint8_t ttl; 31 : : 32 : : uint16_t dest_port; 33 : : 34 : : bool udpcsum; 35 : : bool udp6zerocsumtx; 36 : : bool udp6zerocsumrx; 37 : : bool inherit; 38 : : 39 : : GeneveDF geneve_df; 40 : : union in_addr_union remote; 41 : : }; 42 : : 43 [ # # # # : 0 : DEFINE_NETDEV_CAST(GENEVE, Geneve); # # ] 44 : : extern const NetDevVTable geneve_vtable; 45 : : 46 : : const char *geneve_df_to_string(GeneveDF d) _const_; 47 : : GeneveDF geneve_df_from_string(const char *d) _pure_; 48 : : 49 : : CONFIG_PARSER_PROTOTYPE(config_parse_geneve_vni); 50 : : CONFIG_PARSER_PROTOTYPE(config_parse_geneve_address); 51 : : CONFIG_PARSER_PROTOTYPE(config_parse_geneve_flow_label); 52 : : CONFIG_PARSER_PROTOTYPE(config_parse_geneve_df); 53 : : CONFIG_PARSER_PROTOTYPE(config_parse_geneve_ttl);