<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>