<p>Pau Espin Pedrol has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/9754">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bsc-nat: Allocate each ctr group with a different idx<br><br>Fixes following runtime warning:<br>libosmocore/src/rate_ctr.c:219 counter group 'nat:filter' already exists for index 0, instead using index 1. This is a software bug that needs fixing.<br><br>Change-Id: Ibe615379dc44a3a68cf9037630891ebf9b03a06d<br>---<br>M openbsc/src/libfilter/bsc_msg_acc.c<br>1 file changed, 18 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/54/9754/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/openbsc/src/libfilter/bsc_msg_acc.c b/openbsc/src/libfilter/bsc_msg_acc.c</span><br><span>index 7b658e4..0789fb6 100644</span><br><span>--- a/openbsc/src/libfilter/bsc_msg_acc.c</span><br><span>+++ b/openbsc/src/libfilter/bsc_msg_acc.c</span><br><span>@@ -39,6 +39,21 @@</span><br><span>    .class_id = OSMO_STATS_CLASS_GLOBAL,</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/*! Find an unused index for this rate counter group.</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \param[in] head List of allocated ctr groups of the same type</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \returns the largest used index number + 1, or 0 if none exist yet. */</span><br><span style="color: hsl(120, 100%, 40%);">+static unsigned int rate_ctr_get_unused_idx(struct llist_head *head)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ unsigned int idx = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct bsc_msg_acc_lst *lst;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        llist_for_each_entry(lst, head, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+               if (idx <= lst->stats->idx)</span><br><span style="color: hsl(120, 100%, 40%);">+                  idx = lst->stats->idx + 1;</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     return idx;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> </span><br><span> int bsc_msg_acc_lst_check_allow(struct bsc_msg_acc_lst *lst, const char *mi_string)</span><br><span> {</span><br><span>@@ -71,6 +86,7 @@</span><br><span> struct bsc_msg_acc_lst *bsc_msg_acc_lst_get(void *ctx, struct llist_head *head, const char *name)</span><br><span> {</span><br><span>       struct bsc_msg_acc_lst *lst;</span><br><span style="color: hsl(120, 100%, 40%);">+  unsigned int new_idx;</span><br><span> </span><br><span>    lst = bsc_msg_acc_lst_find(head, name);</span><br><span>      if (lst)</span><br><span>@@ -82,8 +98,8 @@</span><br><span>                 return NULL;</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   /* TODO: get the index right */</span><br><span style="color: hsl(0, 100%, 40%);">- lst->stats = rate_ctr_group_alloc(lst, &bsc_cfg_acc_list_desc, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+     new_idx = rate_ctr_get_unused_idx(head);</span><br><span style="color: hsl(120, 100%, 40%);">+      lst->stats = rate_ctr_group_alloc(lst, &bsc_cfg_acc_list_desc, new_idx);</span><br><span>      if (!lst->stats) {</span><br><span>                talloc_free(lst);</span><br><span>            return NULL;</span><br><span>@@ -115,4 +131,3 @@</span><br><span>   llist_add_tail(&entry->list, &lst->fltr_list);</span><br><span>         return entry;</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/9754">change 9754</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/9754"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: openbsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ibe615379dc44a3a68cf9037630891ebf9b03a06d </div>
<div style="display:none"> Gerrit-Change-Number: 9754 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>