]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/shared/vlan-util.c
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
3 #include "conf-parser.h"
4 #include "parse-util.h"
5 #include "string-util.h"
8 int parse_vlanid(const char *p
, uint16_t *ret
) {
15 r
= safe_atou16(p
, &id
);
18 if (!vlanid_is_valid(id
))
25 int parse_vid_range(const char *p
, uint16_t *vid
, uint16_t *vid_end
) {
26 unsigned lower
, upper
;
29 r
= parse_range(p
, &lower
, &upper
);
33 if (lower
> VLANID_MAX
|| upper
> VLANID_MAX
|| lower
> upper
)
41 int config_parse_default_port_vlanid(
46 unsigned section_line
,
52 uint16_t *id
= ASSERT_PTR(data
);
57 if (streq(rvalue
, "none")) {
62 return config_parse_vlanid(unit
, filename
, line
, section
, section_line
,
63 lvalue
, ltype
, rvalue
, data
, userdata
);
66 int config_parse_vlanid(
71 unsigned section_line
,
78 uint16_t *id
= ASSERT_PTR(data
);
85 r
= parse_vlanid(rvalue
, id
);
87 log_syntax(unit
, LOG_WARNING
, filename
, line
, r
,
88 "VLAN identifier outside of valid range 0…4094, ignoring: %s", rvalue
);
92 log_syntax(unit
, LOG_WARNING
, filename
, line
, r
,
93 "Failed to parse VLAN identifier value, ignoring: %s", rvalue
);