Subject: Re: pmtu discovery on SA

From: Patrick McHardy <[email-masked]>
Date: Wed, 18 Jul 2007 20:41:22 +0200

Mika Penttilä wrote:
> Hmm. esp4_err() looks like this :
>
>    struct iphdr *iph = (struct iphdr*)skb->data;
>    struct ip_esp_hdr *esph = (struct 
> ip_esp_hdr*)(skb->data+(iph->ihl<<2));
>    struct xfrm_state *x;
>
>    if (icmp_hdr(skb)->type != ICMP_DEST_UNREACH ||
>        icmp_hdr(skb)->code != ICMP_FRAG_NEEDED)
>        return;
>
>    x = xfrm_state_lookup((xfrm_address_t *)&iph->daddr, esph->spi, 
> IPPROTO_ESP, AF_INET);
>    if (!x)
>        return;
>    NETDEBUG(KERN_DEBUG "pmtu discovery on SA ESP/%08x/%08x\n",
>         ntohl(esph->spi), ntohl(iph->daddr));
>    xfrm_state_put(x);
>
>
>
> where could pmtu discovery be happening?

xfrm_init_pmtu, xfrm_bundle_ok, xfrm_state_mtu, esp4_get_mtu, ...