mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 19:29:37 +00:00
IPVS: Integrate ESP protocol into ip_vs_proto_ah.c
Rename all ah_* functions to ah_esp_* (and adjust comments). Move ESP protocol definition into ip_vs_proto_ah.c and remove all usage of ip_vs_proto_esp.c. Make the compilation of ip_vs_proto_ah.c dependent on a new config variable, IP_VS_PROTO_AH_ESP, which is selected either by IP_VS_PROTO_ESP or IP_VS_PROTO_AH. Only compile the selected protocols' structures within this file. Signed-off-by: Julius Volz <juliusv@google.com> Signed-off-by: Simon Horman <horms@verge.net.au>
This commit is contained in:
parent
f728bafb56
commit
409a19669e
3 changed files with 54 additions and 24 deletions
|
@ -71,14 +71,20 @@ config IP_VS_PROTO_UDP
|
|||
This option enables support for load balancing UDP transport
|
||||
protocol. Say Y if unsure.
|
||||
|
||||
config IP_VS_PROTO_AH_ESP
|
||||
bool
|
||||
depends on UNDEFINED
|
||||
|
||||
config IP_VS_PROTO_ESP
|
||||
bool "ESP load balancing support"
|
||||
select IP_VS_PROTO_AH_ESP
|
||||
---help---
|
||||
This option enables support for load balancing ESP (Encapsulation
|
||||
Security Payload) transport protocol. Say Y if unsure.
|
||||
|
||||
config IP_VS_PROTO_AH
|
||||
bool "AH load balancing support"
|
||||
select IP_VS_PROTO_AH_ESP
|
||||
---help---
|
||||
This option enables support for load balancing AH (Authentication
|
||||
Header) transport protocol. Say Y if unsure.
|
||||
|
|
|
@ -6,8 +6,7 @@
|
|||
ip_vs_proto-objs-y :=
|
||||
ip_vs_proto-objs-$(CONFIG_IP_VS_PROTO_TCP) += ip_vs_proto_tcp.o
|
||||
ip_vs_proto-objs-$(CONFIG_IP_VS_PROTO_UDP) += ip_vs_proto_udp.o
|
||||
ip_vs_proto-objs-$(CONFIG_IP_VS_PROTO_ESP) += ip_vs_proto_esp.o
|
||||
ip_vs_proto-objs-$(CONFIG_IP_VS_PROTO_AH) += ip_vs_proto_ah.o
|
||||
ip_vs_proto-objs-$(CONFIG_IP_VS_PROTO_AH_ESP) += ip_vs_proto_ah.o
|
||||
|
||||
ip_vs-objs := ip_vs_conn.o ip_vs_core.o ip_vs_ctl.o ip_vs_sched.o \
|
||||
ip_vs_xmit.o ip_vs_app.o ip_vs_sync.o \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* ip_vs_proto_ah.c: AH IPSec load balancing support for IPVS
|
||||
* ip_vs_proto_ah_esp.c: AH/ESP IPSec load balancing support for IPVS
|
||||
*
|
||||
* Authors: Julian Anastasov <ja@ssi.bg>, February 2002
|
||||
* Wensong Zhang <wensong@linuxvirtualserver.org>
|
||||
|
@ -39,11 +39,11 @@ struct isakmp_hdr {
|
|||
|
||||
|
||||
static struct ip_vs_conn *
|
||||
ah_conn_in_get(const struct sk_buff *skb,
|
||||
struct ip_vs_protocol *pp,
|
||||
const struct iphdr *iph,
|
||||
unsigned int proto_off,
|
||||
int inverse)
|
||||
ah_esp_conn_in_get(const struct sk_buff *skb,
|
||||
struct ip_vs_protocol *pp,
|
||||
const struct iphdr *iph,
|
||||
unsigned int proto_off,
|
||||
int inverse)
|
||||
{
|
||||
struct ip_vs_conn *cp;
|
||||
|
||||
|
@ -79,8 +79,8 @@ ah_conn_in_get(const struct sk_buff *skb,
|
|||
|
||||
|
||||
static struct ip_vs_conn *
|
||||
ah_conn_out_get(const struct sk_buff *skb, struct ip_vs_protocol *pp,
|
||||
const struct iphdr *iph, unsigned int proto_off, int inverse)
|
||||
ah_esp_conn_out_get(const struct sk_buff *skb, struct ip_vs_protocol *pp,
|
||||
const struct iphdr *iph, unsigned int proto_off, int inverse)
|
||||
{
|
||||
struct ip_vs_conn *cp;
|
||||
|
||||
|
@ -112,12 +112,12 @@ ah_conn_out_get(const struct sk_buff *skb, struct ip_vs_protocol *pp,
|
|||
|
||||
|
||||
static int
|
||||
ah_conn_schedule(struct sk_buff *skb,
|
||||
struct ip_vs_protocol *pp,
|
||||
int *verdict, struct ip_vs_conn **cpp)
|
||||
ah_esp_conn_schedule(struct sk_buff *skb,
|
||||
struct ip_vs_protocol *pp,
|
||||
int *verdict, struct ip_vs_conn **cpp)
|
||||
{
|
||||
/*
|
||||
* AH is only related traffic. Pass the packet to IP stack.
|
||||
* AH/ESP is only related traffic. Pass the packet to IP stack.
|
||||
*/
|
||||
*verdict = NF_ACCEPT;
|
||||
return 0;
|
||||
|
@ -125,8 +125,8 @@ ah_conn_schedule(struct sk_buff *skb,
|
|||
|
||||
|
||||
static void
|
||||
ah_debug_packet(struct ip_vs_protocol *pp, const struct sk_buff *skb,
|
||||
int offset, const char *msg)
|
||||
ah_esp_debug_packet(struct ip_vs_protocol *pp, const struct sk_buff *skb,
|
||||
int offset, const char *msg)
|
||||
{
|
||||
char buf[256];
|
||||
struct iphdr _iph, *ih;
|
||||
|
@ -143,28 +143,29 @@ ah_debug_packet(struct ip_vs_protocol *pp, const struct sk_buff *skb,
|
|||
}
|
||||
|
||||
|
||||
static void ah_init(struct ip_vs_protocol *pp)
|
||||
static void ah_esp_init(struct ip_vs_protocol *pp)
|
||||
{
|
||||
/* nothing to do now */
|
||||
}
|
||||
|
||||
|
||||
static void ah_exit(struct ip_vs_protocol *pp)
|
||||
static void ah_esp_exit(struct ip_vs_protocol *pp)
|
||||
{
|
||||
/* nothing to do now */
|
||||
}
|
||||
|
||||
|
||||
#ifdef CONFIG_IP_VS_PROTO_AH
|
||||
struct ip_vs_protocol ip_vs_protocol_ah = {
|
||||
.name = "AH",
|
||||
.protocol = IPPROTO_AH,
|
||||
.num_states = 1,
|
||||
.dont_defrag = 1,
|
||||
.init = ah_init,
|
||||
.exit = ah_exit,
|
||||
.conn_schedule = ah_conn_schedule,
|
||||
.conn_in_get = ah_conn_in_get,
|
||||
.conn_out_get = ah_conn_out_get,
|
||||
.init = ah_esp_init,
|
||||
.exit = ah_esp_exit,
|
||||
.conn_schedule = ah_esp_conn_schedule,
|
||||
.conn_in_get = ah_esp_conn_in_get,
|
||||
.conn_out_get = ah_esp_conn_out_get,
|
||||
.snat_handler = NULL,
|
||||
.dnat_handler = NULL,
|
||||
.csum_check = NULL,
|
||||
|
@ -172,7 +173,31 @@ struct ip_vs_protocol ip_vs_protocol_ah = {
|
|||
.register_app = NULL,
|
||||
.unregister_app = NULL,
|
||||
.app_conn_bind = NULL,
|
||||
.debug_packet = ah_debug_packet,
|
||||
.debug_packet = ah_esp_debug_packet,
|
||||
.timeout_change = NULL, /* ISAKMP */
|
||||
.set_state_timeout = NULL,
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_IP_VS_PROTO_ESP
|
||||
struct ip_vs_protocol ip_vs_protocol_esp = {
|
||||
.name = "ESP",
|
||||
.protocol = IPPROTO_ESP,
|
||||
.num_states = 1,
|
||||
.dont_defrag = 1,
|
||||
.init = ah_esp_init,
|
||||
.exit = ah_esp_exit,
|
||||
.conn_schedule = ah_esp_conn_schedule,
|
||||
.conn_in_get = ah_esp_conn_in_get,
|
||||
.conn_out_get = ah_esp_conn_out_get,
|
||||
.snat_handler = NULL,
|
||||
.dnat_handler = NULL,
|
||||
.csum_check = NULL,
|
||||
.state_transition = NULL,
|
||||
.register_app = NULL,
|
||||
.unregister_app = NULL,
|
||||
.app_conn_bind = NULL,
|
||||
.debug_packet = ah_esp_debug_packet,
|
||||
.timeout_change = NULL, /* ISAKMP */
|
||||
};
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue