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:
Родитель
f728bafb56
Коммит
409a19669e
|
@ -71,14 +71,20 @@ config IP_VS_PROTO_UDP
|
||||||
This option enables support for load balancing UDP transport
|
This option enables support for load balancing UDP transport
|
||||||
protocol. Say Y if unsure.
|
protocol. Say Y if unsure.
|
||||||
|
|
||||||
|
config IP_VS_PROTO_AH_ESP
|
||||||
|
bool
|
||||||
|
depends on UNDEFINED
|
||||||
|
|
||||||
config IP_VS_PROTO_ESP
|
config IP_VS_PROTO_ESP
|
||||||
bool "ESP load balancing support"
|
bool "ESP load balancing support"
|
||||||
|
select IP_VS_PROTO_AH_ESP
|
||||||
---help---
|
---help---
|
||||||
This option enables support for load balancing ESP (Encapsulation
|
This option enables support for load balancing ESP (Encapsulation
|
||||||
Security Payload) transport protocol. Say Y if unsure.
|
Security Payload) transport protocol. Say Y if unsure.
|
||||||
|
|
||||||
config IP_VS_PROTO_AH
|
config IP_VS_PROTO_AH
|
||||||
bool "AH load balancing support"
|
bool "AH load balancing support"
|
||||||
|
select IP_VS_PROTO_AH_ESP
|
||||||
---help---
|
---help---
|
||||||
This option enables support for load balancing AH (Authentication
|
This option enables support for load balancing AH (Authentication
|
||||||
Header) transport protocol. Say Y if unsure.
|
Header) transport protocol. Say Y if unsure.
|
||||||
|
|
|
@ -6,8 +6,7 @@
|
||||||
ip_vs_proto-objs-y :=
|
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_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_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_ESP) += ip_vs_proto_ah.o
|
||||||
ip_vs_proto-objs-$(CONFIG_IP_VS_PROTO_AH) += 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-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 \
|
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
|
* Authors: Julian Anastasov <ja@ssi.bg>, February 2002
|
||||||
* Wensong Zhang <wensong@linuxvirtualserver.org>
|
* Wensong Zhang <wensong@linuxvirtualserver.org>
|
||||||
|
@ -39,7 +39,7 @@ struct isakmp_hdr {
|
||||||
|
|
||||||
|
|
||||||
static struct ip_vs_conn *
|
static struct ip_vs_conn *
|
||||||
ah_conn_in_get(const struct sk_buff *skb,
|
ah_esp_conn_in_get(const struct sk_buff *skb,
|
||||||
struct ip_vs_protocol *pp,
|
struct ip_vs_protocol *pp,
|
||||||
const struct iphdr *iph,
|
const struct iphdr *iph,
|
||||||
unsigned int proto_off,
|
unsigned int proto_off,
|
||||||
|
@ -79,7 +79,7 @@ ah_conn_in_get(const struct sk_buff *skb,
|
||||||
|
|
||||||
|
|
||||||
static struct ip_vs_conn *
|
static struct ip_vs_conn *
|
||||||
ah_conn_out_get(const struct sk_buff *skb, struct ip_vs_protocol *pp,
|
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)
|
const struct iphdr *iph, unsigned int proto_off, int inverse)
|
||||||
{
|
{
|
||||||
struct ip_vs_conn *cp;
|
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
|
static int
|
||||||
ah_conn_schedule(struct sk_buff *skb,
|
ah_esp_conn_schedule(struct sk_buff *skb,
|
||||||
struct ip_vs_protocol *pp,
|
struct ip_vs_protocol *pp,
|
||||||
int *verdict, struct ip_vs_conn **cpp)
|
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;
|
*verdict = NF_ACCEPT;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -125,7 +125,7 @@ ah_conn_schedule(struct sk_buff *skb,
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ah_debug_packet(struct ip_vs_protocol *pp, const struct sk_buff *skb,
|
ah_esp_debug_packet(struct ip_vs_protocol *pp, const struct sk_buff *skb,
|
||||||
int offset, const char *msg)
|
int offset, const char *msg)
|
||||||
{
|
{
|
||||||
char buf[256];
|
char buf[256];
|
||||||
|
@ -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 */
|
/* 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 */
|
/* nothing to do now */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CONFIG_IP_VS_PROTO_AH
|
||||||
struct ip_vs_protocol ip_vs_protocol_ah = {
|
struct ip_vs_protocol ip_vs_protocol_ah = {
|
||||||
.name = "AH",
|
.name = "AH",
|
||||||
.protocol = IPPROTO_AH,
|
.protocol = IPPROTO_AH,
|
||||||
.num_states = 1,
|
.num_states = 1,
|
||||||
.dont_defrag = 1,
|
.dont_defrag = 1,
|
||||||
.init = ah_init,
|
.init = ah_esp_init,
|
||||||
.exit = ah_exit,
|
.exit = ah_esp_exit,
|
||||||
.conn_schedule = ah_conn_schedule,
|
.conn_schedule = ah_esp_conn_schedule,
|
||||||
.conn_in_get = ah_conn_in_get,
|
.conn_in_get = ah_esp_conn_in_get,
|
||||||
.conn_out_get = ah_conn_out_get,
|
.conn_out_get = ah_esp_conn_out_get,
|
||||||
.snat_handler = NULL,
|
.snat_handler = NULL,
|
||||||
.dnat_handler = NULL,
|
.dnat_handler = NULL,
|
||||||
.csum_check = NULL,
|
.csum_check = NULL,
|
||||||
|
@ -172,7 +173,31 @@ struct ip_vs_protocol ip_vs_protocol_ah = {
|
||||||
.register_app = NULL,
|
.register_app = NULL,
|
||||||
.unregister_app = NULL,
|
.unregister_app = NULL,
|
||||||
.app_conn_bind = NULL,
|
.app_conn_bind = NULL,
|
||||||
.debug_packet = ah_debug_packet,
|
.debug_packet = ah_esp_debug_packet,
|
||||||
.timeout_change = NULL, /* ISAKMP */
|
.timeout_change = NULL, /* ISAKMP */
|
||||||
.set_state_timeout = NULL,
|
.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
|
||||||
|
|
Загрузка…
Ссылка в новой задаче