diff options
author | Venkata Mohan Reddy <mohanreddykv@gmail.com> | 2010-02-18 06:31:05 -0500 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2010-02-18 06:31:05 -0500 |
commit | 2906f66a5682e5670a5eefe991843689b8d8563f (patch) | |
tree | dcbc3ef175c609d2fa32a8e7478eb0d17015c0a7 /include/net | |
parent | 477c608673526afc094be521086fed186c7ccf7d (diff) |
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 'include/net')
-rw-r--r-- | include/net/ip_vs.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h index a816c37417bb..fe82b1e10a29 100644 --- a/include/net/ip_vs.h +++ b/include/net/ip_vs.h | |||
@@ -225,6 +225,26 @@ enum { | |||
225 | }; | 225 | }; |
226 | 226 | ||
227 | /* | 227 | /* |
228 | * SCTP State Values | ||
229 | */ | ||
230 | enum ip_vs_sctp_states { | ||
231 | IP_VS_SCTP_S_NONE, | ||
232 | IP_VS_SCTP_S_INIT_CLI, | ||
233 | IP_VS_SCTP_S_INIT_SER, | ||
234 | IP_VS_SCTP_S_INIT_ACK_CLI, | ||
235 | IP_VS_SCTP_S_INIT_ACK_SER, | ||
236 | IP_VS_SCTP_S_ECHO_CLI, | ||
237 | IP_VS_SCTP_S_ECHO_SER, | ||
238 | IP_VS_SCTP_S_ESTABLISHED, | ||
239 | IP_VS_SCTP_S_SHUT_CLI, | ||
240 | IP_VS_SCTP_S_SHUT_SER, | ||
241 | IP_VS_SCTP_S_SHUT_ACK_CLI, | ||
242 | IP_VS_SCTP_S_SHUT_ACK_SER, | ||
243 | IP_VS_SCTP_S_CLOSED, | ||
244 | IP_VS_SCTP_S_LAST | ||
245 | }; | ||
246 | |||
247 | /* | ||
228 | * Delta sequence info structure | 248 | * Delta sequence info structure |
229 | * Each ip_vs_conn has 2 (output AND input seq. changes). | 249 | * Each ip_vs_conn has 2 (output AND input seq. changes). |
230 | * Only used in the VS/NAT. | 250 | * Only used in the VS/NAT. |
@@ -741,7 +761,7 @@ extern struct ip_vs_protocol ip_vs_protocol_udp; | |||
741 | extern struct ip_vs_protocol ip_vs_protocol_icmp; | 761 | extern struct ip_vs_protocol ip_vs_protocol_icmp; |
742 | extern struct ip_vs_protocol ip_vs_protocol_esp; | 762 | extern struct ip_vs_protocol ip_vs_protocol_esp; |
743 | extern struct ip_vs_protocol ip_vs_protocol_ah; | 763 | extern struct ip_vs_protocol ip_vs_protocol_ah; |
744 | 764 | extern struct ip_vs_protocol ip_vs_protocol_sctp; | |
745 | 765 | ||
746 | /* | 766 | /* |
747 | * Registering/unregistering scheduler functions | 767 | * Registering/unregistering scheduler functions |