Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Feb 2004 12:34:37 +0100
From:      Juan Rodriguez Hervella <jrh@it.uc3m.es>
To:        freebsd-net@freebsd.org
Subject:   Question about "struct encaptab" and IPv6-in-IPv6 tunnels
Message-ID:  <200402061234.38070.jrh@it.uc3m.es>

next in thread | raw e-mail | index | archive | help
Hello,

I'm looking at the source code, trying to follow the steps that
happen when an IPv6-in-IPv6 packet is received, but Im quite
lost, I wonder if anybody could help me to understand it.

When the host receives an IPv6-in-IPv6 packet, 
"encap6_input()" is call from "ip6_input()".

I don't understand what "encap6_input()" does.

It seems that it uses this structure:

struct encaptab {
        LIST_ENTRY(encaptab) chain;
        int af;
        int proto;                      /* -1: don't care, I'll check myself 
*/
        struct sockaddr_storage src;    /* my addr */
        struct sockaddr_storage srcmask;
        struct sockaddr_storage dst;    /* remote addr */
        struct sockaddr_storage dstmask;
        int (*func)(const struct mbuf *, int, int, void *);
        const struct protosw *psw;      /* only pr_input will be used */
        void *arg;                      /* passed via m->m_pkthdr.aux */
};

Which is initialized with "encap_init()", though "encapt_init()" makes
nothing interesting....

I'd like to know where all these fields are filled up....

Any explanation will be very useful, Im looking forward to hearing you!
thanx!

-- 
******
JFRH
******

One advantage of talking to yourself is that you know at least
somebody's listening.
		-- Franklin P. Jones



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200402061234.38070.jrh>