Skip to content

Commit

Permalink
ND6: reply NS without LL opt
Browse files Browse the repository at this point in the history
* This issue should be fixed for the upstream
* Reference to the RFC-4861#section-4.3 source Link-Layer address
  SHOULD be included in unicast solicitations. But there might be
  some NS messages which do not contain source link-layer address option.
* NA will be replied to those NS messages which do not contain
  source link layer option.
  • Loading branch information
zwx1995esp committed Aug 27, 2024
1 parent f1c0a3d commit 6bc36ec
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
11 changes: 10 additions & 1 deletion src/core/ipv6/nd6.c
Original file line number Diff line number Diff line change
Expand Up @@ -505,7 +505,16 @@ nd6_input(struct pbuf *p, struct netif *inp)
/* Sender is trying to resolve our address. */
/* Verify that they included their own link-layer address. */
if (lladdr_opt == NULL) {
/* Not a valid message. */
/* Per RFC4861#section-4.3, source Link-Layer address SHOULD be included in unicast solicitations.
* But, there might be some NSs which do not contain source link-layer address option.
* For LwIP implement, this kind of NS will be ignored. This issue should be fixed.
* Although this Neighbor Solicitation (NS) will be ignored in the subsequent process,
* a Neighbor Advertisement (NA) is still sent in response. */
#if ESP_LWIP && LWIP_FORCE_ROUTER_FORWARDING
nd6_send_na(inp, &target_address, ND6_FLAG_ROUTER | ND6_FLAG_SOLICITED | ND6_FLAG_OVERRIDE);
#else
nd6_send_na(inp, &target_address, ND6_FLAG_SOLICITED | ND6_FLAG_OVERRIDE);
#endif
pbuf_free(p);
ND6_STATS_INC(nd6.proterr);
ND6_STATS_INC(nd6.drop);
Expand Down
2 changes: 1 addition & 1 deletion src/include/lwip/opt.h
Original file line number Diff line number Diff line change
Expand Up @@ -2424,7 +2424,7 @@
#endif

/**
* when LWIP_FORCE_ROUTER_FORWARDING is enbaled in lwip, the router flag in NA packet will always
* when LWIP_FORCE_ROUTER_FORWARDING is enabled in lwip, the router flag in NA packet will always
* set to 1, otherwise, never set router flag for NA packets.
*/
#if !defined LWIP_FORCE_ROUTER_FORWARDING || defined __DOXYGEN__
Expand Down

0 comments on commit 6bc36ec

Please sign in to comment.