diff options
author | Susant Sahani <susant@redhat.com> | 2017-04-25 15:12:56 +0200 |
---|---|---|
committer | Susant Sahani <susant@redhat.com> | 2017-04-25 15:16:04 +0200 |
commit | 3ded5bbfdac0f809632067a3643570848dc11000 (patch) | |
tree | 0eb784957efe4fd952c43fa41ddb2191145834b6 /src/network/netdev/geneve.c | |
parent | config parser: Introduce config_parse_uint8 (diff) | |
download | systemd-3ded5bbfdac0f809632067a3643570848dc11000.tar.xz systemd-3ded5bbfdac0f809632067a3643570848dc11000.zip |
networkd: replace geneve parsers with generic config_parse_uint8
Diffstat (limited to 'src/network/netdev/geneve.c')
-rw-r--r-- | src/network/netdev/geneve.c | 81 |
1 files changed, 16 insertions, 65 deletions
diff --git a/src/network/netdev/geneve.c b/src/network/netdev/geneve.c index bb9807b556..07c69f4711 100644 --- a/src/network/netdev/geneve.c +++ b/src/network/netdev/geneve.c @@ -201,71 +201,6 @@ int config_parse_geneve_vni(const char *unit, return 0; } -int config_parse_geneve_tos(const char *unit, - const char *filename, - unsigned line, - const char *section, - unsigned section_line, - const char *lvalue, - int ltype, - const char *rvalue, - void *data, - void *userdata) { - Geneve *v = userdata; - uint8_t f; - int r; - - assert(filename); - assert(lvalue); - assert(rvalue); - assert(data); - - r = safe_atou8(rvalue, &f); - if (r < 0) { - log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse Geneve TOS '%s'.", rvalue); - return 0; - } - - v->tos = f; - - return 0; -} - -int config_parse_geneve_ttl(const char *unit, - const char *filename, - unsigned line, - const char *section, - unsigned section_line, - const char *lvalue, - int ltype, - const char *rvalue, - void *data, - void *userdata) { - Geneve *v = userdata; - uint8_t f; - int r; - - assert(filename); - assert(lvalue); - assert(rvalue); - assert(data); - - r = safe_atou8(rvalue, &f); - if (r < 0) { - log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse Geneve TTL '%s'.", rvalue); - return 0; - } - - if (f == 0) { - log_syntax(unit, LOG_ERR, filename, line, r, "Invalid Geneve TTL '%s'.", rvalue); - return 0; - } - - v->ttl = f; - - return 0; -} - int config_parse_geneve_address(const char *unit, const char *filename, unsigned line, @@ -369,6 +304,21 @@ int config_parse_geneve_flow_label(const char *unit, return 0; } +static int netdev_geneve_verify(NetDev *netdev, const char *filename) { + Geneve *v = GENEVE(netdev); + + assert(netdev); + assert(v); + assert(filename); + + if (v->ttl == 0) { + log_warning("Invalid Geneve TTL value '0' configured in '%s'. Ignoring", filename); + return -EINVAL; + } + + return 0; +} + static void geneve_init(NetDev *netdev) { Geneve *v; @@ -391,4 +341,5 @@ const NetDevVTable geneve_vtable = { .sections = "Match\0NetDev\0GENEVE\0", .create = netdev_geneve_create, .create_type = NETDEV_CREATE_INDEPENDENT, + .config_verify = netdev_geneve_verify, }; |