diff options
author | Ben Pfaff <blp@nicira.com> | 2015-10-16 13:54:45 -0700 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2015-10-16 23:52:41 -0700 |
commit | 614404518f67812dbf35d30aca2686ebfd8f6aaa (patch) | |
tree | 79dd23c11be6824bed65141ba3b190dec1f518e5 /lib/meta-flow.c | |
parent | 8e3eb50e93ce19bca9dc9331db061fcc9ac28420 (diff) | |
download | openvswitch-614404518f67812dbf35d30aca2686ebfd8f6aaa.tar.gz |
packets: New function ip_parse_masked().
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Justin Pettit <jpettit@nicira.com>
Diffstat (limited to 'lib/meta-flow.c')
-rw-r--r-- | lib/meta-flow.c | 19 |
1 files changed, 1 insertions, 18 deletions
diff --git a/lib/meta-flow.c b/lib/meta-flow.c index 05878ac15..eaf4ca885 100644 --- a/lib/meta-flow.c +++ b/lib/meta-flow.c @@ -2042,25 +2042,8 @@ static char * mf_from_ipv4_string(const struct mf_field *mf, const char *s, ovs_be32 *ip, ovs_be32 *mask) { - int prefix; - ovs_assert(mf->n_bytes == sizeof *ip); - - if (ovs_scan(s, IP_SCAN_FMT"/"IP_SCAN_FMT, - IP_SCAN_ARGS(ip), IP_SCAN_ARGS(mask))) { - /* OK. */ - } else if (ovs_scan(s, IP_SCAN_FMT"/%d", IP_SCAN_ARGS(ip), &prefix)) { - if (prefix <= 0 || prefix > 32) { - return xasprintf("%s: network prefix bits not between 0 and " - "32", s); - } - *mask = be32_prefix_mask(prefix); - } else if (ovs_scan(s, IP_SCAN_FMT, IP_SCAN_ARGS(ip))) { - *mask = OVS_BE32_MAX; - } else { - return xasprintf("%s: invalid IP address", s); - } - return NULL; + return ip_parse_masked(s, ip, mask); } static char * |