X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=datapath%2Fvport.c;h=e9e144453b9c8093e0d391f52de6d15495d8a867;hb=2c57a420432de88b8a6f9ee54642c3841577ad7b;hp=9c0942b4ba7a1333282404c558c1266afb4a15ee;hpb=f18a39b73a3548dd646f274f7555e07926c74371;p=sliver-openvswitch.git diff --git a/datapath/vport.c b/datapath/vport.c index 9c0942b4b..e9e144453 100644 --- a/datapath/vport.c +++ b/datapath/vport.c @@ -42,8 +42,8 @@ static const struct vport_ops *base_vport_ops_list[] = { &ovs_gre_vport_ops, &ovs_gre64_vport_ops, #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) - &ovs_capwap_vport_ops, &ovs_vxlan_vport_ops, + &ovs_lisp_vport_ops, #endif }; @@ -139,9 +139,8 @@ struct vport *ovs_vport_locate(struct net *net, const char *name) { struct hlist_head *bucket = hash_bucket(net, name); struct vport *vport; - struct hlist_node *node; - hlist_for_each_entry_rcu(vport, node, bucket, hash_node) + hlist_for_each_entry_rcu(vport, bucket, hash_node) if (!strcmp(name, vport->ops->get_name(vport)) && net_eq(ovs_dp_get_net(vport->dp), net)) return vport; @@ -379,17 +378,19 @@ void ovs_vport_get_stats(struct vport *vport, struct ovs_vport_stats *stats) int ovs_vport_get_options(const struct vport *vport, struct sk_buff *skb) { struct nlattr *nla; + int err; + + if (!vport->ops->get_options) + return 0; nla = nla_nest_start(skb, OVS_VPORT_ATTR_OPTIONS); if (!nla) return -EMSGSIZE; - if (vport->ops->get_options) { - int err = vport->ops->get_options(vport, skb); - if (err) { - nla_nest_cancel(skb, nla); - return err; - } + err = vport->ops->get_options(vport, skb); + if (err) { + nla_nest_cancel(skb, nla); + return err; } nla_nest_end(skb, nla); @@ -416,9 +417,6 @@ void ovs_vport_receive(struct vport *vport, struct sk_buff *skb) stats->rx_bytes += skb->len; u64_stats_update_end(&stats->sync); - if (!(vport->ops->flags & VPORT_F_FLOW)) - OVS_CB(skb)->flow = NULL; - if (!(vport->ops->flags & VPORT_F_TUN_ID)) OVS_CB(skb)->tun_key = NULL;