projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Create /etc/openvswitch dir when package is installed.
[openvswitch]
/
datapath
/
vport-internal_dev.c
diff --git
a/datapath/vport-internal_dev.c
b/datapath/vport-internal_dev.c
index 6cbfdf80db3bc1172268f5f3032db023a98cd199..84b90b57191a508b33c09d01704a966705101ed8 100644
(file)
--- a/
datapath/vport-internal_dev.c
+++ b/
datapath/vport-internal_dev.c
@@
-82,6
+82,7
@@
static int internal_dev_xmit(struct sk_buff *skb, struct net_device *netdev)
skb_reset_mac_header(skb);
compute_ip_summed(skb, true);
skb_reset_mac_header(skb);
compute_ip_summed(skb, true);
+ OVS_CB(skb)->flow = NULL;
vport_receive(vport, skb);
vport_receive(vport, skb);
@@
-293,7
+294,7
@@
static int internal_dev_recv(struct vport *vport, struct sk_buff *skb)
struct vport_ops internal_vport_ops = {
.type = "internal",
struct vport_ops internal_vport_ops = {
.type = "internal",
- .flags = VPORT_F_REQUIRED | VPORT_F_GEN_STATS,
+ .flags = VPORT_F_REQUIRED | VPORT_F_GEN_STATS
| VPORT_F_FLOW
,
.create = internal_dev_create,
.destroy = internal_dev_destroy,
.attach = internal_dev_attach,
.create = internal_dev_create,
.destroy = internal_dev_destroy,
.attach = internal_dev_attach,
@@
-328,6
+329,11
@@
int is_internal_vport(const struct vport *vport)
struct vport *internal_dev_get_vport(struct net_device *netdev)
{
struct vport *internal_dev_get_vport(struct net_device *netdev)
{
- struct internal_dev *internal_dev = internal_dev_priv(netdev);
+ struct internal_dev *internal_dev;
+
+ if (!is_internal_dev(netdev))
+ return NULL;
+
+ internal_dev = internal_dev_priv(netdev);
return rcu_dereference(internal_dev->attached_vport);
}
return rcu_dereference(internal_dev->attached_vport);
}