<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/libosmocore/+/22560">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  lynxis lazus: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">ns2: count number of dropped packets / bytes on transmit<br><br>Differentiate between successfully transmitted packets/bytes,<br>and pacets/bytes that were dropped (i.e. overflow of net-device)<br><br>OsmoNSdummy# show ns nsvc 1001 stats<br> NSVCI 01001: UNBLOCKED PERSIST data_weight=1 sig_weight=1 fr)netif: hdlc1 dlci: 1001<br>  NSVC Peer Statistics:<br>   Packets at NS Level  ( In):       36 (0/s 8/m 32/h 0/d)<br>   Packets at NS Level  (Out):    23344 (170/s 20556/m 13119/h 0/d)<br>   Dropped Packets      (Out):    30692 (230/s 27056/m 17221/h 0/d)<br>   Bytes at NS Level    ( In):      262 (0/s 24/m 250/h 0/d)<br>   Bytes at NS Level    (Out): 32741312 (238680/s 28849400/m 18391024/h 0/d)<br>   Dropped Bytes        (Out): 43014628 (322920/s 37986624/m 24101344/h 0/d)<br><br>Change-Id: If21906ff5379038f7be10cf48c68d1f756dd7c1e<br>---<br>M src/gb/gprs_ns2.c<br>M src/gb/gprs_ns2_internal.h<br>M src/gb/gprs_ns2_message.c<br>3 files changed, 17 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c</span><br><span>index d3c1e69..0f65d37 100644</span><br><span>--- a/src/gb/gprs_ns2.c</span><br><span>+++ b/src/gb/gprs_ns2.c</span><br><span>@@ -162,8 +162,10 @@</span><br><span> static const struct rate_ctr_desc nsvc_ctr_description[] = {</span><br><span>         [NS_CTR_PKTS_IN]        = { "packets:in",     "Packets at NS Level  ( In)" },</span><br><span>    [NS_CTR_PKTS_OUT]       = { "packets:out",    "Packets at NS Level  (Out)" },</span><br><span style="color: hsl(120, 100%, 40%);">+     [NS_CTR_PKTS_OUT_DROP]  = { "packets:out:drop",       "Dropped Packets      (Out)" },</span><br><span>    [NS_CTR_BYTES_IN]       = { "bytes:in",               "Bytes at NS Level    ( In)" },</span><br><span>    [NS_CTR_BYTES_OUT]      = { "bytes:out",      "Bytes at NS Level    (Out)" },</span><br><span style="color: hsl(120, 100%, 40%);">+     [NS_CTR_BYTES_OUT_DROP] = { "bytes:out:drop", "Dropped Bytes        (Out)" },</span><br><span>    [NS_CTR_BLOCKED]        = { "blocked",                "NS-VC Block count         " },</span><br><span>    [NS_CTR_DEAD]           = { "dead",           "NS-VC gone dead count     " },</span><br><span>    [NS_CTR_REPLACED]       = { "replaced",               "NS-VC replaced other count" },</span><br><span>diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h</span><br><span>index 68f28db..98b3f29 100644</span><br><span>--- a/src/gb/gprs_ns2_internal.h</span><br><span>+++ b/src/gb/gprs_ns2_internal.h</span><br><span>@@ -88,8 +88,10 @@</span><br><span> enum ns_ctr {</span><br><span>         NS_CTR_PKTS_IN,</span><br><span>      NS_CTR_PKTS_OUT,</span><br><span style="color: hsl(120, 100%, 40%);">+      NS_CTR_PKTS_OUT_DROP,</span><br><span>        NS_CTR_BYTES_IN,</span><br><span>     NS_CTR_BYTES_OUT,</span><br><span style="color: hsl(120, 100%, 40%);">+     NS_CTR_BYTES_OUT_DROP,</span><br><span>       NS_CTR_BLOCKED,</span><br><span>      NS_CTR_DEAD,</span><br><span>         NS_CTR_REPLACED,</span><br><span>diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c</span><br><span>index cd49896..bfb8781 100644</span><br><span>--- a/src/gb/gprs_ns2_message.c</span><br><span>+++ b/src/gb/gprs_ns2_message.c</span><br><span>@@ -168,10 +168,20 @@</span><br><span> </span><br><span> static int ns_vc_tx(struct gprs_ns2_vc *nsvc, struct msgb *msg)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_PKTS_OUT]);</span><br><span style="color: hsl(0, 100%, 40%);">-      rate_ctr_add(&nsvc->ctrg->ctr[NS_CTR_BYTES_OUT], msgb_length(msg));</span><br><span style="color: hsl(120, 100%, 40%);">+ unsigned int bytes = msgb_length(msg);</span><br><span style="color: hsl(120, 100%, 40%);">+        int rc;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     return nsvc->bind->send_vc(nsvc, msg);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        rc = nsvc->bind->send_vc(nsvc, msg);</span><br><span style="color: hsl(120, 100%, 40%);">+    if (rc < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+              rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_PKTS_OUT_DROP]);</span><br><span style="color: hsl(120, 100%, 40%);">+               rate_ctr_add(&nsvc->ctrg->ctr[NS_CTR_BYTES_OUT_DROP], bytes);</span><br><span style="color: hsl(120, 100%, 40%);">+       } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_PKTS_OUT]);</span><br><span style="color: hsl(120, 100%, 40%);">+            rate_ctr_add(&nsvc->ctrg->ctr[NS_CTR_BYTES_OUT], bytes);</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   return rc;</span><br><span> }</span><br><span> </span><br><span> /* transmit functions */</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmocore/+/22560">change 22560</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/c/libosmocore/+/22560"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: If21906ff5379038f7be10cf48c68d1f756dd7c1e </div>
<div style="display:none"> Gerrit-Change-Number: 22560 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>