git://git.onelab.eu
/
sliver-openvswitch.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of ssh://git.onelab.eu/git/sliver-openvswitch
[sliver-openvswitch.git]
/
utilities
/
ovs-ofctl.c
diff --git
a/utilities/ovs-ofctl.c
b/utilities/ovs-ofctl.c
index
7794043
..
ec775c7
100644
(file)
--- a/
utilities/ovs-ofctl.c
+++ b/
utilities/ovs-ofctl.c
@@
-368,21
+368,23
@@
open_vconn_socket(const char *name, struct vconn **vconnp)
return error;
}
return error;
}
+enum open_target { MGMT, SNOOP };
+
static enum ofputil_protocol
static enum ofputil_protocol
-open_vconn__(const char *name,
const char *default_suffix
,
+open_vconn__(const char *name,
enum open_target target
,
struct vconn **vconnp)
{
struct vconn **vconnp)
{
+ const char *suffix = target == MGMT ? "mgmt" : "snoop";
char *datapath_name, *datapath_type, *socket_name;
enum ofputil_protocol protocol;
char *bridge_path;
int ofp_version;
int error;
char *datapath_name, *datapath_type, *socket_name;
enum ofputil_protocol protocol;
char *bridge_path;
int ofp_version;
int error;
- bridge_path = xasprintf("%s/%s.%s", ovs_rundir(), name,
default_
suffix);
+ bridge_path = xasprintf("%s/%s.%s", ovs_rundir(), name, suffix);
ofproto_parse_name(name, &datapath_name, &datapath_type);
ofproto_parse_name(name, &datapath_name, &datapath_type);
- socket_name = xasprintf("%s/%s.%s",
- ovs_rundir(), datapath_name, default_suffix);
+ socket_name = xasprintf("%s/%s.%s", ovs_rundir(), datapath_name, suffix);
free(datapath_name);
free(datapath_type);
free(datapath_name);
free(datapath_type);
@@
-399,6
+401,10
@@
open_vconn__(const char *name, const char *default_suffix,
ovs_fatal(0, "%s is not a bridge or a socket", name);
}
ovs_fatal(0, "%s is not a bridge or a socket", name);
}
+ if (target == SNOOP) {
+ vconn_set_recv_any_version(*vconnp);
+ }
+
free(bridge_path);
free(socket_name);
free(bridge_path);
free(socket_name);
@@
-421,7
+427,7
@@
open_vconn__(const char *name, const char *default_suffix,
static enum ofputil_protocol
open_vconn(const char *name, struct vconn **vconnp)
{
static enum ofputil_protocol
open_vconn(const char *name, struct vconn **vconnp)
{
- return open_vconn__(name,
"mgmt"
, vconnp);
+ return open_vconn__(name,
MGMT
, vconnp);
}
static void
}
static void
@@
-1456,7
+1462,7
@@
ofctl_snoop(int argc OVS_UNUSED, char *argv[])
{
struct vconn *vconn;
{
struct vconn *vconn;
- open_vconn__(argv[1],
"snoop"
, &vconn);
+ open_vconn__(argv[1],
SNOOP
, &vconn);
monitor_vconn(vconn);
}
monitor_vconn(vconn);
}
@@
-2176,7
+2182,7
@@
ofctl_parse_flows__(struct ofputil_flow_mod *fms, size_t n_fms)
break;
}
}
break;
}
}
- ovs_assert(
IS_POW
2(protocol));
+ ovs_assert(
is_pow
2(protocol));
printf("chosen protocol: %s\n", ofputil_protocol_to_string(protocol));
printf("chosen protocol: %s\n", ofputil_protocol_to_string(protocol));