summaryrefslogtreecommitdiff
path: root/lib/meta-flow.c
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2015-10-16 13:54:45 -0700
committerBen Pfaff <blp@nicira.com>2015-10-16 23:52:41 -0700
commit614404518f67812dbf35d30aca2686ebfd8f6aaa (patch)
tree79dd23c11be6824bed65141ba3b190dec1f518e5 /lib/meta-flow.c
parent8e3eb50e93ce19bca9dc9331db061fcc9ac28420 (diff)
downloadopenvswitch-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.c19
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 *