Re: [PATCH RFC 08/24] IPVS: Make protocol handler functions support IPv6
From: Julius Volz <hidden>
Date: 2008-08-21 13:52:36
Also in:
lvs-devel
Hi, On Thu, Aug 21, 2008 at 3:29 PM, Brian Haley [off-list ref] wrote:
Julius Volz wrote:quoted
+void +ip_vs_tcpudp_debug_packet(struct ip_vs_protocol *pp, + const struct sk_buff *skb, + int offset, + const char *msg) +{ +#ifdef CONFIG_IP_VS_IPV6 + if (skb->protocol == __constant_htons(ETH_P_IPV6)) + ip_vs_tcpudp_debug_packet_v6(pp, skb, offset, msg); + else +#endifI don't think you need the __constant_htons() here, just htons() - that's what tcp_ipv6.c does.
Thanks! I guessed from the name and other uses that __constant_htons() is just a version of htons() optimized for values that are constant at compile time. Is this right? But htons() is fine too in any case.
quoted
+static void +ah_debug_packet(struct ip_vs_protocol *pp, const struct sk_buff *skb, + int offset, const char *msg) +{ +#ifdef CONFIG_IP_VS_IPV6 + if (skb->protocol == __constant_htons(ETH_P_IPV6)) + ah_debug_packet_v6(pp, skb, offset, msg); + else +#endifhtons()quoted
+static void +esp_debug_packet(struct ip_vs_protocol *pp, const struct sk_buff *skb, + int offset, const char *msg) +{ +#ifdef CONFIG_IP_VS_IPV6 + if (skb->protocol == __constant_htons(ETH_P_IPV6)) + esp_debug_packet_v6(pp, skb, offset, msg); + else +#endifhtons() I think there's more in one of the other patches too. So why can't you just create one ip_vs_debug_packet_v6() instead of these ah and esp ones which are identical?
If you look at the original files, the whole ip_vs_proto_ah.c and ip_vs_proto_esp.c are 100% identical except for the protocol names / constants :-/ So I stuck with this pattern for now. Maybe it would make sense to join those two files in a change separate from the v6 functionality? There's already a lot of duplication in the existing IPVS that could be removed... Julius -- Google Switzerland GmbH