diff options
author | Venkata Mohan Reddy <mohanreddykv@gmail.com> | 2010-02-18 12:31:05 +0100 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2010-02-18 12:31:05 +0100 |
commit | 2906f66a5682e5670a5eefe991843689b8d8563f (patch) | |
tree | dcbc3ef175c609d2fa32a8e7478eb0d17015c0a7 /net/netfilter/ipvs/ip_vs_ctl.c | |
parent | 477c608673526afc094be521086fed186c7ccf7d (diff) | |
download | op-kernel-dev-2906f66a5682e5670a5eefe991843689b8d8563f.zip op-kernel-dev-2906f66a5682e5670a5eefe991843689b8d8563f.tar.gz |
ipvs: SCTP Trasport Loadbalancing Support
Enhance IPVS to load balance SCTP transport protocol packets. This is done
based on the SCTP rfc 4960. All possible control chunks have been taken
care. The state machine used in this code looks some what lengthy. I tried
to make the state machine easy to understand.
Signed-off-by: Venkata Mohan Reddy Koppula <mohanreddykv@gmail.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'net/netfilter/ipvs/ip_vs_ctl.c')
-rw-r--r-- | net/netfilter/ipvs/ip_vs_ctl.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c index 00d0b15..7ee9c34 100644 --- a/net/netfilter/ipvs/ip_vs_ctl.c +++ b/net/netfilter/ipvs/ip_vs_ctl.c @@ -2132,8 +2132,9 @@ do_ip_vs_set_ctl(struct sock *sk, int cmd, void __user *user, unsigned int len) } } - /* Check for valid protocol: TCP or UDP, even for fwmark!=0 */ - if (usvc.protocol != IPPROTO_TCP && usvc.protocol != IPPROTO_UDP) { + /* Check for valid protocol: TCP or UDP or SCTP, even for fwmark!=0 */ + if (usvc.protocol != IPPROTO_TCP && usvc.protocol != IPPROTO_UDP && + usvc.protocol != IPPROTO_SCTP) { pr_err("set_ctl: invalid protocol: %d %pI4:%d %s\n", usvc.protocol, &usvc.addr.ip, ntohs(usvc.port), usvc.sched_name); |