From 998b620f0be381128b07beb50318bab11c4b5663 Mon Sep 17 00:00:00 2001 From: Julian Anastasov Date: Mon, 6 Oct 2003 17:46:40 -0700 Subject: [PATCH] [IPVS]: remove some unused fields from the protocols --- include/net/ip_vs.h | 9 ++++----- net/ipv4/ipvs/ip_vs_core.c | 4 ++-- net/ipv4/ipvs/ip_vs_proto_ah.c | 15 +++------------ net/ipv4/ipvs/ip_vs_proto_esp.c | 13 ++----------- net/ipv4/ipvs/ip_vs_proto_icmp.c | 4 ---- net/ipv4/ipvs/ip_vs_proto_tcp.c | 8 ++------ net/ipv4/ipvs/ip_vs_proto_udp.c | 8 ++------ 7 files changed, 15 insertions(+), 46 deletions(-) diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h index 12bcb8126ec18..08a4a652764c8 100644 --- a/include/net/ip_vs.h +++ b/include/net/ip_vs.h @@ -435,11 +435,7 @@ struct ip_vs_protocol { struct ip_vs_protocol *next; char *name; __u16 protocol; - int minhlen; - int minhlen_icmp; int dont_defrag; - int skip_nonexisting; - int slave; /* if controlled by others */ atomic_t appcnt; /* counter of proto app incs */ int *timeout_table; /* protocol timeout table */ @@ -528,7 +524,10 @@ struct ip_vs_conn { struct ip_vs_dest *dest; /* real server */ atomic_t in_pkts; /* incoming packet counter */ - /* packet transmitter for different forwarding methods */ + /* packet transmitter for different forwarding methods. If it + mangles the packet, it must return NF_DROP or NF_STOLEN, otherwise + this must be changed to a sk_buff **. + */ int (*packet_xmit)(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp); diff --git a/net/ipv4/ipvs/ip_vs_core.c b/net/ipv4/ipvs/ip_vs_core.c index caba4cc55d51f..bb62e6569da9c 100644 --- a/net/ipv4/ipvs/ip_vs_core.c +++ b/net/ipv4/ipvs/ip_vs_core.c @@ -660,7 +660,7 @@ static int ip_vs_out_icmp(struct sk_buff **pskb, int *related) /* Is the embedded protocol header present? */ if (unlikely(ciph.frag_off & __constant_htons(IP_OFFSET) && - (pp->minhlen || pp->dont_defrag))) + pp->dont_defrag)) return NF_ACCEPT; IP_VS_DBG_PKT(11, pp, skb, offset, "Checking outgoing ICMP for"); @@ -911,7 +911,7 @@ static int ip_vs_in_icmp(struct sk_buff **pskb, int *related) /* Is the embedded protocol header present? */ if (unlikely(ciph.frag_off & __constant_htons(IP_OFFSET) && - (pp->minhlen || pp->dont_defrag))) + pp->dont_defrag)) return NF_ACCEPT; IP_VS_DBG_PKT(11, pp, skb, offset, "Checking incoming ICMP for"); diff --git a/net/ipv4/ipvs/ip_vs_proto_ah.c b/net/ipv4/ipvs/ip_vs_proto_ah.c index 11f9f62b7e9d4..6cbb02bfb4e86 100644 --- a/net/ipv4/ipvs/ip_vs_proto_ah.c +++ b/net/ipv4/ipvs/ip_vs_proto_ah.c @@ -69,11 +69,11 @@ ah_conn_in_get(const struct sk_buff *skb, if (!cp) { /* * We are not sure if the packet is from our - * service, so the caller should check skip_nonexisting + * service, so our conn_schedule hook should return NF_ACCEPT */ IP_VS_DBG(12, "Unknown ISAKMP entry for outin packet " "%s%s %u.%u.%u.%u->%u.%u.%u.%u\n", - inverse?"ICMP+":"", + inverse ? "ICMP+" : "", pp->name, NIPQUAD(iph->saddr), NIPQUAD(iph->daddr)); @@ -104,11 +104,6 @@ ah_conn_out_get(const struct sk_buff *skb, struct ip_vs_protocol *pp, } if (!cp) { - /* - * We are not sure if the packet is from our - * service, so the caller should check skip_nonexisting - * or our conn_schedule hook should return NF_ACCEPT - */ IP_VS_DBG(12, "Unknown ISAKMP entry for inout packet " "%s%s %u.%u.%u.%u->%u.%u.%u.%u\n", inverse ? "ICMP+" : "", @@ -167,11 +162,7 @@ static void ah_exit(struct ip_vs_protocol *pp) struct ip_vs_protocol ip_vs_protocol_ah = { .name = "AH", .protocol = IPPROTO_AH, - .minhlen = 0, - .minhlen_icmp = 0, .dont_defrag = 1, - .skip_nonexisting = 1, - .slave = 1, .init = ah_init, .exit = ah_exit, .conn_schedule = ah_conn_schedule, @@ -179,11 +170,11 @@ struct ip_vs_protocol ip_vs_protocol_ah = { .conn_out_get = ah_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, - .csum_check = NULL, .debug_packet = ah_debug_packet, .timeout_change = NULL, /* ISAKMP */ .set_state_timeout = NULL, diff --git a/net/ipv4/ipvs/ip_vs_proto_esp.c b/net/ipv4/ipvs/ip_vs_proto_esp.c index 681699de3bb7a..aeaa3daf6aad4 100644 --- a/net/ipv4/ipvs/ip_vs_proto_esp.c +++ b/net/ipv4/ipvs/ip_vs_proto_esp.c @@ -69,7 +69,7 @@ esp_conn_in_get(const struct sk_buff *skb, if (!cp) { /* * We are not sure if the packet is from our - * service, so the caller should check skip_nonexisting + * service, so our conn_schedule hook should return NF_ACCEPT */ IP_VS_DBG(12, "Unknown ISAKMP entry for outin packet " "%s%s %u.%u.%u.%u->%u.%u.%u.%u\n", @@ -104,14 +104,9 @@ esp_conn_out_get(const struct sk_buff *skb, struct ip_vs_protocol *pp, } if (!cp) { - /* - * We are not sure if the packet is from our - * service, so the caller should check skip_nonexisting - * or our conn_schedule hook should return NF_ACCEPT - */ IP_VS_DBG(12, "Unknown ISAKMP entry for inout packet " "%s%s %u.%u.%u.%u->%u.%u.%u.%u\n", - inverse?"ICMP+":"", + inverse ? "ICMP+" : "", pp->name, NIPQUAD(iph->saddr), NIPQUAD(iph->daddr)); @@ -166,11 +161,7 @@ static void esp_exit(struct ip_vs_protocol *pp) struct ip_vs_protocol ip_vs_protocol_esp = { .name = "ESP", .protocol = IPPROTO_ESP, - .minhlen = 0, - .minhlen_icmp = 0, .dont_defrag = 1, - .skip_nonexisting = 1, - .slave = 1, .init = esp_init, .exit = esp_exit, .conn_schedule = esp_conn_schedule, diff --git a/net/ipv4/ipvs/ip_vs_proto_icmp.c b/net/ipv4/ipvs/ip_vs_proto_icmp.c index b411e742780c6..077643f6ab5eb 100644 --- a/net/ipv4/ipvs/ip_vs_proto_icmp.c +++ b/net/ipv4/ipvs/ip_vs_proto_icmp.c @@ -163,11 +163,7 @@ static void icmp_exit(struct ip_vs_protocol *pp) struct ip_vs_protocol ip_vs_protocol_icmp = { .name = "ICMP", .protocol = IPPROTO_ICMP, - .minhlen = sizeof(struct icmphdr), - .minhlen_icmp = 8, .dont_defrag = 0, - .skip_nonexisting = 0, - .slave = 0, .init = icmp_init, .exit = icmp_exit, .conn_schedule = icmp_conn_schedule, diff --git a/net/ipv4/ipvs/ip_vs_proto_tcp.c b/net/ipv4/ipvs/ip_vs_proto_tcp.c index 212cbfa826739..e5a78d2d7dc2e 100644 --- a/net/ipv4/ipvs/ip_vs_proto_tcp.c +++ b/net/ipv4/ipvs/ip_vs_proto_tcp.c @@ -132,7 +132,7 @@ tcp_snat_handler(struct sk_buff **pskb, if (unlikely(cp->app != NULL)) { /* Some checks before mangling */ - if (pp->csum_check && !pp->slave && !pp->csum_check(*pskb, pp)) + if (pp->csum_check && !pp->csum_check(*pskb, pp)) return 0; /* Call application helper if needed */ @@ -180,7 +180,7 @@ tcp_dnat_handler(struct sk_buff **pskb, if (unlikely(cp->app != NULL)) { /* Some checks before mangling */ - if (pp->csum_check && !pp->slave && !pp->csum_check(*pskb, pp)) + if (pp->csum_check && !pp->csum_check(*pskb, pp)) return 0; /* @@ -614,11 +614,7 @@ static void tcp_exit(struct ip_vs_protocol *pp) struct ip_vs_protocol ip_vs_protocol_tcp = { .name = "TCP", .protocol = IPPROTO_TCP, - .minhlen = sizeof(struct tcphdr), - .minhlen_icmp = 8, .dont_defrag = 0, - .skip_nonexisting = 0, - .slave = 0, .appcnt = ATOMIC_INIT(0), .init = tcp_init, .exit = tcp_exit, diff --git a/net/ipv4/ipvs/ip_vs_proto_udp.c b/net/ipv4/ipvs/ip_vs_proto_udp.c index e4eea41ff7672..740d8d92c2fcb 100644 --- a/net/ipv4/ipvs/ip_vs_proto_udp.c +++ b/net/ipv4/ipvs/ip_vs_proto_udp.c @@ -133,7 +133,7 @@ udp_snat_handler(struct sk_buff **pskb, if (unlikely(cp->app != NULL)) { /* Some checks before mangling */ - if (pp->csum_check && !pp->slave && !pp->csum_check(*pskb, pp)) + if (pp->csum_check && !pp->csum_check(*pskb, pp)) return 0; /* @@ -187,7 +187,7 @@ udp_dnat_handler(struct sk_buff **pskb, if (unlikely(cp->app != NULL)) { /* Some checks before mangling */ - if (pp->csum_check && !pp->slave && !pp->csum_check(*pskb, pp)) + if (pp->csum_check && !pp->csum_check(*pskb, pp)) return 0; /* @@ -401,11 +401,7 @@ static void udp_exit(struct ip_vs_protocol *pp) struct ip_vs_protocol ip_vs_protocol_udp = { .name = "UDP", .protocol = IPPROTO_UDP, - .minhlen = sizeof(struct udphdr), - .minhlen_icmp = 8, .dont_defrag = 0, - .skip_nonexisting = 0, - .slave = 0, .init = udp_init, .exit = udp_exit, .conn_schedule = udp_conn_schedule, -- 2.53.0