network: re-implement parse_vid_range()

This commit is contained in:
Yu Watanabe
2019-07-05 16:35:06 +09:00
parent 7bbb43a79a
commit fb721f084c
3 changed files with 22 additions and 63 deletions
+16
View File
@@ -22,6 +22,22 @@ int parse_vlanid(const char *p, uint16_t *ret) {
return 0;
}
int parse_vid_range(const char *p, uint16_t *vid, uint16_t *vid_end) {
unsigned lower, upper;
int r;
r = parse_range(p, &lower, &upper);
if (r < 0)
return r;
if (lower > VLANID_MAX || upper > VLANID_MAX || lower > upper)
return -EINVAL;
*vid = lower;
*vid_end = upper;
return 0;
}
int config_parse_default_port_vlanid(
const char *unit,
const char *filename,
+1
View File
@@ -15,6 +15,7 @@ static inline bool vlanid_is_valid(uint16_t id) {
}
int parse_vlanid(const char *p, uint16_t *ret);
int parse_vid_range(const char *p, uint16_t *vid, uint16_t *vid_end);
CONFIG_PARSER_PROTOTYPE(config_parse_default_port_vlanid);
CONFIG_PARSER_PROTOTYPE(config_parse_vlanid);