LVS
lvs-devel
Google
 
Web LinuxVirtualServer.org

Re: [PATCH RFC 08/24] IPVS: Make protocol handler functions support IPv6

To: "Brian Haley" <brian.haley@xxxxxx>
Subject: Re: [PATCH RFC 08/24] IPVS: Make protocol handler functions support IPv6
Cc: netdev@xxxxxxxxxxxxxxx, lvs-devel@xxxxxxxxxxxxxxx, horms@xxxxxxxxxxxx, kaber@xxxxxxxxx, vbusam@xxxxxxxxxx
From: "Julius Volz" <juliusv@xxxxxxxxxx>
Date: Thu, 21 Aug 2008 15:52:36 +0200
Hi,

On Thu, Aug 21, 2008 at 3:29 PM, Brian Haley <brian.haley@xxxxxx> wrote:
> Julius Volz wrote:
>>
>> +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
>> +#endif
>
> I 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.

>> +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
>> +#endif
>
> htons()
>
>> +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
>> +#endif
>
> htons()
>
> 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
--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

<Prev in Thread] Current Thread [Next in Thread>