On Wed, 2018-10-24 at 20:57 +0200, Sven Eckelmann wrote:
Please start the subject with "alfred: " when it is a patch for alfred.
Right - my mistake. It's been a long time since I last submitted....
On Mittwoch, 24. Oktober 2018 20:35:11 CEST Jonathan Haws wrote:
When using IPv4, if the remote server is not yet in the ARP cache, the MAC resolution will fail and data appear to not be shared via alfred. Add a routine (modified from batctl sources) to request MAC resolution by simply sending a datagram to the discard port (UDP/9). This adds the remote MAC to the ARP cache, resulting in successful MAC resolution.
Signed-off-by: Jonathan Haws jhaws@sdl.usu.edu
Please add the info which commit was fixed by this change right before the Signed-off-by:
Fixes: c7da798113a2 ("alfred: IPv4 multicast distribution support.")
Done.
[...]
index eecfdfd..5771483 100644 --- a/alfred.h +++ b/alfred.h @@ -213,3 +213,4 @@ uint16_t get_random_id(void); bool is_valid_ether_addr(uint8_t *addr); int ipv4_arp_request(struct interface *interface, const alfred_addr *addr, struct ether_addr *mac); +void ipv4_request_mac_resolve(const alfred_addr *addr);
This doesn't make sense. The function is in util.c and only called in util.c. So it should be static and not in this header at all.
You're right - I blindly mimicked the previous ipv4_arp_request routine without thinking about it.
Fixed in v2.
v2 forthcoming...