Re: [PATCH BlueZ 6/6] mesh: Fix msg cache ring buffer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Isak,

On Thu, 2022-10-06 at 16:59 +0200, Isak Westin wrote:
> The message cache should be a strict ring buffer, suppressed message
> should not move to the front of the queue.
> ---
>  mesh/net.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/mesh/net.c b/mesh/net.c
> index e95ae5114..8be45e61a 100644
> --- a/mesh/net.c
> +++ b/mesh/net.c
> @@ -1028,12 +1028,11 @@ static bool msg_in_cache(struct mesh_net
> *net, uint16_t src, uint32_t seq,
>                 .mic = mic,
>         };
>  
> -       msg = l_queue_remove_if(net->msg_cache, match_cache, &tst);
> +       msg = l_queue_find(net->msg_cache, match_cache, &tst);
>  
>         if (msg) {
>                 l_debug("Supressing duplicate %4.4x + %6.6x + %8.8x",
>                                                         src, seq,
> mic);
> -               l_queue_push_head(net->msg_cache, msg);

The purpose of this bit of code was to maintain a cache of the X most
recently received packets in the order most recently seen, which was
why the re-ordering took place. Was this causing incorrect behavior, or
are you doing this as a streamline?

>                 return true;
>         }
>  





[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux