On Wednesday 30 March 2016 01:37:27 Roland Volkmann wrote: [...]
And btw. it is not about the originator. It is handled in batadv_send_outstanding_bcast_packet at the same place where you want to have the no_rebroadcast check. no_rebroadcast in the patch we are talking [1,2] about is currently just ignoring the num_bcasts of a hard-interface for some situations (when forw_packet->skb->dev == hard_iface->net_dev).
Let's have a look to the source code. The interesting part is function "static void batadv_send_outstanding_bcast_packet(struct work_struct *work)" in file "send.c". There you will find
To what are you answering? At least not to my statement.
soft_iface = forw_packet->if_incoming->soft_iface;
[...] /* rebroadcast packet */ rcu_read_lock(); list_for_each_entry_rcu(hard_iface, &batadv_hardif_list, list) { if (hard_iface->soft_iface != soft_iface) /* !!! */ continue;
if (forw_packet->num_packets >= hard_iface->num_bcasts) continue;
The if-Statement marked with /* !!! */ results in "true", if incoming-interface isn't identical to outgoing-interface. Because the patch is included after this line, it is relevant for resending broadcasts to the incoming interface only.
No, it isn't about the incoming or outgoing hard-interfaces. See Marek's reply.
Here is an updated version of the patch as it is used in current master branch of gluon matching batman-adv 2016.0:
Not sure why you sent some(tm) patch of a patch in this way when there is a guideline how to correctly send them [1].
Kind regards, Sven
[1] https://www.open-mesh.org/projects/open-mesh/wiki/Contribute#Submitting-patc...