|
@@ -698,17 +698,16 @@ void receive_bat_packet(const struct ethhdr *ethhdr,
|
|
|
|
|
|
/* neighbor has to indicate direct link and it has to
|
|
|
* come via the corresponding interface */
|
|
|
- /* if received seqno equals last send seqno save new
|
|
|
- * seqno for bidirectional check */
|
|
|
+ /* save packet seqno for bidirectional check */
|
|
|
if (has_directlink_flag &&
|
|
|
compare_eth(if_incoming->net_dev->dev_addr,
|
|
|
- batman_packet->orig) &&
|
|
|
- (batman_packet->seqno - if_incoming_seqno + 2 == 0)) {
|
|
|
+ batman_packet->orig)) {
|
|
|
offset = if_incoming->if_num * NUM_WORDS;
|
|
|
|
|
|
spin_lock_bh(&orig_neigh_node->ogm_cnt_lock);
|
|
|
word = &(orig_neigh_node->bcast_own[offset]);
|
|
|
- bit_mark(word, 0);
|
|
|
+ bit_mark(word,
|
|
|
+ if_incoming_seqno - batman_packet->seqno - 2);
|
|
|
orig_neigh_node->bcast_own_sum[if_incoming->if_num] =
|
|
|
bit_packet_count(word);
|
|
|
spin_unlock_bh(&orig_neigh_node->ogm_cnt_lock);
|