This commit is contained in:
Marcela Mašláňová 2010-02-25 09:52:40 +00:00
parent 2ebcdaf44d
commit e8a58a12b6
6 changed files with 9 additions and 2063 deletions

View File

@ -1 +1 @@
iproute2-2.6.31.tar.bz2
iproute2-2.6.33.tar.bz2

View File

@ -1,15 +1,13 @@
#%define date_version 20091106
%define cbq_version v0.7.3
%define up_version 2.6.31
Summary: Advanced IP routing and network device configuration tools
Name: iproute
Version: 2.6.32
Release: 2%{?dist}
Version: 2.6.33
Release: 1%{?dist}
Group: Applications/System
##Source: iproute2-%{date_version}.tar.bz2
# mistake in number of release it's really 2.6.32 but upstream released it as 2.6.31.tar
Source: http://developer.osdl.org/dev/iproute2/download/iproute2-%{up_version}.tar.bz2
Source: http://developer.osdl.org/dev/iproute2/download/iproute2-%{version}.tar.bz2
URL: http://linux-net.osdl.org/index.php/Iproute2
Patch0: man-pages.patch
Patch1: iproute2-2.6.29-kernel.patch
@ -19,8 +17,6 @@ Patch4: iproute2-sharepath.patch
Patch5: iproute2-2.6.31-tc_modules.patch
Patch6: iproute2-2.6.29-IPPROTO_IP_for_SA.patch
Patch7: iproute2-example-cbq-service.patch
Patch8: iproute2-2.6.32-macvlan.patch
Patch9: iproute2-2.6.33-kernel-headers.patch
License: GPLv2+ and Public Domain
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -43,7 +39,7 @@ License: GPLv2+
The iproute documentation contains howtos and examples of settings.
%prep
%setup -q -n iproute2-%{up_version}
%setup -q -n iproute2-%{version}
%patch0 -p1
%patch1 -p1 -b .kernel
%patch2 -p1 -b .opt_flags
@ -52,8 +48,6 @@ The iproute documentation contains howtos and examples of settings.
%patch5 -p1 -b .ipt
%patch6 -p1 -b .ipproto
%patch7 -p1 -b .fix_cbq
%patch8 -p1 -b .macvlan
%patch9 -p1 -b .headers
%build
export LIBDIR=/%{_libdir}
@ -132,6 +126,9 @@ EOF
%doc RELNOTES
%changelog
* Thu Feb 25 2010 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.33-1
- update
* Tue Jan 26 2010 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.32-2
- add macvlan aka VESA support d63a9b2b1e4e3eab0d0577d0a0f412d50be1e0a7
- kernel headers 2.6.33 ab322673298bd0b8927cdd9d11f3d36af5941b93

View File

@ -1,12 +0,0 @@
diff -up iproute2-20091009/Makefile.ipt iproute2-20091009/Makefile
--- iproute2-20091009/Makefile.ipt 2009-10-09 13:29:27.137385281 +0200
+++ iproute2-20091009/Makefile 2009-10-09 13:32:14.251632048 +0200
@@ -11,7 +11,7 @@ KERNEL_INCLUDE=/usr/include
# Path to db_185.h include
DBM_INCLUDE:=$(ROOTDIR)/usr/include
-DEFINES= -DRESOLVE_HOSTNAMES -DLIBDIR=\"$(LIBDIR)\"
+DEFINES= -DRESOLVE_HOSTNAMES -DLIBDIR=\"$(LIBDIR)\" -DIPT_LIB_DIR=\"$(IPT_LIB_DIR)\"
#options if you have a bind>=4.9.4 libresolv (or, maybe, glibc)
LDLIBS=-lresolv

View File

