NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/48166: struct in_pktinfo incompatible with all other systems



>Number:         48166
>Category:       kern
>Synopsis:       struct in_pktinfo incompatible with all other systems
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Aug 31 09:10:00 +0000 2013
>Originator:     John Nemeth
>Release:        various 6.99.XX
>Organization:
NetBSD
>Environment:
>Description:
     Recently support for IP_PKTINFO was added to NetBSD 6.99.XX.
It is associated with struct in_pktinfo which looks like:

struct in_pktinfo {
        struct          in_addr ipi_addr;       /* src/dst address */
        unsigned        int     ipi_ifindex;    /* interface index */
};

On all other systems that I've checked (Illumos, Linux, and MacOSX) {none
of the other BSDs have it} the struct is defined like:

typedef struct in_pktinfo {
        unsigned        int     ipi_ifindex;    /* send/recv interface index */
        struct          in_addr ipi_spec_dst;   /* matched source address */
        struct          in_addr ipi_addr;       /* src/dst address in IP hdr */
} in_pktinfo_t;

The exact order of the elements varies, but they all exist.

     This is causing problems with numerous third party packages
(at least four known).  This would appear to be a gratuitous
incompatibility with an established interface.  This should really
be fixed before NetBSD 7 is branched.

>How-To-Repeat:
     Attempt to compile various third party packages including,
but not necessarily limited to, asterisk (any variation), mit-krb5,
mrt, and xorp.  To see the issue, you will need to remove the work
around for this problem.
>Fix:



Home | Main Index | Thread Index | Old Index