+v1.0.1 - 31 May 2010
+--------------------
+ - New "patch" interface type
+ - Bug fixes
+
v1.0.0 - 15 May 2010
--------------------
- Configuration database with remote management
BUILT_SOURCES =
CLEANFILES =
DISTCLEANFILES =
-EXTRA_DIST = INSTALL.bridge \
+EXTRA_DIST = \
+ CodingStyle \
INSTALL.KVM \
INSTALL.Linux \
- INSTALL.userspace \
INSTALL.OpenFlow \
INSTALL.SSL \
INSTALL.XenServer \
- README-gcov
+ INSTALL.bridge \
+ INSTALL.userspace \
+ NOTICE \
+ README-gcov \
+ REPORTING-BUGS \
+ SubmittingPatches \
+ boot.sh
bin_PROGRAMS =
sbin_PROGRAMS =
bin_SCRIPTS =
+DIST_HOOKS =
dist_man_MANS =
dist_pkgdata_DATA =
dist_pkgdata_SCRIPTS =
OVSIDL_BUILT =
SUFFIXES =
-EXTRA_DIST += soexpand.pl
+EXTRA_DIST += \
+ build-aux/update-debian-changelog \
+ soexpand.pl
ro_c = echo '/* -*- mode: c; buffer-read-only: t -*- */'
fi
mv $@.tmp $@
+# If we're checked out from a Git repository, make sure that every
+# file that is in Git is distributed.
+dist-hook-git:
+ if test -e $(srcdir)/.git && (git --version) >/dev/null 2>&1; then \
+ rc=0; \
+ for d in `cd $(srcdir) && git ls-files`; do \
+ if test ! -e $(distdir)/$$d; then \
+ case $$d in # ( \
+ .gitignore|*/.gitignore) ;; # ( \
+ *) \
+ if test $$rc = 0; then \
+ echo "The distribution is missing the following files:"; \
+ rc=1; \
+ fi; \
+ echo "$$d"; \
+ ;; \
+ esac; \
+ fi \
+ done; \
+ exit $$rc; \
+ fi
+DIST_HOOKS += dist-hook-git
+
+dist-hook: $(DIST_HOOKS)
+.PHONY: $(DIST_HOOKS)
+
include lib/automake.mk
include ofproto/automake.mk
include utilities/automake.mk
include ovsdb/automake.mk
include xenserver/automake.mk
include extras/ezio/automake.mk
+
OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h],
[skb_copy_from_linear_data_offset],
[OVS_DEFINE([HAVE_SKB_COPY_FROM_LINEAR_DATA_OFFSET])])
- OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h], [skb_cow],
- [OVS_DEFINE([HAVE_SKB_COW])])
+ OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h], [skb_cow_head],
+ [OVS_DEFINE([HAVE_SKB_COW_HEAD])])
OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h], [skb_transport_header],
[OVS_DEFINE([HAVE_SKBUFF_HEADER_HELPERS])])
OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h], [skb_warn_if_lro],
#! /bin/sh
autoreconf --install --force
+
+# Ensure that debian/changelog is up-to-date.
+VERSION=`autom4te --language=autoconf -t 'AC_INIT:$2' configure.ac`
+build-aux/update-debian-changelog debian/changelog "$VERSION"
--- /dev/null
+#! /bin/sh
+
+if test $# != 2; then
+ cat <<EOF
+$0, to update version information a Debian changelog
+usage: $0 CHANGELOG VERSION
+
+This utility checks whether CHANGELOG, which should be a Debian changelog
+file, contains a record for VERSION. If not, then it adds one at the top.
+EOF
+ exit 1
+fi
+
+CHANGELOG=$1
+VERSION=$2
+if test ! -e "$CHANGELOG"; then
+ echo "$0: $CHANGELOG does not exist (use --help for help"
+ exit 1
+fi
+
+if grep '('$VERSION')' debian/changelog >/dev/null 2>&1; then
+ :
+else
+ echo "Adding change log record for $VERSION to $CHANGELOG"
+ {
+ cat <<EOF
+openvswitch ($VERSION) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Open vSwitch team <dev@openvswitch.org> `date -u +"%a, %d %b %Y %H:%M:%S +0000"`
+
+EOF
+ cat "$CHANGELOG"
+ } > "$CHANGELOG".new
+ mv "$CHANGELOG".new "$CHANGELOG"
+fi
# limitations under the License.
AC_PREREQ(2.64)
-AC_INIT(openvswitch, 1.0.0, ovs-bugs@openvswitch.org)
+AC_INIT(openvswitch, 1.0.1, ovs-bugs@openvswitch.org)
NX_BUILDNR
AC_CONFIG_SRCDIR([datapath/datapath.c])
AC_CONFIG_MACRO_DIR([m4])
if (copy_from_user(&pg, upg, sizeof pg))
return -EFAULT;
- return do_get_port_group(dp, pg.ports, pg.n_ports, pg.group, &pg.n_ports);
+ return do_get_port_group(dp, pg.ports, pg.n_ports, pg.group, &upg->n_ports);
}
static int get_listen_mask(const struct file *f)
return -EFAULT;
return do_get_port_group(dp, compat_ptr(pg.ports), pg.n_ports,
- pg.group, &pg.n_ports);
+ pg.group, &upg->n_ports);
}
static int compat_get_flow(struct xflow_flow *flow, const struct compat_xflow_flow __user *compat)
#include <linux/types.h>
#include <linux/rcupdate.h>
#include <linux/gfp.h>
+#include <linux/time.h>
#include "openvswitch/xflow.h"
#include "table.h"
#define __LINUX_IF_VLAN_WRAPPER_H 1
#include_next <linux/if_vlan.h>
+#include <linux/skbuff.h>
/* All of these were introduced in a single commit preceding 2.6.33, so
* presumably all of them or none of them are present. */
#define VLAN_TAG_PRESENT VLAN_CFI_MASK
#endif
-#endif
+/*
+ * The behavior of __vlan_put_tag() has changed over time:
+ *
+ * - In 2.6.26 and earlier, it adjusted both MAC and network header
+ * pointers. (The latter didn't make any sense.)
+ *
+ * - In 2.6.27 and 2.6.28, it did not adjust any header pointers at all.
+ *
+ * - In 2.6.29 and later, it adjusts the MAC header pointer only.
+ *
+ * This is the version from 2.6.33. We unconditionally substitute this version
+ * to avoid the need to guess whether the version in the kernel tree is
+ * acceptable.
+ */
+#define __vlan_put_tag rpl_vlan_put_tag
+static inline struct sk_buff *__vlan_put_tag(struct sk_buff *skb, u16 vlan_tci)
+{
+ struct vlan_ethhdr *veth;
+
+ if (skb_cow_head(skb, VLAN_HLEN) < 0) {
+ kfree_skb(skb);
+ return NULL;
+ }
+ veth = (struct vlan_ethhdr *)skb_push(skb, VLAN_HLEN);
+
+ /* Move the mac addresses to the beginning of the new header. */
+ memmove(skb->data, skb->data + VLAN_HLEN, 2 * VLAN_ETH_ALEN);
+ skb->mac_header -= VLAN_HLEN;
+
+ /* first, the ethernet type */
+ veth->h_vlan_proto = htons(ETH_P_8021Q);
+
+ /* now, the TCI */
+ veth->h_vlan_TCI = htons(vlan_tci);
+
+ skb->protocol = htons(ETH_P_8021Q);
+
+ return skb;
+}
+
+#endif /* linux/if_vlan.h wrapper */
#define NET_SKB_PAD 16
#endif
-#ifndef HAVE_SKB_COW
+#ifndef HAVE_SKB_COW_HEAD
static inline int __skb_cow(struct sk_buff *skb, unsigned int headroom,
int cloned)
{
{
return __skb_cow(skb, headroom, skb_header_cloned(skb));
}
-#endif /* !HAVE_SKB_COW */
+#endif /* !HAVE_SKB_COW_HEAD */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
static inline int skb_clone_writable(struct sk_buff *skb, int len)
+++ /dev/null
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.23-rc9
-# Fri Oct 19 15:08:37 2007
-#
-CONFIG_X86_32=y
-CONFIG_GENERIC_TIME=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_CLOCKSOURCE_WATCHDOG=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_SEMAPHORE_SLEEPERS=y
-CONFIG_X86=y
-CONFIG_MMU=y
-CONFIG_ZONE_DMA=y
-CONFIG_QUICKLIST=y
-CONFIG_GENERIC_ISA_DMA=y
-CONFIG_GENERIC_IOMAP=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-CONFIG_DMI=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_LOCK_KERNEL=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_BSD_PROCESS_ACCT=y
-# CONFIG_BSD_PROCESS_ACCT_V3 is not set
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-# CONFIG_USER_NS is not set
-# CONFIG_AUDIT is not set
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_CPUSETS is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SYSCTL=y
-# CONFIG_EMBEDDED is not set
-CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_KALLSYMS_EXTRA_PASS=y
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_ANON_INODES=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-CONFIG_RT_MUTEXES=y
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-CONFIG_STOP_MACHINE=y
-CONFIG_BLOCK=y
-CONFIG_LBD=y
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_LSF=y
-# CONFIG_BLK_DEV_BSG is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-CONFIG_DEFAULT_AS=y
-# CONFIG_DEFAULT_DEADLINE is not set
-# CONFIG_DEFAULT_CFQ is not set
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="anticipatory"
-
-#
-# Processor type and features
-#
-# CONFIG_TICK_ONESHOT is not set
-# CONFIG_NO_HZ is not set
-# CONFIG_HIGH_RES_TIMERS is not set
-CONFIG_SMP=y
-CONFIG_X86_PC=y
-# CONFIG_X86_ELAN is not set
-# CONFIG_X86_VOYAGER is not set
-# CONFIG_X86_NUMAQ is not set
-# CONFIG_X86_SUMMIT is not set
-# CONFIG_X86_BIGSMP is not set
-# CONFIG_X86_VISWS is not set
-# CONFIG_X86_GENERICARCH is not set
-# CONFIG_X86_ES7000 is not set
-# CONFIG_PARAVIRT is not set
-# CONFIG_M386 is not set
-CONFIG_M486=y
-# CONFIG_M586 is not set
-# CONFIG_M586TSC is not set
-# CONFIG_M586MMX is not set
-# CONFIG_M686 is not set
-# CONFIG_MPENTIUMII is not set
-# CONFIG_MPENTIUMIII is not set
-# CONFIG_MPENTIUMM is not set
-# CONFIG_MCORE2 is not set
-# CONFIG_MPENTIUM4 is not set
-# CONFIG_MK6 is not set
-# CONFIG_MK7 is not set
-# CONFIG_MK8 is not set
-# CONFIG_MCRUSOE is not set
-# CONFIG_MEFFICEON is not set
-# CONFIG_MWINCHIPC6 is not set
-# CONFIG_MWINCHIP2 is not set
-# CONFIG_MWINCHIP3D is not set
-# CONFIG_MGEODEGX1 is not set
-# CONFIG_MGEODE_LX is not set
-# CONFIG_MCYRIXIII is not set
-# CONFIG_MVIAC3_2 is not set
-# CONFIG_MVIAC7 is not set
-CONFIG_X86_GENERIC=y
-CONFIG_X86_CMPXCHG=y
-CONFIG_X86_L1_CACHE_SHIFT=7
-CONFIG_X86_XADD=y
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_X86_PPRO_FENCE=y
-CONFIG_X86_F00F_BUG=y
-CONFIG_X86_WP_WORKS_OK=y
-CONFIG_X86_INVLPG=y
-CONFIG_X86_BSWAP=y
-CONFIG_X86_POPAD_OK=y
-CONFIG_X86_ALIGNMENT_16=y
-CONFIG_X86_INTEL_USERCOPY=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=4
-# CONFIG_HPET_TIMER is not set
-CONFIG_NR_CPUS=8
-# CONFIG_SCHED_SMT is not set
-CONFIG_SCHED_MC=y
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-CONFIG_PREEMPT_BKL=y
-CONFIG_X86_LOCAL_APIC=y
-CONFIG_X86_IO_APIC=y
-# CONFIG_X86_MCE is not set
-CONFIG_VM86=y
-# CONFIG_TOSHIBA is not set
-# CONFIG_I8K is not set
-# CONFIG_X86_REBOOTFIXUPS is not set
-# CONFIG_MICROCODE is not set
-# CONFIG_X86_MSR is not set
-# CONFIG_X86_CPUID is not set
-
-#
-# Firmware Drivers
-#
-# CONFIG_EDD is not set
-# CONFIG_DELL_RBU is not set
-# CONFIG_DCDBAS is not set
-CONFIG_DMIID=y
-# CONFIG_NOHIGHMEM is not set
-CONFIG_HIGHMEM4G=y
-# CONFIG_HIGHMEM64G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_HIGHMEM=y
-CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ARCH_POPULATES_NODE_MAP=y
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_SPARSEMEM_STATIC=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_RESOURCES_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_BOUNCE=y
-CONFIG_NR_QUICK=1
-CONFIG_VIRT_TO_BUS=y
-# CONFIG_HIGHPTE is not set
-# CONFIG_MATH_EMULATION is not set
-# CONFIG_MTRR is not set
-CONFIG_IRQBALANCE=y
-CONFIG_SECCOMP=y
-# CONFIG_HZ_100 is not set
-CONFIG_HZ_250=y
-# CONFIG_HZ_300 is not set
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=250
-# CONFIG_KEXEC is not set
-# CONFIG_CRASH_DUMP is not set
-CONFIG_PHYSICAL_START=0x100000
-# CONFIG_RELOCATABLE is not set
-CONFIG_PHYSICAL_ALIGN=0x100000
-CONFIG_HOTPLUG_CPU=y
-CONFIG_COMPAT_VDSO=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-
-#
-# Power management options (ACPI, APM)
-#
-CONFIG_PM=y
-# CONFIG_PM_LEGACY is not set
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP_SMP=y
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND_SMP_POSSIBLE=y
-CONFIG_SUSPEND=y
-CONFIG_HIBERNATION_SMP_POSSIBLE=y
-# CONFIG_HIBERNATION is not set
-# CONFIG_ACPI is not set
-CONFIG_APM=y
-# CONFIG_APM_IGNORE_USER_SUSPEND is not set
-# CONFIG_APM_DO_ENABLE is not set
-# CONFIG_APM_CPU_IDLE is not set
-# CONFIG_APM_DISPLAY_BLANK is not set
-# CONFIG_APM_ALLOW_INTS is not set
-# CONFIG_APM_REAL_MODE_POWER_OFF is not set
-
-#
-# CPU Frequency scaling
-#
-# CONFIG_CPU_FREQ is not set
-
-#
-# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-#
-CONFIG_PCI=y
-# CONFIG_PCI_GOBIOS is not set
-# CONFIG_PCI_GOMMCONFIG is not set
-# CONFIG_PCI_GODIRECT is not set
-CONFIG_PCI_GOANY=y
-CONFIG_PCI_BIOS=y
-CONFIG_PCI_DIRECT=y
-# CONFIG_PCIEPORTBUS is not set
-CONFIG_ARCH_SUPPORTS_MSI=y
-# CONFIG_PCI_MSI is not set
-# CONFIG_PCI_DEBUG is not set
-CONFIG_HT_IRQ=y
-CONFIG_ISA_DMA_API=y
-CONFIG_ISA=y
-# CONFIG_EISA is not set
-# CONFIG_MCA is not set
-# CONFIG_SCx200 is not set
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-# CONFIG_HOTPLUG_PCI is not set
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_AOUT is not set
-CONFIG_BINFMT_MISC=m
-
-#
-# Networking
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_MIGRATE=y
-CONFIG_NET_KEY=m
-CONFIG_NET_KEY_MIGRATE=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_ASK_IP_FIB_HASH=y
-# CONFIG_IP_FIB_TRIE is not set
-CONFIG_IP_FIB_HASH=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-# CONFIG_IP_ROUTE_VERBOSE is not set
-# CONFIG_IP_PNP is not set
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-# CONFIG_ARPD is not set
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-# CONFIG_DEFAULT_BIC is not set
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_HTCP is not set
-# CONFIG_DEFAULT_VEGAS is not set
-# CONFIG_DEFAULT_WESTWOOD is not set
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-# CONFIG_IP_VS is not set
-CONFIG_IPV6=m
-CONFIG_IPV6_PRIVACY=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-# CONFIG_IPV6_MIP6 is not set
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_BRIDGE_NETFILTER=y
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NF_CONNTRACK_ENABLED=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-# CONFIG_NF_CT_PROTO_UDPLITE is not set
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NETFILTER_XTABLES=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
-# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
-# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-# CONFIG_NETFILTER_XT_MATCH_U32 is not set
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
-# CONFIG_IP_NF_QUEUE is not set
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_IPRANGE=m
-CONFIG_IP_NF_MATCH_TOS=m
-CONFIG_IP_NF_MATCH_RECENT=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_MATCH_OWNER=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_SAME=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_TOS=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-
-#
-# IPv6: Netfilter Configuration (EXPERIMENTAL)
-#
-CONFIG_NF_CONNTRACK_IPV6=m
-# CONFIG_IP6_NF_QUEUE is not set
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_OWNER=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_LOG=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_RAW=m
-
-#
-# DECnet: Netfilter Configuration
-#
-# CONFIG_DECNET_NF_GRABULATOR is not set
-
-#
-# Bridge: Netfilter Configuration
-#
-# CONFIG_BRIDGE_NF_EBTABLES is not set
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-CONFIG_IP_DCCP_ACKVEC=y
-
-#
-# DCCP CCIDs Configuration (EXPERIMENTAL)
-#
-CONFIG_IP_DCCP_CCID2=m
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-CONFIG_IP_DCCP_CCID3=m
-CONFIG_IP_DCCP_TFRC_LIB=m
-# CONFIG_IP_DCCP_CCID3_DEBUG is not set
-CONFIG_IP_DCCP_CCID3_RTO=100
-
-#
-# DCCP Kernel Hacking
-#
-# CONFIG_IP_DCCP_DEBUG is not set
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_MSG is not set
-# CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_HMAC_NONE is not set
-# CONFIG_SCTP_HMAC_SHA1 is not set
-CONFIG_SCTP_HMAC_MD5=y
-CONFIG_TIPC=m
-CONFIG_TIPC_ADVANCED=y
-CONFIG_TIPC_ZONES=3
-CONFIG_TIPC_CLUSTERS=1
-CONFIG_TIPC_NODES=255
-CONFIG_TIPC_SLAVE_NODES=0
-CONFIG_TIPC_PORTS=8191
-CONFIG_TIPC_LOG=0
-# CONFIG_TIPC_DEBUG is not set
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-# CONFIG_ATM_MPOA is not set
-CONFIG_ATM_BR2684=m
-CONFIG_ATM_BR2684_IPFILTER=y
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-CONFIG_DECNET=m
-# CONFIG_DECNET_ROUTER is not set
-CONFIG_LLC=m
-CONFIG_LLC2=m
-CONFIG_IPX=m
-CONFIG_IPX_INTERN=y
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-# CONFIG_LTPC is not set
-# CONFIG_COPS is not set
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-CONFIG_IPDDP_DECAP=y
-CONFIG_X25=m
-CONFIG_LAPB=m
-CONFIG_ECONET=m
-CONFIG_ECONET_AUNUDP=y
-CONFIG_ECONET_NATIVE=y
-CONFIG_WAN_ROUTER=m
-
-#
-# QoS and/or fair queueing
-#
-CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_FIFO=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_NET_SCH_PRIO=m
-# CONFIG_NET_SCH_RR is not set
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_INGRESS=m
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_PERF=y
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-# CONFIG_NET_CLS_POLICE is not set
-CONFIG_NET_CLS_IND=y
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-CONFIG_AF_RXRPC=m
-# CONFIG_AF_RXRPC_DEBUG is not set
-CONFIG_RXKAD=m
-CONFIG_FIB_RULES=y
-
-#
-# Wireless
-#
-# CONFIG_CFG80211 is not set
-# CONFIG_WIRELESS_EXT is not set
-# CONFIG_MAC80211 is not set
-# CONFIG_IEEE80211 is not set
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# CONFIG_FW_LOADER is not set
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-CONFIG_CONNECTOR=m
-# CONFIG_MTD is not set
-CONFIG_PARPORT=m
-CONFIG_PARPORT_PC=m
-# CONFIG_PARPORT_SERIAL is not set
-# CONFIG_PARPORT_PC_FIFO is not set
-# CONFIG_PARPORT_PC_SUPERIO is not set
-# CONFIG_PARPORT_GSC is not set
-# CONFIG_PARPORT_AX88796 is not set
-# CONFIG_PARPORT_1284 is not set
-# CONFIG_PNP is not set
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_DEV_XD is not set
-# CONFIG_PARIDE is not set
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-CONFIG_BLK_DEV_NBD=m
-# CONFIG_BLK_DEV_SX8 is not set
-CONFIG_BLK_DEV_RAM=m
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=4096
-CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-CONFIG_MISC_DEVICES=y
-# CONFIG_IBM_ASM is not set
-# CONFIG_PHANTOM is not set
-# CONFIG_EEPROM_93CX6 is not set
-# CONFIG_SGI_IOC4 is not set
-# CONFIG_TIFM_CORE is not set
-CONFIG_IDE=y
-CONFIG_BLK_DEV_IDE=y
-
-#
-# Please see Documentation/ide.txt for help/info on IDE drives
-#
-# CONFIG_BLK_DEV_IDE_SATA is not set
-# CONFIG_BLK_DEV_HD_IDE is not set
-CONFIG_BLK_DEV_IDEDISK=y
-# CONFIG_IDEDISK_MULTI_MODE is not set
-CONFIG_BLK_DEV_IDECD=y
-# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_BLK_DEV_IDEFLOPPY is not set
-# CONFIG_IDE_TASK_IOCTL is not set
-CONFIG_IDE_PROC_FS=y
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_IDE_GENERIC=y
-# CONFIG_BLK_DEV_CMD640 is not set
-CONFIG_BLK_DEV_IDEPCI=y
-# CONFIG_IDEPCI_SHARE_IRQ is not set
-CONFIG_IDEPCI_PCIBUS_ORDER=y
-# CONFIG_BLK_DEV_OFFBOARD is not set
-# CONFIG_BLK_DEV_GENERIC is not set
-# CONFIG_BLK_DEV_OPTI621 is not set
-# CONFIG_BLK_DEV_RZ1000 is not set
-# CONFIG_BLK_DEV_IDEDMA_PCI is not set
-# CONFIG_IDE_ARM is not set
-# CONFIG_IDE_CHIPSETS is not set
-# CONFIG_BLK_DEV_IDEDMA is not set
-# CONFIG_BLK_DEV_HD is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-# CONFIG_SCSI is not set
-# CONFIG_SCSI_DMA is not set
-# CONFIG_SCSI_NETLINK is not set
-# CONFIG_ATA is not set
-# CONFIG_MD is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_FIREWIRE is not set
-# CONFIG_IEEE1394 is not set
-# CONFIG_I2O is not set
-# CONFIG_MACINTOSH_DRIVERS is not set
-CONFIG_NETDEVICES=y
-# CONFIG_NETDEVICES_MULTIQUEUE is not set
-# CONFIG_IFB is not set
-CONFIG_DUMMY=m
-# CONFIG_BONDING is not set
-# CONFIG_MACVLAN is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
-# CONFIG_ARCNET is not set
-# CONFIG_PHYLIB is not set
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_CASSINI is not set
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_LANCE is not set
-# CONFIG_NET_VENDOR_SMC is not set
-# CONFIG_NET_VENDOR_RACAL is not set
-# CONFIG_NET_TULIP is not set
-# CONFIG_AT1700 is not set
-# CONFIG_DEPCA is not set
-# CONFIG_HP100 is not set
-# CONFIG_NET_ISA is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=y
-# CONFIG_PCNET32_NAPI is not set
-# CONFIG_AMD8111_ETH is not set
-# CONFIG_ADAPTEC_STARFIRE is not set
-# CONFIG_AC3200 is not set
-# CONFIG_APRICOT is not set
-# CONFIG_B44 is not set
-# CONFIG_FORCEDETH is not set
-# CONFIG_CS89x0 is not set
-# CONFIG_DGRS is not set
-# CONFIG_EEPRO100 is not set
-# CONFIG_E100 is not set
-# CONFIG_FEALNX is not set
-# CONFIG_NATSEMI is not set
-CONFIG_NE2K_PCI=y
-CONFIG_8139CP=y
-# CONFIG_8139TOO is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_TLAN is not set
-# CONFIG_VIA_RHINE is not set
-# CONFIG_SC92031 is not set
-# CONFIG_NET_POCKET is not set
-# CONFIG_NETDEV_1000 is not set
-# CONFIG_NETDEV_10000 is not set
-# CONFIG_TR is not set
-
-#
-# Wireless LAN
-#
-# CONFIG_WLAN_PRE80211 is not set
-# CONFIG_WLAN_80211 is not set
-# CONFIG_WAN is not set
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-# CONFIG_ATM_TCP is not set
-# CONFIG_ATM_LANAI is not set
-# CONFIG_ATM_ENI is not set
-# CONFIG_ATM_FIRESTREAM is not set
-# CONFIG_ATM_ZATM is not set
-# CONFIG_ATM_NICSTAR is not set
-# CONFIG_ATM_IDT77252 is not set
-# CONFIG_ATM_AMBASSADOR is not set
-# CONFIG_ATM_HORIZON is not set
-# CONFIG_ATM_IA is not set
-# CONFIG_ATM_FORE200E_MAYBE is not set
-# CONFIG_ATM_HE is not set
-# CONFIG_FDDI is not set
-CONFIG_HIPPI=y
-# CONFIG_ROADRUNNER is not set
-# CONFIG_PLIP is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-# CONFIG_INPUT_FF_MEMLESS is not set
-# CONFIG_INPUT_POLLDEV is not set
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
-# CONFIG_INPUT_EVDEV is not set
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_LIFEBOOK=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-# CONFIG_MOUSE_SERIAL is not set
-# CONFIG_MOUSE_APPLETOUCH is not set
-# CONFIG_MOUSE_INPORT is not set
-# CONFIG_MOUSE_LOGIBM is not set
-# CONFIG_MOUSE_PC110PAD is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_MISC is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_I8042=y
-CONFIG_SERIO_SERPORT=y
-# CONFIG_SERIO_CT82C710 is not set
-# CONFIG_SERIO_PARKBD is not set
-# CONFIG_SERIO_PCIPS2 is not set
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_VT_HW_CONSOLE_BINDING is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_NR_UARTS=4
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-# CONFIG_SERIAL_8250_EXTENDED is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_PRINTER is not set
-# CONFIG_PPDEV is not set
-# CONFIG_TIPAR is not set
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_NOWAYOUT=y
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=y
-# CONFIG_ACQUIRE_WDT is not set
-# CONFIG_ADVANTECH_WDT is not set
-# CONFIG_ALIM1535_WDT is not set
-# CONFIG_ALIM7101_WDT is not set
-# CONFIG_SC520_WDT is not set
-# CONFIG_EUROTECH_WDT is not set
-# CONFIG_IB700_WDT is not set
-# CONFIG_IBMASR is not set
-# CONFIG_WAFER_WDT is not set
-# CONFIG_I6300ESB_WDT is not set
-# CONFIG_ITCO_WDT is not set
-# CONFIG_SC1200_WDT is not set
-# CONFIG_PC87413_WDT is not set
-# CONFIG_60XX_WDT is not set
-# CONFIG_SBC8360_WDT is not set
-# CONFIG_CPU5_WDT is not set
-# CONFIG_SMSC37B787_WDT is not set
-# CONFIG_W83627HF_WDT is not set
-# CONFIG_W83697HF_WDT is not set
-# CONFIG_W83877F_WDT is not set
-# CONFIG_W83977F_WDT is not set
-# CONFIG_MACHZ_WDT is not set
-# CONFIG_SBC_EPX_C3_WATCHDOG is not set
-
-#
-# ISA-based Watchdog Cards
-#
-# CONFIG_PCWATCHDOG is not set
-# CONFIG_MIXCOMWD is not set
-# CONFIG_WDT is not set
-
-#
-# PCI-based Watchdog Cards
-#
-# CONFIG_PCIPCWATCHDOG is not set
-# CONFIG_WDTPCI is not set
-# CONFIG_HW_RANDOM is not set
-# CONFIG_NVRAM is not set
-# CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-# CONFIG_SONYPI is not set
-# CONFIG_AGP is not set
-# CONFIG_DRM is not set
-# CONFIG_MWAVE is not set
-# CONFIG_PC8736x_GPIO is not set
-# CONFIG_NSC_GPIO is not set
-# CONFIG_CS5535_GPIO is not set
-CONFIG_RAW_DRIVER=m
-CONFIG_MAX_RAW_DEVS=256
-# CONFIG_HANGCHECK_TIMER is not set
-# CONFIG_TCG_TPM is not set
-# CONFIG_TELCLOCK is not set
-CONFIG_DEVPORT=y
-# CONFIG_I2C is not set
-
-#
-# SPI support
-#
-# CONFIG_SPI is not set
-# CONFIG_SPI_MASTER is not set
-# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_SENSORS_ABITUGURU is not set
-# CONFIG_SENSORS_ABITUGURU3 is not set
-# CONFIG_SENSORS_K8TEMP is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_CORETEMP is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_PC87427 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_VT8231 is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_SENSORS_HDAPS is not set
-# CONFIG_SENSORS_APPLESMC is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_SM501 is not set
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-# CONFIG_DVB_CORE is not set
-# CONFIG_DAB is not set
-
-#
-# Graphics support
-#
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-
-#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT is not set
-# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
-# CONFIG_FB is not set
-
-#
-# Console display driver support
-#
-CONFIG_VGA_CONSOLE=y
-# CONFIG_VGACON_SOFT_SCROLLBACK is not set
-# CONFIG_VIDEO_SELECT is not set
-# CONFIG_MDA_CONSOLE is not set
-CONFIG_DUMMY_CONSOLE=y
-
-#
-# Sound
-#
-# CONFIG_SOUND is not set
-CONFIG_HID_SUPPORT=y
-# CONFIG_HID is not set
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-# CONFIG_USB is not set
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-# CONFIG_MMC is not set
-# CONFIG_NEW_LEDS is not set
-# CONFIG_INFINIBAND is not set
-# CONFIG_EDAC is not set
-# CONFIG_RTC_CLASS is not set
-
-#
-# DMA Engine support
-#
-# CONFIG_DMA_ENGINE is not set
-
-#
-# DMA Clients
-#
-
-#
-# DMA Devices
-#
-# CONFIG_AUXDISPLAY is not set
-CONFIG_VIRTUALIZATION=y
-# CONFIG_KVM is not set
-
-#
-# Userspace I/O
-#
-# CONFIG_UIO is not set
-
-#
-# File systems
-#
-# CONFIG_EXT2_FS is not set
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-# CONFIG_EXT4DEV_FS is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-CONFIG_FS_POSIX_ACL=y
-# CONFIG_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_MINIX_FS is not set
-CONFIG_ROMFS_FS=m
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-# CONFIG_AUTOFS_FS is not set
-# CONFIG_AUTOFS4_FS is not set
-# CONFIG_FUSE_FS is not set
-CONFIG_GENERIC_ACL=y
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=y
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=y
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-# CONFIG_MSDOS_FS is not set
-# CONFIG_VFAT_FS is not set
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-# CONFIG_HUGETLBFS is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-CONFIG_CONFIGFS_FS=m
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_ECRYPT_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-CONFIG_CRAMFS=m
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-# CONFIG_NFS_V4 is not set
-# CONFIG_NFS_DIRECTIO is not set
-# CONFIG_NFSD is not set
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_BIND34 is not set
-# CONFIG_RPCSEC_GSS_KRB5 is not set
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-# CONFIG_SMB_FS is not set
-# CONFIG_CIFS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=m
-
-#
-# Distributed Lock Manager
-#
-# CONFIG_DLM is not set
-CONFIG_INSTRUMENTATION=y
-# CONFIG_PROFILING is not set
-# CONFIG_KPROBES is not set
-
-#
-# Kernel hacking
-#
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-# CONFIG_PRINTK_TIME is not set
-# CONFIG_ENABLE_MUST_CHECK is not set
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_UNUSED_SYMBOLS is not set
-CONFIG_DEBUG_FS=y
-# CONFIG_HEADERS_CHECK is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_SHIRQ is not set
-CONFIG_DETECT_SOFTLOCKUP=y
-CONFIG_SCHED_DEBUG=y
-# CONFIG_SCHEDSTATS is not set
-# CONFIG_TIMER_STATS is not set
-CONFIG_DEBUG_SLAB=y
-CONFIG_DEBUG_SLAB_LEAK=y
-CONFIG_DEBUG_RT_MUTEXES=y
-CONFIG_DEBUG_PI_LIST=y
-# CONFIG_RT_MUTEX_TESTER is not set
-CONFIG_DEBUG_SPINLOCK=y
-CONFIG_DEBUG_MUTEXES=y
-CONFIG_DEBUG_LOCK_ALLOC=y
-CONFIG_PROVE_LOCKING=y
-CONFIG_LOCKDEP=y
-CONFIG_LOCK_STAT=y
-# CONFIG_DEBUG_LOCKDEP is not set
-CONFIG_TRACE_IRQFLAGS=y
-CONFIG_DEBUG_SPINLOCK_SLEEP=y
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-CONFIG_STACKTRACE=y
-CONFIG_DEBUG_KOBJECT=y
-CONFIG_DEBUG_HIGHMEM=y
-CONFIG_DEBUG_BUGVERBOSE=y
-CONFIG_DEBUG_INFO=y
-CONFIG_DEBUG_VM=y
-CONFIG_DEBUG_LIST=y
-CONFIG_FRAME_POINTER=y
-CONFIG_FORCED_INLINING=y
-CONFIG_RCU_TORTURE_TEST=m
-# CONFIG_FAULT_INJECTION is not set
-CONFIG_EARLY_PRINTK=y
-CONFIG_DEBUG_STACKOVERFLOW=y
-# CONFIG_DEBUG_STACK_USAGE is not set
-CONFIG_DEBUG_PAGEALLOC=y
-CONFIG_DEBUG_RODATA=y
-CONFIG_4KSTACKS=y
-CONFIG_X86_FIND_SMP_CONFIG=y
-CONFIG_X86_MPPARSE=y
-CONFIG_DOUBLEFAULT=y
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
-# CONFIG_SECURITY is not set
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=m
-CONFIG_CRYPTO_MANAGER=m
-CONFIG_CRYPTO_HMAC=m
-# CONFIG_CRYPTO_XCBC is not set
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-# CONFIG_CRYPTO_SHA512 is not set
-# CONFIG_CRYPTO_WP512 is not set
-# CONFIG_CRYPTO_TGR192 is not set
-CONFIG_CRYPTO_GF128MUL=m
-# CONFIG_CRYPTO_ECB is not set
-CONFIG_CRYPTO_CBC=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_LRW=m
-# CONFIG_CRYPTO_CRYPTD is not set
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-# CONFIG_CRYPTO_TWOFISH_586 is not set
-# CONFIG_CRYPTO_SERPENT is not set
-CONFIG_CRYPTO_AES=m
-# CONFIG_CRYPTO_AES_586 is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-CONFIG_CRYPTO_TEA=m
-# CONFIG_CRYPTO_ARC4 is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=m
-# CONFIG_CRYPTO_MICHAEL_MIC is not set
-# CONFIG_CRYPTO_CRC32C is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_TEST is not set
-CONFIG_CRYPTO_HW=y
-# CONFIG_CRYPTO_DEV_PADLOCK is not set
-# CONFIG_CRYPTO_DEV_GEODE is not set
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=m
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=y
-# CONFIG_CRC7 is not set
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=m
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_PLIST=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_X86_SMP=y
-CONFIG_X86_HT=y
-CONFIG_X86_BIOS_REBOOT=y
-CONFIG_X86_TRAMPOLINE=y
-CONFIG_KTIME_SCALAR=y
debian/reconfigure \
debian/rules \
debian/rules.modules
+
+dist-hook-debian-changelog:
+ $(srcdir)/build-aux/update-debian-changelog '$(distdir)/debian/changelog' '$(VERSION)'
+DIST_HOOKS += dist-hook-debian-changelog
+EXTRA_DIST += build-aux/update-debian-changelog
-openvswitch (0.90.6) unstable; urgency=low
+openvswitch (1.0.0) unstable; urgency=low
- * Development version.
+ * New upstream version.
- -- Ben Pfaff <blp@nicira.com> Tue, 15 Dec 2009 11:00:11 -0800
+ -- Open vSwitch team <dev@openvswitch.org> Mon, 17 May 2010 10:36:00 +0000
-/* Copyright (c) 2008, 2009 Nicira Networks, Inc.
+/* Copyright (c) 2008, 2009, 2010 Nicira Networks, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
static void
scanner_wait(struct scanner *s)
{
- long long int now = time_msec();
- long long int expires = s->last_move + 750;
- if (now >= expires) {
- poll_immediate_wake();
- } else {
- poll_timer_wait(expires - now);
- }
-
+ poll_timer_wait_until(s->last_move + 750);
}
static void
refresh();
poll_fd_wait(STDIN_FILENO, POLLIN);
- poll_timer_wait(timeout - time_msec());
+ poll_timer_wait_until(timeout);
poll_block();
} while (time_msec() < timeout);
age_messages();
rconn_run_wait(rconn);
rconn_recv_wait(rconn);
- poll_timer_wait(timeout - time_msec());
+ poll_timer_wait_until(timeout);
poll_block();
}
}
refresh();
if (pos < min || pos > max) {
- poll_timer_wait(adjust - time_msec());
+ poll_timer_wait_until(adjust);
}
poll_fd_wait(STDIN_FILENO, POLLIN);
poll_block();
block_until(long long timeout)
{
while (timeout > time_msec()) {
- poll_timer_wait(timeout - time_msec());
+ poll_timer_wait_until(timeout);
poll_block();
}
drain_keyboard_buffer();
#ifndef XFLOW_H
#define XFLOW_H 1
+/* The ovs_be<N> types indicate that an object is in big-endian, not
+ * native-endian, byte order. They are otherwise equivalent to uint<N>_t.
+ * The Linux kernel already has __be<N> types for this, which take on
+ * additional semantics when the "sparse" static checker is used, so we use
+ * those types when compiling the kernel. */
#ifdef __KERNEL__
#include <linux/types.h>
+#define ovs_be16 __be16
+#define ovs_be32 __be32
+#define ovs_be64 __be64
#else
-#include <sys/types.h>
+#include <stdint.h>
+#define ovs_be16 uint16_t
+#define ovs_be32 uint32_t
+#define ovs_be64 uint64_t
#endif
-#include <linux/if_ether.h>
#define XFLOW_MAX 256 /* Maximum number of datapaths. */
struct xflow_stats {
/* Flows. */
- __u32 n_flows; /* Number of flows in flow table. */
- __u32 cur_capacity; /* Current flow table capacity. */
- __u32 max_capacity; /* Maximum expansion of flow table capacity. */
+ uint32_t n_flows; /* Number of flows in flow table. */
+ uint32_t cur_capacity; /* Current flow table capacity. */
+ uint32_t max_capacity; /* Maximum expansion of flow table capacity. */
/* Ports. */
- __u32 n_ports; /* Current number of ports. */
- __u32 max_ports; /* Maximum supported number of ports. */
- __u16 max_groups; /* Maximum number of port groups. */
- __u16 reserved;
+ uint32_t n_ports; /* Current number of ports. */
+ uint32_t max_ports; /* Maximum supported number of ports. */
+ uint16_t max_groups; /* Maximum number of port groups. */
+ uint16_t reserved;
/* Lookups. */
- __u64 n_frags; /* Number of dropped IP fragments. */
- __u64 n_hit; /* Number of flow table matches. */
- __u64 n_missed; /* Number of flow table misses. */
- __u64 n_lost; /* Number of misses not sent to userspace. */
+ uint64_t n_frags; /* Number of dropped IP fragments. */
+ uint64_t n_hit; /* Number of flow table matches. */
+ uint64_t n_missed; /* Number of flow table misses. */
+ uint64_t n_lost; /* Number of misses not sent to userspace. */
/* Queues. */
- __u16 max_miss_queue; /* Max length of XFLOWL_MISS queue. */
- __u16 max_action_queue; /* Max length of XFLOWL_ACTION queue. */
- __u16 max_sflow_queue; /* Max length of XFLOWL_SFLOW queue. */
+ uint16_t max_miss_queue; /* Max length of XFLOWL_MISS queue. */
+ uint16_t max_action_queue; /* Max length of XFLOWL_ACTION queue. */
+ uint16_t max_sflow_queue; /* Max length of XFLOWL_SFLOW queue. */
};
/* Logical ports. */
-#define XFLOWP_LOCAL ((__u16)0)
-#define XFLOWP_NONE ((__u16)-1)
-#define XFLOWP_NORMAL ((__u16)-2)
+#define XFLOWP_LOCAL ((uint16_t)0)
+#define XFLOWP_NONE ((uint16_t)-1)
+#define XFLOWP_NORMAL ((uint16_t)-2)
/* Listening channels. */
#define _XFLOWL_MISS_NR 0 /* Packet missed in flow table. */
* packet data.
*/
struct xflow_msg {
- __u32 type;
- __u32 length;
- __u16 port;
- __u16 reserved;
- __u32 arg;
+ uint32_t type;
+ uint32_t length;
+ uint16_t port;
+ uint16_t reserved;
+ uint32_t arg;
};
/**
* packet data.
*/
struct xflow_sflow_sample_header {
- __u32 sample_pool;
- __u32 n_actions;
+ uint32_t sample_pool;
+ uint32_t n_actions;
};
#define XFLOW_PORT_INTERNAL (1 << 0) /* This port is simulated. */
struct xflow_port {
char devname[16]; /* IFNAMSIZ */
- __u16 port;
- __u16 flags;
- __u32 reserved2;
+ uint16_t port;
+ uint16_t flags;
+ uint32_t reserved2;
};
struct xflow_portvec {
struct xflow_port *ports;
- __u32 n_ports;
+ uint32_t n_ports;
};
struct xflow_port_group {
- __u16 *ports;
- __u16 n_ports; /* Number of ports. */
- __u16 group; /* Group number. */
+ uint16_t *ports;
+ uint16_t n_ports; /* Number of ports. */
+ uint16_t group; /* Group number. */
};
struct xflow_flow_stats {
- __u64 n_packets; /* Number of matched packets. */
- __u64 n_bytes; /* Number of matched bytes. */
- __u64 used_sec; /* Time last used. */
- __u32 used_nsec;
- __u8 tcp_flags;
- __u8 ip_tos;
- __u16 error; /* Used by XFLOW_FLOW_GET. */
+ uint64_t n_packets; /* Number of matched packets. */
+ uint64_t n_bytes; /* Number of matched bytes. */
+ uint64_t used_sec; /* Time last used. */
+ uint32_t used_nsec;
+ uint8_t tcp_flags;
+ uint8_t ip_tos;
+ uint16_t error; /* Used by XFLOW_FLOW_GET. */
};
/*
#define XFLOW_TCI_PRESENT 0x1000 /* CFI bit */
struct xflow_key {
- __be32 tun_id; /* Encapsulating tunnel ID. */
- __be32 nw_src; /* IP source address. */
- __be32 nw_dst; /* IP destination address. */
- __u16 in_port; /* Input switch port. */
- __be16 dl_tci; /* All zeros if 802.1Q header absent,
- * XFLOW_TCI_PRESENT set if present. */
- __be16 dl_type; /* Ethernet frame type. */
- __be16 tp_src; /* TCP/UDP source port. */
- __be16 tp_dst; /* TCP/UDP destination port. */
- __u8 dl_src[ETH_ALEN]; /* Ethernet source address. */
- __u8 dl_dst[ETH_ALEN]; /* Ethernet destination address. */
- __u8 nw_proto; /* IP protocol or low 8 bits of ARP opcode. */
- __u8 nw_tos; /* IP ToS (DSCP field, 6 bits). */
+ ovs_be32 tun_id; /* Encapsulating tunnel ID. */
+ ovs_be32 nw_src; /* IP source address. */
+ ovs_be32 nw_dst; /* IP destination address. */
+ uint16_t in_port; /* Input switch port. */
+ ovs_be16 dl_tci; /* All zeros if 802.1Q header absent,
+ * XFLOW_TCI_PRESENT set if present. */
+ ovs_be16 dl_type; /* Ethernet frame type. */
+ ovs_be16 tp_src; /* TCP/UDP source port. */
+ ovs_be16 tp_dst; /* TCP/UDP destination port. */
+ uint8_t dl_src[6]; /* Ethernet source address. */
+ uint8_t dl_dst[6]; /* Ethernet destination address. */
+ uint8_t nw_proto; /* IP protocol or low 8 bits of ARP opcode. */
+ uint8_t nw_tos; /* IP ToS (DSCP field, 6 bits). */
};
/* Flags for XFLOW_FLOW. */
struct xflow_flow_stats stats;
struct xflow_key key;
union xflow_action *actions;
- __u32 n_actions;
- __u32 flags;
+ uint32_t n_actions;
+ uint32_t flags;
};
/* Flags for XFLOW_FLOW_PUT. */
/* XFLOW_FLOW_PUT argument. */
struct xflow_flow_put {
struct xflow_flow flow;
- __u32 flags;
+ uint32_t flags;
};
struct xflow_flowvec {
struct xflow_flow *flows;
- __u32 n_flows;
+ uint32_t n_flows;
};
/* Action types. */
#define XFLOWAT_N_ACTIONS 13
struct xflow_action_output {
- __u16 type; /* XFLOWAT_OUTPUT. */
- __u16 port; /* Output port. */
- __u16 reserved1;
- __u16 reserved2;
+ uint16_t type; /* XFLOWAT_OUTPUT. */
+ uint16_t port; /* Output port. */
+ uint16_t reserved1;
+ uint16_t reserved2;
};
struct xflow_action_output_group {
- __u16 type; /* XFLOWAT_OUTPUT_GROUP. */
- __u16 group; /* Group number. */
- __u16 reserved1;
- __u16 reserved2;
+ uint16_t type; /* XFLOWAT_OUTPUT_GROUP. */
+ uint16_t group; /* Group number. */
+ uint16_t reserved1;
+ uint16_t reserved2;
};
struct xflow_action_controller {
- __u16 type; /* XFLOWAT_OUTPUT_CONTROLLER. */
- __u16 reserved;
- __u32 arg; /* Copied to struct xflow_msg 'arg' member. */
+ uint16_t type; /* XFLOWAT_OUTPUT_CONTROLLER. */
+ uint16_t reserved;
+ uint32_t arg; /* Copied to struct xflow_msg 'arg' member. */
};
struct xflow_action_tunnel {
- __u16 type; /* XFLOWAT_SET_TUNNEL. */
- __u16 reserved;
- __be32 tun_id; /* Tunnel ID. */
+ uint16_t type; /* XFLOWAT_SET_TUNNEL. */
+ uint16_t reserved;
+ ovs_be32 tun_id; /* Tunnel ID. */
};
/* Action structure for XFLOWAT_SET_DL_TCI. */
struct xflow_action_dl_tci {
- __u16 type; /* XFLOWAT_SET_DL_TCI. */
- __be16 tci; /* New TCI. Bits not in mask must be zero. */
- __be16 mask; /* 0x0fff to set VID, 0xe000 to set PCP,
- or 0xefff to set both. */
- __u16 reserved;
+ uint16_t type; /* XFLOWAT_SET_DL_TCI. */
+ ovs_be16 tci; /* New TCI. Bits not in mask must be zero. */
+ ovs_be16 mask; /* 0x0fff to set VID, 0xe000 to set PCP,
+ * or 0xefff to set both. */
+ uint16_t reserved;
};
/* Action structure for XFLOWAT_SET_DL_SRC/DST. */
struct xflow_action_dl_addr {
- __u16 type; /* XFLOWAT_SET_DL_SRC/DST. */
- __u8 dl_addr[ETH_ALEN]; /* Ethernet address. */
+ uint16_t type; /* XFLOWAT_SET_DL_SRC/DST. */
+ uint8_t dl_addr[6]; /* Ethernet address. */
};
/* Action structure for XFLOWAT_SET_NW_SRC/DST. */
struct xflow_action_nw_addr {
- __u16 type; /* XFLOWAT_SET_TW_SRC/DST. */
- __u16 reserved;
- __be32 nw_addr; /* IP address. */
+ uint16_t type; /* XFLOWAT_SET_TW_SRC/DST. */
+ uint16_t reserved;
+ ovs_be32 nw_addr; /* IP address. */
};
struct xflow_action_nw_tos {
- __u16 type; /* XFLOWAT_SET_NW_TOS. */
- __u8 nw_tos; /* IP ToS/DSCP field (6 bits). */
- __u8 reserved1;
- __u16 reserved2;
- __u16 reserved3;
+ uint16_t type; /* XFLOWAT_SET_NW_TOS. */
+ uint8_t nw_tos; /* IP ToS/DSCP field (6 bits). */
+ uint8_t reserved1;
+ uint16_t reserved2;
+ uint16_t reserved3;
};
/* Action structure for XFLOWAT_SET_TP_SRC/DST. */
struct xflow_action_tp_port {
- __u16 type; /* XFLOWAT_SET_TP_SRC/DST. */
- __be16 tp_port; /* TCP/UDP port. */
- __u16 reserved1;
- __u16 reserved2;
+ uint16_t type; /* XFLOWAT_SET_TP_SRC/DST. */
+ ovs_be16 tp_port; /* TCP/UDP port. */
+ uint16_t reserved1;
+ uint16_t reserved2;
};
union xflow_action {
- __u16 type;
+ uint16_t type;
struct xflow_action_output output;
struct xflow_action_output_group output_group;
struct xflow_action_controller controller;
};
struct xflow_execute {
- __u16 in_port;
- __u16 reserved1;
- __u32 reserved2;
+ uint16_t in_port;
+ uint16_t reserved1;
+ uint32_t reserved2;
union xflow_action *actions;
- __u32 n_actions;
+ uint32_t n_actions;
const void *data;
- __u32 length;
+ uint32_t length;
};
#define VPORT_TYPE_SIZE 16
struct xflow_vport_add {
char port_type[VPORT_TYPE_SIZE];
- char devname[16]; /* IFNAMSIZ */
+ char devname[16]; /* IFNAMSIZ */
void *config;
};
struct xflow_vport_mod {
- char devname[16]; /* IFNAMSIZ */
+ char devname[16]; /* IFNAMSIZ */
void *config;
};
struct xflow_vport_stats {
- __u64 rx_packets;
- __u64 tx_packets;
- __u64 rx_bytes;
- __u64 tx_bytes;
- __u64 rx_dropped;
- __u64 tx_dropped;
- __u64 rx_errors;
- __u64 tx_errors;
- __u64 rx_frame_err;
- __u64 rx_over_err;
- __u64 rx_crc_err;
- __u64 collisions;
+ uint64_t rx_packets;
+ uint64_t tx_packets;
+ uint64_t rx_bytes;
+ uint64_t tx_bytes;
+ uint64_t rx_dropped;
+ uint64_t tx_dropped;
+ uint64_t rx_errors;
+ uint64_t tx_errors;
+ uint64_t rx_frame_err;
+ uint64_t rx_over_err;
+ uint64_t rx_crc_err;
+ uint64_t collisions;
};
struct xflow_vport_stats_req {
- char devname[16]; /* IFNAMSIZ */
+ char devname[16]; /* IFNAMSIZ */
struct xflow_vport_stats stats;
};
struct xflow_vport_ether {
- char devname[16]; /* IFNAMSIZ */
- unsigned char ether_addr[ETH_ALEN];
+ char devname[16]; /* IFNAMSIZ */
+ unsigned char ether_addr[6];
};
struct xflow_vport_mtu {
- char devname[16]; /* IFNAMSIZ */
- __u16 mtu;
+ char devname[16]; /* IFNAMSIZ */
+ uint16_t mtu;
};
/* Values below this cutoff are 802.3 packets and the two bytes
lib/lockfile.h \
lib/mac-learning.c \
lib/mac-learning.h \
- lib/netdev-gre.c \
- lib/netdev-linux.c \
- lib/netdev-patch.c \
lib/netdev-provider.h \
- lib/netdev-vport.c \
- lib/netdev-vport.h \
lib/netdev.c \
lib/netdev.h \
lib/ofp-print.c \
lib/rconn.h \
lib/reconnect.c \
lib/reconnect.h \
- lib/rtnetlink.c \
- lib/rtnetlink.h \
lib/sat-math.h \
lib/sha1.c \
lib/sha1.h \
if HAVE_NETLINK
lib_libopenvswitch_a_SOURCES += \
+ lib/netdev-gre.c \
+ lib/netdev-linux.c \
+ lib/netdev-patch.c \
+ lib/netdev-vport.c \
+ lib/netdev-vport.h \
lib/netlink-protocol.h \
lib/netlink.c \
- lib/netlink.h
+ lib/netlink.h \
+ lib/rtnetlink.c \
+ lib/rtnetlink.h \
+ lib/xfif-linux.c
endif
if HAVE_OPENSSL
#include "daemon.h"
#include <errno.h>
#include <fcntl.h>
+#include <signal.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/resource.h>
#include <sys/wait.h>
#include <unistd.h>
#include "command-line.h"
dhclient_wait(struct dhclient *cli)
{
if (cli->min_timeout != UINT_MAX) {
- time_t now = time_now();
- unsigned int wake = sat_add(cli->state_entered, cli->min_timeout);
- if (wake <= now) {
- poll_immediate_wake();
- } else {
- poll_timer_wait(sat_mul(sat_sub(wake, now), 1000));
- }
+ long long int wake = sat_add(cli->state_entered, cli->min_timeout);
+ poll_timer_wait_until(wake * 1000);
}
/* Reset timeout to 1 second. This will have no effect ordinarily, because
* dhclient_run() will typically set it back to a higher value. If,
#include "openflow/openflow.h"
#include "hash.h"
#include "openvswitch/xflow.h"
+#include "packets.h"
#include "util.h"
#ifdef __cplusplus
uint16_t dl_type; /* Ethernet frame type. */
uint16_t tp_src; /* TCP/UDP source port. */
uint16_t tp_dst; /* TCP/UDP destination port. */
- uint8_t dl_src[ETH_ALEN]; /* Ethernet source address. */
- uint8_t dl_dst[ETH_ALEN]; /* Ethernet destination address. */
+ uint8_t dl_src[ETH_ADDR_LEN]; /* Ethernet source address. */
+ uint8_t dl_dst[ETH_ADDR_LEN]; /* Ethernet destination address. */
uint8_t nw_proto; /* IP protocol or low 8 bits of ARP opcode. */
uint8_t dl_vlan_pcp; /* Input VLAN priority. */
uint8_t nw_tos; /* IP ToS (DSCP field, 6 bits). */
static void
wait_timeout(long long int started)
{
- long long int now = time_msec();
- long long int timeout = 10000 - (now - started);
- if (timeout <= 0) {
- poll_immediate_wake();
- } else {
- poll_timer_wait(timeout);
- }
+ poll_timer_wait_until(started + 10000);
}
void
{
if (!list_is_empty(&ml->lrus)) {
struct mac_entry *e = mac_entry_from_lru_node(ml->lrus.next);
- poll_timer_wait((e->expires - time_now()) * 1000);
+ poll_timer_wait_until(e->expires * 1000LL);
}
}
#include "vlog.h"
static const struct netdev_class *base_netdev_classes[] = {
+#ifdef HAVE_NETLINK
&netdev_linux_class,
&netdev_tap_class,
&netdev_patch_class,
&netdev_gre_class,
+#endif
};
static struct shash netdev_classes = SHASH_INITIALIZER(&netdev_classes);
return new_waiter(fd, events);
}
+/* The caller must ensure that 'msec' is not negative. */
+static void
+poll_timer_wait__(int msec)
+{
+ if (timeout < 0 || msec < timeout) {
+ timeout = msec;
+ if (VLOG_IS_DBG_ENABLED()) {
+ backtrace_capture(&timeout_backtrace);
+ }
+ }
+}
+
/* Causes the following call to poll_block() to block for no more than 'msec'
* milliseconds. If 'msec' is nonpositive, the following call to poll_block()
* will not block at all.
* is affected. The timer will need to be re-registered after poll_block() is
* called if it is to persist. */
void
-poll_timer_wait(int msec)
+poll_timer_wait(long long int msec)
{
- if (timeout < 0 || msec < timeout) {
- timeout = MAX(0, msec);
- if (VLOG_IS_DBG_ENABLED()) {
- backtrace_capture(&timeout_backtrace);
- }
- }
+ poll_timer_wait__(msec < 0 ? 0
+ : msec > INT_MAX ? INT_MAX
+ : msec);
+}
+
+/* Causes the following call to poll_block() to wake up when the current time,
+ * as returned by time_msec(), reaches 'msec' or later. If 'msec' is earlier
+ * than the current time, the following call to poll_block() will not block at
+ * all.
+ *
+ * The timer registration is one-shot: only the following call to poll_block()
+ * is affected. The timer will need to be re-registered after poll_block() is
+ * called if it is to persist. */
+void
+poll_timer_wait_until(long long int msec)
+{
+ long long int now = time_msec();
+ poll_timer_wait__(msec <= now ? 0
+ : msec < now + INT_MAX ? msec - now
+ : INT_MAX);
}
/* Causes the following call to poll_block() to wake up immediately, without
/*
- * Copyright (c) 2008, 2009 Nicira Networks.
+ * Copyright (c) 2008, 2009, 2010 Nicira Networks.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/* Schedule events to wake up the following poll_block(). */
struct poll_waiter *poll_fd_wait(int fd, short int events);
-void poll_timer_wait(int msec);
+void poll_timer_wait(long long int msec);
+void poll_timer_wait_until(long long int msec);
void poll_immediate_wake(void);
/* Wait until an event occurs. */
timeo = timeout(rc);
if (timeo != UINT_MAX) {
- unsigned int expires = sat_add(rc->state_entered, timeo);
- unsigned int remaining = sat_sub(expires, time_now());
- poll_timer_wait(sat_mul(remaining, 1000));
+ long long int expires = sat_add(rc->state_entered, timeo);
+ poll_timer_wait_until(expires * 1000);
}
if ((rc->state & (S_ACTIVE | S_IDLE)) && rc->txq.n) {
#include <stdlib.h>
#include <string.h>
#include <sys/resource.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
#include <sys/un.h>
#include <unistd.h>
#include "fatal-signal.h"
}
}
+static bool
+rlim_is_finite(rlim_t limit)
+{
+ if (limit == RLIM_INFINITY) {
+ return false;
+ }
+
+#ifdef RLIM_SAVED_CUR /* FreeBSD 8.0 lacks RLIM_SAVED_CUR. */
+ if (limit == RLIM_SAVED_CUR) {
+ return false;
+ }
+#endif
+
+#ifdef RLIM_SAVED_MAX /* FreeBSD 8.0 lacks RLIM_SAVED_MAX. */
+ if (limit == RLIM_SAVED_MAX) {
+ return false;
+ }
+#endif
+
+ return true;
+}
+
/* Returns the maximum valid FD value, plus 1. */
int
get_max_fds(void)
static int max_fds = -1;
if (max_fds < 0) {
struct rlimit r;
- if (!getrlimit(RLIMIT_NOFILE, &r)
- && r.rlim_cur != RLIM_INFINITY
- && r.rlim_cur != RLIM_SAVED_MAX
- && r.rlim_cur != RLIM_SAVED_CUR) {
+ if (!getrlimit(RLIMIT_NOFILE, &r) && rlim_is_finite(r.rlim_cur)) {
max_fds = r.rlim_cur;
} else {
VLOG_WARN("failed to obtain fd limit, defaulting to 1024");
/*
- * Copyright (c) 2008, 2009 Nicira Networks.
+ * Copyright (c) 2008, 2009, 2010 Nicira Networks.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <poll.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>
#include "fatal-signal.h"
#include <netinet/tcp.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/socket.h>
#include <unistd.h>
#include "packets.h"
#include "socket-util.h"
#include <inttypes.h>
#include <netdb.h>
#include <poll.h>
+#include <sys/socket.h>
#include <sys/types.h>
#include <sys/un.h>
#include <stdlib.h>
#include "poll-loop.h"
#include "shash.h"
#include "socket-util.h"
+#include "svec.h"
#include "util.h"
#ifndef SCM_CREDENTIALS
{
struct ds ds = DS_EMPTY_INITIALIZER;
struct shash_node *node;
+ struct svec names;
+ const char *name;
+ size_t i;
ds_put_cstr(&ds, "The available commands are:\n");
+
+ svec_init(&names);
SHASH_FOR_EACH (node, &commands) {
- ds_put_format(&ds, "\t%s\n", node->name);
+ svec_add(&names, node->name);
+ }
+ svec_sort(&names);
+
+ SVEC_FOR_EACH (i, name, &names) {
+ ds_put_format(&ds, "\t%s\n", name);
}
+ svec_destroy(&names);
+
unixctl_command_reply(conn, 214, ds_cstr(&ds));
ds_destroy(&ds);
}
#include <fcntl.h>
#include <inttypes.h>
#include <net/if.h>
+#include <linux/types.h>
#include <linux/ethtool.h>
#include <linux/rtnetlink.h>
#include <linux/sockios.h>
#include <fcntl.h>
#include <inttypes.h>
#include <netinet/in.h>
+#include <sys/socket.h>
#include <net/if.h>
#include <stdlib.h>
#include <string.h>
#define THIS_MODULE VLM_xfif
static const struct xfif_class *base_xfif_classes[] = {
+#ifdef HAVE_NETLINK
&xfif_linux_class,
+#endif
&xfif_netdev_class,
};
key->dl_type = flow->dl_type;
key->tp_src = flow->tp_src;
key->tp_dst = flow->tp_dst;
- memcpy(key->dl_src, flow->dl_src, ETH_ALEN);
- memcpy(key->dl_dst, flow->dl_dst, ETH_ALEN);
+ memcpy(key->dl_src, flow->dl_src, ETH_ADDR_LEN);
+ memcpy(key->dl_dst, flow->dl_dst, ETH_ADDR_LEN);
key->nw_proto = flow->nw_proto;
key->nw_tos = flow->nw_tos;
}
flow->dl_type = key->dl_type;
flow->tp_src = key->tp_src;
flow->tp_dst = key->tp_dst;
- memcpy(flow->dl_src, key->dl_src, ETH_ALEN);
- memcpy(flow->dl_dst, key->dl_dst, ETH_ALEN);
+ memcpy(flow->dl_src, key->dl_src, ETH_ADDR_LEN);
+ memcpy(flow->dl_dst, key->dl_dst, ETH_ADDR_LEN);
flow->nw_proto = key->nw_proto;
flow->nw_tos = key->nw_tos;
}
#define XFLOW_UTIL_H 1
#include <stdbool.h>
+#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include "hash.h"
+++ /dev/null
-# This file is part of Autoconf. -*- Autoconf -*-
-# M4 sugar for common shell constructs.
-# Requires GNU M4 and M4sugar.
-#
-# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-# 2009, 2010 Free Software Foundation, Inc.
-
-# This file is part of Autoconf. This program is free
-# software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the
-# Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# Under Section 7 of GPL version 3, you are granted additional
-# permissions described in the Autoconf Configure Script Exception,
-# version 3.0, as published by the Free Software Foundation.
-#
-# You should have received a copy of the GNU General Public License
-# and a copy of the Autoconf Configure Script Exception along with
-# this program; see the files COPYINGv3 and COPYING.EXCEPTION
-# respectively. If not, see <http://www.gnu.org/licenses/>.
-
-# Written by Akim Demaille, Pavel Roskin, Alexandre Oliva, Lars J. Aas
-# and many other people.
-
-# Define AS_ECHO for compatibility with Autoconf before version 2.62.
-m4_ifndef([AS_ECHO], [
-
-# AS_ECHO(WORD)
-# -------------
-# Output WORD followed by a newline. WORD must be a single shell word
-# (typically a quoted string). The bytes of WORD are output as-is, even
-# if it starts with "-" or contains "\".
-m4_defun_init([AS_ECHO],
-[AS_REQUIRE([_$0_PREPARE])],
-[$as_echo $1])
-
-
-# AS_ECHO_N(WORD)
-# ---------------
-# Like AS_ECHO(WORD), except do not output the trailing newline.
-m4_defun_init([AS_ECHO_N],
-[AS_REQUIRE([_AS_ECHO_PREPARE])],
-[$as_echo_n $1])
-
-
-# _AS_ECHO_PREPARE
-# ----------------
-# Arrange for $as_echo 'FOO' to echo FOO without escape-interpretation;
-# and similarly for $as_echo_n, which omits the trailing newline.
-# 'FOO' is an optional single argument; a missing FOO is treated as empty.
-m4_defun([_AS_ECHO_PREPARE],
-[[as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$][1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$][1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$][1;
- case $arg in @%:@(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-]])# _AS_ECHO_PREPARE
-])
if test $HAVE_PYTHON = yes; then
AS_ECHO(["running $PYTHON -c 'import $1
import sys
-sys.exit(0)'..."]) >AS_MESSAGE_LOG_FD 2>&1
+sys.exit(0)'..."]) >&AS_MESSAGE_LOG_FD 2>&1
if $PYTHON -c 'import $1
import sys
-sys.exit(0)' >AS_MESSAGE_LOG_FD 2>&1; then
+sys.exit(0)' >&AS_MESSAGE_LOG_FD 2>&1; then
ovs_cv_py_[]AS_TR_SH([$1])=yes
fi
fi])])
/*
- * Copyright (c) 2008, 2009 Nicira Networks.
+ * Copyright (c) 2008, 2009, 2010 Nicira Networks.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <errno.h>
#include <stdlib.h>
+#include <sys/socket.h>
#include <unistd.h>
#include "socket-util.h"
#include "discovery.h"
#include <errno.h>
#include <inttypes.h>
+#include <sys/socket.h>
#include <net/if.h>
#include <regex.h>
#include <stdlib.h>
fail_open_wait(struct fail_open *fo)
{
if (fo->next_bogus_packet_in != LLONG_MAX) {
- poll_timer_wait(fo->next_bogus_packet_in - time_msec());
+ poll_timer_wait_until(fo->next_bogus_packet_in);
}
}
#include <arpa/inet.h>
#include <errno.h>
#include <inttypes.h>
+#include <sys/socket.h>
#include <net/if.h>
#include <string.h>
#include <stdlib.h>
void
in_band_wait(struct in_band *in_band)
{
- time_t now = time_now();
- time_t wakeup
+ long long int wakeup
= MIN(in_band->next_remote_refresh, in_band->next_local_refresh);
- if (wakeup > now) {
- poll_timer_wait((wakeup - now) * 1000);
- } else {
- poll_immediate_wake();
- }
+ poll_timer_wait_until(wakeup * 1000);
}
/* ofproto has flushed all flows from the flow table and it is calling us back
ofproto_sflow_wait(struct ofproto_sflow *os)
{
if (ofproto_sflow_is_enabled(os)) {
- poll_timer_wait(os->next_tick * 1000 - time_msec());
+ poll_timer_wait_until(os->next_tick * 1000LL);
}
}
#include "ofproto.h"
#include <errno.h>
#include <inttypes.h>
+#include <sys/socket.h>
#include <net/if.h>
#include <netinet/in.h>
#include <stdbool.h>
HMAP_FOR_EACH (ofconn, struct ofconn, hmap_node, &ofproto->controllers) {
struct sockaddr_in *sin = &addrs[n_addrs];
+ if (ofconn->band == OFPROTO_OUT_OF_BAND) {
+ continue;
+ }
+
sin->sin_addr.s_addr = rconn_get_remote_ip(ofconn->rconn);
if (sin->sin_addr.s_addr) {
sin->sin_port = rconn_get_remote_port(ofconn->rconn);
in_band_create(ofproto, ofproto->wdp, ofproto->switch_status,
&ofproto->in_band);
}
- in_band_set_remotes(ofproto->in_band, addrs, n_addrs);
+ if (ofproto->in_band) {
+ in_band_set_remotes(ofproto->in_band, addrs, n_addrs);
+ }
ofproto->next_in_band_update = time_msec() + 1000;
} else {
in_band_destroy(ofproto->in_band);
ofconn_wait(ofconn);
}
if (p->in_band) {
- poll_timer_wait(p->next_in_band_update - time_msec());
+ poll_timer_wait_until(p->next_in_band_update);
in_band_wait(p->in_band);
}
if (p->fail_open) {
if (wx->need_revalidate /*|| !tag_set_is_empty(&p->revalidate_set)*/) {
poll_immediate_wake();
} else if (wx->next_expiration != LLONG_MAX) {
- poll_timer_wait(wx->next_expiration - time_msec());
+ poll_timer_wait_until(wx->next_expiration);
}
}
# ovsdb-idlc
EXTRA_DIST += \
+ ovsdb/OVSDB.py \
+ ovsdb/SPECS \
ovsdb/simplejson/__init__.py \
ovsdb/simplejson/_speedups.c \
ovsdb/simplejson/decoder.py \
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/stat.h>
#include <unistd.h>
#include "json.h"
ovsdb/ovsdbmonitor/qt4reactor.py
EXTRA_DIST += \
$(ovsdbmonitor_pyfiles) \
+ ovsdb/ovsdbmonitor/COPYING \
ovsdb/ovsdbmonitor/ConfigWindow.ui \
ovsdb/ovsdbmonitor/FlowWindow.ui \
ovsdb/ovsdbmonitor/HostWindow.ui \
+++ /dev/null
-#! @PYTHON@
-# Copyright (c) 2010 Citrix Systems, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Version 1.51
-# 2010-05-07
-
-sys.path.insert(0, "@ovsdbmonitordir@")
-
-import sys, traceback
-from pprint import pprint
-from OVEApp import *
-
-app = OVEApp()
-try:
- retVal = app.enter()
-except Exception, e:
- print str(e)
- try:
- trace = traceback.format_tb(sys.exc_info()[2])
- except:
- trace = ['Traceback not available']
- print("".join(trace))
- retVal = 1
-
-sys.exit(retVal)
-/* Copyright (c) 2009 Nicira Networks
+/* Copyright (c) 2009, 2010 Nicira Networks
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
}
if (deadline < LLONG_MAX) {
- poll_timer_wait(MIN(deadline - now, INT_MAX));
+ poll_timer_wait_until(deadline);
}
}
}
-AT_BANNER([classifier unit tests])
-
-m4_define([CHECK_CLASSIFIER],
- [AT_SETUP([m4_translit([$1], [-], [ ])])
- AT_KEYWORDS([classifier $2])
- AT_CHECK([test-classifier $1])
- AT_CLEANUP])
-
-CHECK_CLASSIFIER([empty])
-CHECK_CLASSIFIER([destroy-null])
-CHECK_CLASSIFIER([single-rule], [slow])
-CHECK_CLASSIFIER([rule-replacement], [slow])
-CHECK_CLASSIFIER([two-rules-in-one-bucket])
-CHECK_CLASSIFIER([two-rules-in-one-table])
-CHECK_CLASSIFIER([two-rules-in-different-tables])
-CHECK_CLASSIFIER([many-rules-in-one-bucket], [slow])
-CHECK_CLASSIFIER([many-rules-in-one-table], [slow])
-CHECK_CLASSIFIER([many-rules-in-different-tables], [slow])
+AT_BANNER([flow classifier unit tests])
+m4_foreach(
+ [testname],
+ [[empty],
+ [destroy-null],
+ [single-rule],
+ [rule-replacement],
+ [two-rules-in-one-bucket],
+ [two-rules-in-one-table],
+ [two-rules-in-different-tables],
+ [many-rules-in-one-bucket],
+ [many-rules-in-one-table],
+ [many-rules-in-different-tables]],
+ [AT_SETUP([flow classifier - m4_bpatsubst(testname, [-], [ ])])
+ AT_CHECK([test-classifier testname], [0], [], [])
+ AT_CLEANUP])])
dnl <ED A0 80> is a surrogate and not allowed in UTF-8.
OVSDB_CHECK_POSITIVE([no invalid UTF-8 sequences in strings],
[parse-atoms '[["string"]]' \
- '@<:@"m4_esyscmd([printf "\xc0"])"@:>@' \
- '@<:@"m4_esyscmd([printf "\xed\xa0\x80"])"@:>@' \
+ '@<:@"m4_esyscmd([printf "\300"])"@:>@' \
+ '@<:@"m4_esyscmd([printf "\355\240\200"])"@:>@' \
],
- [constraint violation: "m4_esyscmd([printf "\xc0"])" is not a valid UTF-8 string: invalid UTF-8 sequence 0xc0
-constraint violation: "m4_esyscmd([printf "\xed\xa0\x80"])" is not a valid UTF-8 string: invalid UTF-8 sequence 0xed 0xa0])
+ [constraint violation: "m4_esyscmd([printf "\300"])" is not a valid UTF-8 string: invalid UTF-8 sequence 0xc0
+constraint violation: "m4_esyscmd([printf "\355\240\200"])" is not a valid UTF-8 string: invalid UTF-8 sequence 0xed 0xa0])
OVSDB_CHECK_NEGATIVE([real not acceptable integer string atom],
[[parse-atom-strings '["integer"]' '0.5' ]],
*/
#include <config.h>
-#include <limits.h>
#include "classifier.h"
#include <errno.h>
#include <limits.h>
#include "command-line.h"
#include "flow.h"
-#include <limits.h>
#include "packets.h"
#include "test-command-line.h"
static void
compare_classifiers(struct classifier *cls, struct tcls *tcls)
{
+ static const int confidence = 500;
unsigned int i;
assert(classifier_count(cls) == tcls->n_rules);
assert(classifier_count_exact(cls) == tcls_count_exact(tcls));
- for (i = 0; i < N_FLOW_VALUES; i++) {
+ for (i = 0; i < confidence; i++) {
struct cls_rule *cr0, *cr1;
flow_t flow;
unsigned int x;
int include;
- x = i;
+ x = rand () % N_FLOW_VALUES;
flow.nw_src = nw_src_values[get_value(&x, N_NW_SRC_VALUES)];
flow.nw_dst = nw_dst_values[get_value(&x, N_NW_DST_VALUES)];
flow.tun_id = tun_id_values[get_value(&x, N_TUN_ID_VALUES)];
/* Tests classification with two rules at a time that fall into different
* tables. */
static void
-test_two_rules_in_different_tables(int argc OVS_UNUSED, char *argv[] OVS_UNUSED)
+test_two_rules_in_different_tables(int argc OVS_UNUSED,
+ char *argv[] OVS_UNUSED)
{
int table1, table2, rel_pri, wcf_pat;
};
int
-main(int argc OVS_UNUSED, char *argv[])
+main(int argc, char *argv[])
{
set_program_name(argv[0]);
time_init();
utilities/ovs-kill \
utilities/ovs-ofctl \
utilities/ovs-openflowd \
- utilities/ovs-vsctl \
- utilities/ovs-wdt
-noinst_PROGRAMS += utilities/nlmon
+ utilities/ovs-vsctl
bin_SCRIPTS += utilities/ovs-pki utilities/ovs-vsctl
noinst_SCRIPTS += utilities/ovs-pki-cgi utilities/ovs-parse-leaks
dist_sbin_SCRIPTS += utilities/ovs-monitor
utilities_ovs_vsctl_SOURCES = utilities/ovs-vsctl.c vswitchd/vswitch-idl.c
utilities_ovs_vsctl_LDADD = lib/libopenvswitch.a $(SSL_LIBS)
+if HAVE_NETLINK
+bin_PROGRAMS += utilities/ovs-wdt
utilities_ovs_wdt_SOURCES = utilities/ovs-wdt.c
+noinst_PROGRAMS += utilities/nlmon
utilities_nlmon_SOURCES = utilities/nlmon.c
utilities_nlmon_LDADD = lib/libopenvswitch.a
+endif
#include <errno.h>
#include <getopt.h>
#include <inttypes.h>
+#include <sys/socket.h>
#include <net/if.h>
#include <netinet/in.h>
#include <signal.h>
#include <errno.h>
#include <getopt.h>
#include <inttypes.h>
+#include <sys/socket.h>
#include <net/if.h>
#include <netinet/in.h>
#include <signal.h>
-sbin_PROGRAMS += vswitchd/ovs-vswitchd vswitchd/ovs-brcompatd
+sbin_PROGRAMS += vswitchd/ovs-vswitchd
man_MANS += \
vswitchd/ovs-vswitchd.8 \
vswitchd/ovs-brcompatd.8
lib/libsflow.a \
lib/libopenvswitch.a \
$(SSL_LIBS)
+EXTRA_DIST += \
+ vswitchd/ovs-vswitchd.8.in \
+ vswitchd/INTERNALS
+if HAVE_NETLINK
+sbin_PROGRAMS += vswitchd/ovs-brcompatd
vswitchd_ovs_brcompatd_SOURCES = \
vswitchd/ovs-brcompatd.c \
vswitchd/vswitch-idl.c \
vswitchd/vswitch-idl.h
-
vswitchd_ovs_brcompatd_LDADD = lib/libopenvswitch.a $(SSL_LIBS)
-
-EXTRA_DIST += \
- vswitchd/ovs-vswitchd.8.in \
- vswitchd/ovs-brcompatd.8.in
+endif
+EXTRA_DIST += vswitchd/ovs-brcompatd.8.in
# vswitch schema and IDL
OVSIDL_BUILT += \
#include <arpa/inet.h>
#include <ctype.h>
#include <inttypes.h>
+#include <sys/socket.h>
#include <net/if.h>
#include <openflow/openflow.h>
#include <signal.h>
for (j = 0; j < port->n_ifaces; j++) {
struct iface *iface = port->ifaces[j];
if (iface->delay_expires != LLONG_MAX) {
- poll_timer_wait(iface->delay_expires - time_msec());
+ poll_timer_wait_until(iface->delay_expires);
}
}
if (port->bond_fake_iface) {
- poll_timer_wait(port->bond_next_fake_iface_update - time_msec());
+ poll_timer_wait_until(port->bond_next_fake_iface_update);
}
}
}
}
}
+/* A VM broadcasts a gratuitous ARP to indicate that it has resumed after
+ * migration. Older Citrix-patched Linux DomU used gratuitous ARP replies to
+ * indicate this; newer upstream kernels use gratuitous ARP requests. */
static bool
-is_bcast_arp_reply(const flow_t *flow)
+is_gratuitous_arp(const flow_t *flow)
{
return (flow->dl_type == htons(ETH_TYPE_ARP)
- && flow->nw_proto == ARP_OP_REPLY
- && eth_addr_is_broadcast(flow->dl_dst));
+ && eth_addr_is_broadcast(flow->dl_dst)
+ && (flow->nw_proto == ARP_OP_REPLY
+ || (flow->nw_proto == ARP_OP_REQUEST
+ && flow->nw_src == flow->nw_dst)));
}
/* Determines whether packets in 'flow' within 'br' should be forwarded or
/* Drop all packets for which we have learned a different input
* port, because we probably sent the packet on one slave and got
- * it back on the other. Broadcast ARP replies are an exception
+ * it back on the other. Gratuitous ARP packets are an exception
* to this rule: the host has moved to another switch. */
src_idx = mac_learning_lookup(br->ml, flow->dl_src, vlan);
if (src_idx != -1 && src_idx != in_port->port_idx &&
- !is_bcast_arp_reply(flow)) {
+ !is_gratuitous_arp(flow)) {
return false;
}
}
exist. This option should only be used if such legacy software is
actually in use. It requires the \fBbrcompat_mod.ko\fR kernel module
to be loaded.
+.IP
+On non-Linux hosts, this option is accepted but has no effect.
.
.so lib/daemon.man
.SS "Public Key Infrastructure Options"
-/* Copyright (c) 2009 Nicira Networks
+/* Copyright (c) 2009, 2010 Nicira Networks
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <config.h>
#include "proc-net-compat.h"
+
+#ifdef HAVE_NETLINK
#include <assert.h>
#include <dirent.h>
#include <errno.h>
set_proc_file("net/vlan", "config", ds_cstr(&ds));
ds_destroy(&ds);
}
+#else /* !HAVE_NETLINK */
+#include "compiler.h"
+
+int
+proc_net_compat_init(void)
+{
+ return 0;
+}
+
+void
+proc_net_compat_update_bond(const char *name OVS_UNUSED,
+ const struct compat_bond *bond OVS_UNUSED)
+{
+}
+
+void
+proc_net_compat_update_vlan(const char *tagged_dev OVS_UNUSED,
+ const char *trunk_dev OVS_UNUSED,
+ int vid OVS_UNUSED)
+{
+}
+#endif /* !HAVE_NETLINK */
poll_timer_wait(1000);
}
if (next_refresh != LLONG_MAX) {
- poll_timer_wait(next_refresh - time_msec());
+ poll_timer_wait_until(next_refresh);
}
}
}