+static void
+str_to_tun_id(const char *str, ovs_be64 *tun_idp, ovs_be64 *maskp)
+{
+ uint64_t tun_id, mask;
+ char *tail;
+
+ errno = 0;
+ tun_id = strtoull(str, &tail, 0);
+ if (errno || (*tail != '\0' && *tail != '/')) {
+ goto error;
+ }
+
+ if (*tail == '/') {
+ mask = strtoull(tail + 1, &tail, 0);
+ if (errno || *tail != '\0') {
+ goto error;
+ }
+ } else {
+ mask = UINT64_MAX;
+ }
+
+ *tun_idp = htonll(tun_id);
+ *maskp = htonll(mask);
+ return;
+
+error:
+ ovs_fatal(0, "%s: bad syntax for tunnel id", str);
+}
+