I was thinking the same thing.

Which layer is responsible for this check?
IP, UDP, or ICMP?

Στις Τρί 10 Μαΐ 2022 στις 2:41 μ.μ., ο/η Nathan Hartman <
hartman.nat...@gmail.com> έγραψε:

> On Tue, May 10, 2022 at 6:01 AM Fotis Panagiotopoulos <f.j.pa...@gmail.com
> >
> wrote:
>
> > Hello,
> >
> > I just noticed that NuttX responds with an ICMP port unreachable on UDP
> > broadcasts.
> > AFAIK this shouldn't happen.
> >
> > I followed the code, and I found that the broadcast reaches udp_input.c:
> > line 256, where the ICMP response is generated.
> >
> > There is a note there that indeed the ICMP shouldn't be sent if this is a
> > broadcast.
> > As I see, the ICMP code is left to check this condition.
> >
> > Within icmp_reply.c: line 105 I see that there is a check about
> broadcasts.
> > My understanding is that this check is wrong.
> >
> > It checks for pure equality, between the destination IP and
> > INADDR_BROADCAST.
> >
> > In my (quite typical) network, the broadcast IP is 192.168.1.255.
> > The check expects to see exactly 255.255.255.255, so it fails to realise
> > that this is a broadcast and responds nevertheless.
> >
> > Shall this check be fixed somehow?
> > Or have I misunderstood something?
> >
>
> Yes it is a good idea to fix it.
>
> Does this code know the netmask so as to check properly for all types of
> broadcast addresses? E.g. with a netmask of 255.255.0.0 the broadcast
> address is x.x.255.255.
>
> Nathan
>

Reply via email to