On 10/14/25 00:40, Samuel Thibault wrote:
FMI, Which ones exactly? seems like an oversight in the Hurd pfinet.

 From `#include <lwip/posix/inet.h>`

```
#ifdef LWIP_UNIX_HURD
#define IP_PKTINFO  8

struct in_pktinfo {
   unsigned int   ipi_ifindex;  /* Interface index */
   struct in_addr ipi_addr;     /* Destination (from header) address */
};
#endif /* LWIP_UNIX_HURD */

```

pfinet indeed doesn't really support pktinfo currently.

The sad thing here is that lwip's and linux' struct in_pktinfo are not
the same, linux adds the ipi_spec_dst field, so using lwip's structure
would not really allow us to add this field later on.

We'd rather introduce our own header that exposes the API/ABI that we
expect tcp/ip translators to expose for struct in_pktinfo (translating
that from/to their internal implementation if needed).


I've been checking this. So we should:

1. Add the definitions to `i386-gnu/bits/in.h` (That's where other IP_* macros are) 2. Don't define `ipi_spec_dst` since lwip doesn't support it and pfinet doesn't support pktinfo in general. 3. The lwip package already #includes <netinet/in.h> so it would use the new definition. 4. About pfinet, since pktinfo is not supported, I guess the only thing we can do is to return an EOPNOTSUP from somewhere when the client tries to use pktinfo (is this already done?).

Does this look correct?

Reply via email to