projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cfm: Don't report unexpected remote endpoints.
[openvswitch]
/
lib
/
netdev-vport.c
diff --git
a/lib/netdev-vport.c
b/lib/netdev-vport.c
index ae043c266a8df9bc2d6c2c3060bf9a37d4409a86..39a1bb94d47604105a5e56f21e07554ef6e76749 100644
(file)
--- a/
lib/netdev-vport.c
+++ b/
lib/netdev-vport.c
@@
-26,6
+26,8
@@
#include <sys/ioctl.h>
#include "byte-order.h"
#include <sys/ioctl.h>
#include "byte-order.h"
+#include "daemon.h"
+#include "dirs.h"
#include "dpif-linux.h"
#include "hash.h"
#include "hmap.h"
#include "dpif-linux.h"
#include "hash.h"
#include "hmap.h"
@@
-502,7
+504,7
@@
netdev_vport_poll_add(struct netdev *netdev,
struct list *list;
struct shash_node *shash_node;
struct list *list;
struct shash_node *shash_node;
- shash_node = shash_find
_data
(&netdev_vport_notifiers, poll_name);
+ shash_node = shash_find(&netdev_vport_notifiers, poll_name);
if (!shash_node) {
list = xmalloc(sizeof *list);
list_init(list);
if (!shash_node) {
list = xmalloc(sizeof *list);
list_init(list);
@@
-693,8
+695,8
@@
parse_tunnel_config(const char *name, const char *type,
*/
use_ssl_cert = shash_find_data(args, "use_ssl_cert");
if (!use_ssl_cert || strcmp(use_ssl_cert, "true")) {
*/
use_ssl_cert = shash_find_data(args, "use_ssl_cert");
if (!use_ssl_cert || strcmp(use_ssl_cert, "true")) {
- VLOG_
WARN
("%s: 'peer_cert' requires 'certificate' argument",
-
name);
+ VLOG_
ERR
("%s: 'peer_cert' requires 'certificate' argument",
+ name);
return EINVAL;
}
ipsec_mech_set = true;
return EINVAL;
}
ipsec_mech_set = true;
@@
-706,8
+708,8
@@
parse_tunnel_config(const char *name, const char *type,
|| !strcmp(node->name, "private_key")
|| !strcmp(node->name, "use_ssl_cert"))) {
/* Ignore options not used by the netdev. */
|| !strcmp(node->name, "private_key")
|| !strcmp(node->name, "use_ssl_cert"))) {
/* Ignore options not used by the netdev. */
- } else if (is_gre && (!strcmp(node->name, "key")
&&
- !strcmp(node->name, "in_key")
&&
+ } else if (is_gre && (!strcmp(node->name, "key")
||
+ !strcmp(node->name, "in_key")
||
!strcmp(node->name, "out_key"))) {
/* Handled separately below. */
} else {
!strcmp(node->name, "out_key"))) {
/* Handled separately below. */
} else {
@@
-716,14
+718,24
@@
parse_tunnel_config(const char *name, const char *type,
}
if (is_ipsec) {
}
if (is_ipsec) {
+ char *file_name = xasprintf("%s/%s", ovs_rundir(),
+ "ovs-monitor-ipsec.pid");
+ pid_t pid = read_pidfile(file_name);
+ free(file_name);
+ if (pid < 0) {
+ VLOG_ERR("%s: IPsec requires the ovs-monitor-ipsec daemon",
+ name);
+ return EINVAL;
+ }
+
if (shash_find(args, "peer_cert") && shash_find(args, "psk")) {
if (shash_find(args, "peer_cert") && shash_find(args, "psk")) {
- VLOG_
WARN
("%s: cannot define both 'peer_cert' and 'psk'", name);
+ VLOG_
ERR
("%s: cannot define both 'peer_cert' and 'psk'", name);
return EINVAL;
}
if (!ipsec_mech_set) {
return EINVAL;
}
if (!ipsec_mech_set) {
- VLOG_
WARN
("%s: IPsec requires an 'peer_cert' or psk' argument",
-
name);
+ VLOG_
ERR
("%s: IPsec requires an 'peer_cert' or psk' argument",
+ name);
return EINVAL;
}
}
return EINVAL;
}
}
@@
-734,8
+746,8
@@
parse_tunnel_config(const char *name, const char *type,
}
if (!daddr) {
}
if (!daddr) {
- VLOG_
WARN
("%s: %s type requires valid 'remote_ip' argument",
-
name, type);
+ VLOG_
ERR
("%s: %s type requires valid 'remote_ip' argument",
+ name, type);
return EINVAL;
}
nl_msg_put_be32(options, ODP_TUNNEL_ATTR_DST_IPV4, daddr);
return EINVAL;
}
nl_msg_put_be32(options, ODP_TUNNEL_ATTR_DST_IPV4, daddr);
@@
-858,22
+870,22
@@
parse_patch_config(const char *name, const char *type OVS_UNUSED,
peer = shash_find_data(args, "peer");
if (!peer) {
peer = shash_find_data(args, "peer");
if (!peer) {
- VLOG_
WARN
("%s: patch type requires valid 'peer' argument", name);
+ VLOG_
ERR
("%s: patch type requires valid 'peer' argument", name);
return EINVAL;
}
if (shash_count(args) > 1) {
return EINVAL;
}
if (shash_count(args) > 1) {
- VLOG_
WARN
("%s: patch type takes only a 'peer' argument", name);
+ VLOG_
ERR
("%s: patch type takes only a 'peer' argument", name);
return EINVAL;
}
if (strlen(peer) >= IFNAMSIZ) {
return EINVAL;
}
if (strlen(peer) >= IFNAMSIZ) {
- VLOG_
WARN
("%s: patch 'peer' arg too long", name);
+ VLOG_
ERR
("%s: patch 'peer' arg too long", name);
return EINVAL;
}
if (!strcmp(name, peer)) {
return EINVAL;
}
if (!strcmp(name, peer)) {
- VLOG_
WARN
("%s: patch peer must not be self", name);
+ VLOG_
ERR
("%s: patch peer must not be self", name);
return EINVAL;
}
return EINVAL;
}