@ -1,158 +0,0 @@
From d63a9b2b1e4e3eab0d0577d0a0f412d50be1e0a7 Mon Sep 17 00:00:00 2001
From: Arnd Bergmann <arnd@arndb.de>
Date: Sat, 26 Dec 2009 11:22:57 -0800
Subject: [PATCH] iproute2/iplink: add macvlan options for bridge mode
Macvlan can now optionally support forwarding between its
ports, if they are in "bridge" mode. This adds support
for this option to "ip link add", "ip link set" and "ip
-d link show".
The default mode in the kernel is now "vepa" mode, meaning
"virtual ethernet port aggregator". This mode is used
together with the "hairpin" mode of an ethernet bridge
that the parent of the macvlan device is connected to.
All frames still get sent out to the external interface,
but the adjacent bridge is able to send them back on
the same wire in hairpin mode, so the macvlan ports
are able to see each other, which the bridge can be
configured to monitor and control traffic between
all macvlan instances. Multicast traffic coming in
from the external interface is checked for the source
MAC address and only delivered to ports that have not
yet seen it.
In bridge mode, macvlan will send all multicast traffic
to other interfaces that are also in bridge mode but
not to those in vepa mode, which get them on the way
back from the hairpin.
The third supported mode is "private", which prevents
communication between macvlans even if the adjacent
bridge is in hairpin mode. This behavior is closer to
the original implementation of macvlan but stricly
maintains isolation.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
ip/Makefile | 3 +-
ip/iplink_macvlan.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 95 insertions(+), 1 deletions(-)
create mode 100644 ip/iplink_macvlan.c
diff --git a/ip/Makefile b/ip/Makefile
index 51914e8..46a9836 100644
--- a/ip/Makefile
+++ b/ip/Makefile
@@ -2,7 +2,8 @@ IPOBJ=ip.o ipaddress.o ipaddrlabel.o iproute.o iprule.o \
rtm_map.o iptunnel.o ip6tunnel.o tunnel.o ipneigh.o ipntable.o iplink.o \
ipmaddr.o ipmonitor.o ipmroute.o ipprefix.o \
ipxfrm.o xfrm_state.o xfrm_policy.o xfrm_monitor.o \
- iplink_vlan.o link_veth.o link_gre.o iplink_can.o
+ iplink_vlan.o link_veth.o link_gre.o iplink_can.o \
+ iplink_macvlan.o
RTMONOBJ=rtmon.o
diff --git a/ip/iplink_macvlan.c b/ip/iplink_macvlan.c
new file mode 100644
index 0000000..a3c78bd
--- /dev/null
+++ b/ip/iplink_macvlan.c
@@ -0,0 +1,93 @@
+/*
+ * iplink_vlan.c VLAN device support
+ *
+ * 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
+ * 2 of the License, or (at your option) any later version.
+ *
+ * Authors: Patrick McHardy <kaber@trash.net>
+ * Arnd Bergmann <arnd@arndb.de>
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/socket.h>
+#include <linux/if_link.h>
+
+#include "rt_names.h"
+#include "utils.h"
+#include "ip_common.h"
+
+static void explain(void)
+{
+ fprintf(stderr,
+ "Usage: ... macvlan mode { private | vepa | bridge }\n"
+ );
+}
+
+static int mode_arg(void)
+{
+ fprintf(stderr, "Error: argument of \"mode\" must be \"private\", "
+ "\"vepa\" or \"bridge\"\n");
+ return -1;
+}
+
+static int macvlan_parse_opt(struct link_util *lu, int argc, char **argv,
+ struct nlmsghdr *n)
+{
+ while (argc > 0) {
+ if (matches(*argv, "mode") == 0) {
+ __u32 mode = 0;
+ NEXT_ARG();
+
+ if (strcmp(*argv, "private") == 0)
+ mode = MACVLAN_MODE_PRIVATE;
+ else if (strcmp(*argv, "vepa") == 0)
+ mode = MACVLAN_MODE_VEPA;
+ else if (strcmp(*argv, "bridge") == 0)
+ mode = MACVLAN_MODE_BRIDGE;
+ else
+ return mode_arg();
+
+ addattr32(n, 1024, IFLA_MACVLAN_MODE, mode);
+ } else if (matches(*argv, "help") == 0) {
+ explain();
+ return -1;
+ } else {
+ fprintf(stderr, "macvlan: what is \"%s\"?\n", *argv);
+ explain();
+ return -1;
+ }
+ argc--, argv++;
+ }
+
+ return 0;
+}
+
+static void macvlan_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
+{
+ __u32 mode;
+
+ if (!tb)
+ return;
+
+ if (!tb[IFLA_MACVLAN_MODE] ||
+ RTA_PAYLOAD(tb[IFLA_MACVLAN_MODE]) < sizeof(__u32))
+ return;
+
+ mode = *(__u32 *)RTA_DATA(tb[IFLA_VLAN_ID]);
+ fprintf(f, " mode %s ",
+ mode == MACVLAN_MODE_PRIVATE ? "private"
+ : mode == MACVLAN_MODE_VEPA ? "vepa"
+ : mode == MACVLAN_MODE_BRIDGE ? "bridge"
+ : "unknown");
+}
+
+struct link_util macvlan_link_util = {
+ .id = "macvlan",
+ .maxattr = IFLA_MACVLAN_MAX,
+ .parse_opt = macvlan_parse_opt,
+ .print_opt = macvlan_print_opt,
+};
--
1.6.6

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
230f35282a95451622f3e8394f9cd80a iproute2-2.6.31.tar.bz2
b371fca3fcb5e436e69a7c2111d84a3c iproute2-2.6.33.tar.bz2