Patrick McHardy
f0ad0860d0
ipv4: ipmr: support multiple tables
...
This patch adds support for multiple independant multicast routing instances,
named "tables".
Userspace multicast routing daemons can bind to a specific table instance by
issuing a setsockopt call using a new option MRT_TABLE. The table number is
stored in the raw socket data and affects all following ipmr setsockopt(),
getsockopt() and ioctl() calls. By default, a single table (RT_TABLE_DEFAULT)
is created with a default routing rule pointing to it. Newly created pimreg
devices have the table number appended ("pimregX"), with the exception of
devices created in the default table, which are named just "pimreg" for
compatibility reasons.
Packets are directed to a specific table instance using routing rules,
similar to how regular routing rules work. Currently iif, oif and mark
are supported as keys, source and destination addresses could be supported
additionally.
Example usage:
- bind pimd/xorp/... to a specific table:
uint32_t table = 123;
setsockopt(fd, IPPROTO_IP, MRT_TABLE, &table, sizeof(table));
- create routing rules directing packets to the new table:
# ip mrule add iif eth0 lookup 123
# ip mrule add oif eth0 lookup 123
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-04-13 14:49:34 -07:00
..
9p
9p: Make sure we are able to clunk the cached fid on umount
2010-04-05 10:37:36 -05:00
bluetooth
Bluetooth: Convert debug files to actually use debugfs instead of sysfs
2010-03-21 05:49:35 +01:00
caif
net-caif: add CAIF Link layer device header files
2010-03-30 19:08:45 -07:00
irda
tree-wide: fix typos "ass?o[sc]iac?te" -> "associate" in comments
2010-02-15 15:38:10 +01:00
iucv
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
netfilter
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
netns
ipv4: ipmr: support multiple tables
2010-04-13 14:49:34 -07:00
phonet
Phonet: zero-copy GPRS TX
2010-01-07 00:24:55 -08:00
sctp
net: snmp mib cleanup
2010-03-21 18:34:16 -07:00
tc_act
pkt_sched: skbedit add support for setting mark
2009-10-22 21:56:42 -07:00
tipc
act_api.h
addrconf.h
net: Add checking to rcu_dereference() primitives
2010-02-25 09:41:03 +01:00
af_ieee802154.h
af_rxrpc.h
af_unix.h
ah.h
net: cleanup include/net
2009-11-04 05:06:25 -08:00
arp.h
net: make neigh_ops constant
2009-09-01 17:40:57 -07:00
atmclip.h
ax25.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
ax88796.h
cfg80211.h
cfg80211: Add connection quality monitoring support to nl80211
2010-03-24 16:02:37 -04:00
checksum.h
cipso_ipv4.h
compat.h
net: fix compat_sys_recvmmsg parameter type
2009-12-11 15:07:56 -08:00
datalink.h
dcbnl.h
dcbnl: Add support for setapp/getapp to netdev dcbnl_rtnl_ops
2009-09-01 01:24:30 -07:00
dn.h
dn_dev.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
2009-12-08 07:55:01 -08:00
dn_fib.h
decnet: Remove unused FIB metric macros.
2010-03-27 19:23:46 -07:00
dn_neigh.h
dn_nsp.h
net: cleanup include/net
2009-11-04 05:06:25 -08:00
dn_route.h
dsa.h
dsfield.h
dst.h
net: sk_dst_cache RCUification
2010-04-13 01:41:33 -07:00
dst_ops.h
netns: embed ip6_dst_ops directly
2009-09-01 17:40:31 -07:00
esp.h
ethoc.h
fib_rules.h
net: fib_rules: consolidate IPv4 and DECnet ->default_pref() functions.
2010-04-13 14:49:30 -07:00
flow.h
flow: virtualize flow cache entry methods
2010-04-07 03:43:18 -07:00
garp.h
gen_stats.h
net: cleanup include/net
2009-11-04 05:06:25 -08:00
genetlink.h
net: cleanup include/net
2009-11-04 05:06:25 -08:00
icmp.h
ipv4: raw: move struct raw_sock and raw_sk() to include/net/raw.h
2010-04-13 14:49:31 -07:00
ieee80211_radiotap.h
wireless: update radiotap parser
2010-02-08 16:50:53 -05:00
ieee802154.h
ieee802154_netdev.h
ieee802154: add an mlme_ops call to retrieve PHY object
2009-11-06 14:32:18 +03:00
if_inet6.h
ipv6: convert idev_list to list macros
2010-03-20 15:45:09 -07:00
inet6_connection_sock.h
inet6_hashtables.h
tcp: Fix a connect() race with timewait sockets
2009-12-08 20:17:51 -08:00
inet_common.h
inet_connection_sock.h
inet: Remove unused send_check length argument
2010-04-11 15:29:09 -07:00
inet_ecn.h
inet_frag.h
inet_hashtables.h
tcp: Fix a connect() race with timewait sockets
2009-12-08 20:17:51 -08:00
inet_sock.h
tcp: Generalized TTL Security Mechanism
2010-01-11 16:28:01 -08:00
inet_timewait_sock.h
tcp: Fix a connect() race with timewait sockets
2009-12-08 20:17:51 -08:00
inetpeer.h
inetpeer: Optimize inet_getid()
2009-11-13 20:46:58 -08:00
ip.h
percpu: add __percpu sparse annotations to net
2010-02-16 23:05:38 -08:00
ip6_checksum.h
ip6_fib.h
ipv6 fib: Make rt6_info{} more cache-line aware.
2010-04-01 18:41:41 -07:00
ip6_route.h
net: sk_dst_cache RCUification
2010-04-13 01:41:33 -07:00
ip6_tunnel.h
ipv6 ip6_tunnel: eliminate unused recursion field from ip6_tnl{}.
2010-03-10 07:32:29 -08:00
ip_fib.h
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2009-11-06 00:55:55 -08:00
ip_vs.h
ipvs: SCTP Trasport Loadbalancing Support
2010-02-18 12:31:05 +01:00
ipcomp.h
percpu: add __percpu sparse annotations to net
2010-02-16 23:05:38 -08:00
ipconfig.h
ipip.h
net: cleanup include/net
2009-11-04 05:06:25 -08:00
ipv6.h
ipv6: Use __fls() instead of fls() in __ipv6_addr_diff().
2010-03-30 23:28:46 -07:00
ipx.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
iw_handler.h
net: cleanup include/net
2009-11-04 05:06:25 -08:00
lapb.h
lib80211.h
llc.h
llc: convert llc_sap_list to RCU
2009-12-26 20:46:28 -08:00
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc: use a device based hash table to speed up multicast delivery
2009-12-26 20:43:57 -08:00
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
mac80211.h
net: convert multicast list to list_head
2010-04-03 14:22:15 -07:00
mip6.h
ndisc.h
sysctl: remove "struct file *" argument of ->proc_handler
2009-09-24 07:21:04 -07:00
neighbour.h
percpu: add __percpu sparse annotations to net
2010-02-16 23:05:38 -08:00
net_namespace.h
nsproxy: remove INIT_NSPROXY()
2010-03-12 15:52:40 -08:00
netdma.h
netevent.h
netlabel.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
netlink.h
netlink: fix unaligned access in nla_get_be64()
2010-03-19 22:47:23 -07:00
netrom.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
nexthop.h
nl802154.h
p8022.h
pkt_cls.h
net: rename skb->iif to skb->skb_iif
2009-11-20 15:35:04 -08:00
pkt_sched.h
gen_estimator: deadlock fix
2010-04-01 18:38:48 -07:00
protocol.h
net: drop capability from protocol definitions
2009-11-05 21:40:17 -08:00
psnap.h
raw.h
ipv4: ipmr: support multiple tables
2010-04-13 14:49:34 -07:00
rawv6.h
red.h
net: cleanup include/net
2009-11-04 05:06:25 -08:00
regulatory.h
cfg80211: add regulatory hint disconnect support
2010-02-01 15:40:06 -05:00
request_sock.h
tcp: account SYN-ACK timeouts & retransmissions
2010-01-17 19:09:39 -08:00
rose.h
route.h
percpu: add __percpu sparse annotations to net
2010-02-16 23:05:38 -08:00
rtnetlink.h
rtnetlink: support specifying device flags on device creation
2010-02-27 02:43:40 -08:00
sch_generic.h
gen_estimator: deadlock fix
2010-04-01 18:38:48 -07:00
scm.h
net: cleanup include/net
2009-11-04 05:06:25 -08:00
slhc_vj.h
snmp.h
net: snmp mib cleanup
2010-03-21 18:34:16 -07:00
sock.h
net: sk_dst_cache RCUification
2010-04-13 01:41:33 -07:00
stp.h
tcp.h
inet: Remove unused send_check length argument
2010-04-11 15:29:09 -07:00
tcp_states.h
timewait_sock.h
transp_v6.h
inet: inet_connection_sock_af_ops const
2009-09-02 01:03:49 -07:00
udp.h
udp: bind() optimisation
2009-11-10 20:54:38 -08:00
udplite.h
wext.h
wext: refactor
2009-10-07 16:39:43 -04:00
wimax.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2009-12-09 19:43:33 -08:00
wpan-phy.h
ieee802154: add support for creation/removal of logic interfaces
2009-11-06 14:32:24 +03:00
x25.h
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
2010-04-11 02:44:30 -07:00
x25device.h
xfrm.h
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2010-04-11 14:53:53 -07:00