#include_next <linux/if.h>
-#include <linux/version.h>
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
-
-#define IFF_XMIT_DST_RELEASE 0
-
-#endif /* linux kernel < 2.6.31 */
-
#ifndef IFF_TX_SKB_SHARING
#define IFF_TX_SKB_SHARING 0
#endif
#include_next <net/ip.h>
#include <linux/version.h>
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
-
-extern int __ip_local_out(struct sk_buff *skb);
-extern int ip_local_out(struct sk_buff *skb);
-
-#endif /* linux kernel < 2.6.25 */
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)
static inline bool ip_is_fragment(const struct iphdr *iph)
struct internal_dev {
struct vport *vport;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
- struct net_device_stats stats;
-#endif
};
static struct internal_dev *internal_dev_priv(struct net_device *netdev)
#else
static struct net_device_stats *internal_dev_sys_stats(struct net_device *netdev)
{
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
- struct net_device_stats *stats = &internal_dev_priv(netdev)->stats;
-#else
struct net_device_stats *stats = &netdev->stats;
-#endif
#endif
struct vport *vport = ovs_internal_dev_get_vport(netdev);
struct ovs_vport_stats vport_stats;
netdev->features = NETIF_F_LLTX | NETIF_F_SG | NETIF_F_FRAGLIST |
NETIF_F_HIGHDMA | NETIF_F_HW_CSUM | NETIF_F_TSO;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
netdev->vlan_features = netdev->features;
netdev->features |= NETIF_F_HW_VLAN_CTAG_TX;
-#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)
netdev->hw_features = netdev->features & ~NETIF_F_LLTX;
netif_rx(skb);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
- netdev->last_rx = jiffies;
-#endif
-
return len;
}
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/version.h>
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
#include <linux/in.h>
#include <linux/ip.h>
.get_options = lisp_get_options,
.send = lisp_tnl_send,
};
-#else
-#warning LISP tunneling will not be available on kernels before 2.6.26
-#endif /* Linux kernel < 2.6.26 */
return NULL;
}
-#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)
/*
* Used as br_handle_frame_hook. (Cannot run bridge at the same time, even on
* different set of devices!)
netdev_port_receive((struct vport *)p, skb);
return NULL;
}
-#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
-/*
- * Used as br_handle_frame_hook. (Cannot run bridge at the same time, even on
- * different set of devices!)
- */
-/* Called with rcu_read_lock and bottom-halves disabled. */
-static int netdev_frame_hook(struct net_bridge_port *p, struct sk_buff **pskb)
-{
- netdev_port_receive((struct vport *)p, *pskb);
- return 1;
-}
#else
#error
#endif
goto error_master_upper_dev_unlink;
dev_set_promiscuity(netdev_vport->dev, 1);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
- dev_disable_lro(netdev_vport->dev);
-#endif
netdev_vport->dev->priv_flags |= IFF_OVS_DATAPATH;
rtnl_unlock();
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/version.h>
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
#include <linux/in.h>
#include <linux/ip.h>
.get_options = vxlan_get_options,
.send = vxlan_tnl_send,
};
-#else
-#warning VXLAN tunneling will not be available on kernels before 2.6.26
-#endif /* Linux kernel < 2.6.26 */
&ovs_gre_vport_ops,
&ovs_gre64_vport_ops,
#endif
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
&ovs_vxlan_vport_ops,
&ovs_lisp_vport_ops,
-#endif
};
/* Protected by RCU read lock for reading, ovs_mutex for writing. */
An Ethernet tunnel over the experimental, UDP-based VXLAN
protocol described at
<code>http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-03</code>.
- VXLAN is currently supported only with the Linux kernel datapath
- with kernel version 2.6.26 or later.
</p>
<p>
Open vSwitch uses UDP destination port 4789. The source port used for
<dt><code>lisp</code></dt>
<dd>
A layer 3 tunnel over the experimental, UDP-based Locator/ID
- Separation Protocol (RFC 6830). LISP is currently supported only
- with the Linux kernel datapath with kernel version 2.6.26 or later.
+ Separation Protocol (RFC 6830).
</dd>
<dt><code>patch</code></dt>