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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">vty: Add configuration for Gb DSCP and socket priority<br><br>While libosmogb / ns2 supports that natively in the VTY, the PCU<br>doesn't want to use the complexities of the full NS2 vty.<br><br>Change-Id: I7bfbad46582e65e5ad2ac0cc66545538bc632df8<br>Related: SYS#5427<br>---<br>M TODO-RELEASE<br>M src/gprs_bssgp_pcu.c<br>M src/gprs_pcu.c<br>M src/gprs_pcu.h<br>M src/pcu_vty.c<br>5 files changed, 41 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/TODO-RELEASE b/TODO-RELEASE</span><br><span>index 716f713..5b2720b 100644</span><br><span>--- a/TODO-RELEASE</span><br><span>+++ b/TODO-RELEASE</span><br><span>@@ -8,3 +8,4 @@</span><br><span> # If any interfaces have been removed or changed since the last public release: c:r:0.</span><br><span> #library        what            description / commit summary line</span><br><span> libosmocore     struct bssgp_bvc_ctx->is_sgsn   field used available only on libosmocore >1.5.1</span><br><span style="color: hsl(120, 100%, 40%);">+libosmocore     gprs_ns2_ip_bind_set_priority   function used available only on libosmocore >1.5.1</span><br><span>diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c</span><br><span>index 06e1814..f6114de 100644</span><br><span>--- a/src/gprs_bssgp_pcu.c</span><br><span>+++ b/src/gprs_bssgp_pcu.c</span><br><span>@@ -1060,6 +1060,11 @@</span><br><span>                                       continue;</span><br><span>                            }</span><br><span>                    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                   if (the_pcu->vty.ns_ip_dscp != -1)</span><br><span style="color: hsl(120, 100%, 40%);">+                         gprs_ns2_ip_bind_set_dscp(bind[i], the_pcu->vty.ns_ip_dscp);</span><br><span style="color: hsl(120, 100%, 40%);">+                       if (the_pcu->vty.ns_priority != -1)</span><br><span style="color: hsl(120, 100%, 40%);">+                                gprs_ns2_ip_bind_set_priority(bind[i], the_pcu->vty.ns_priority);</span><br><span>                 }</span><br><span> </span><br><span>                binds |= 1 << i;</span><br><span>diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c</span><br><span>index 3875e09..df439ef 100644</span><br><span>--- a/src/gprs_pcu.c</span><br><span>+++ b/src/gprs_pcu.c</span><br><span>@@ -105,6 +105,8 @@</span><br><span>    pcu->vty.mcs_lqual_ranges[8].low = 23;</span><br><span>    pcu->vty.mcs_lqual_ranges[8].high = 256;</span><br><span>  pcu->vty.ns_dialect = GPRS_NS2_DIALECT_IPACCESS;</span><br><span style="color: hsl(120, 100%, 40%);">+   pcu->vty.ns_ip_dscp = -1;</span><br><span style="color: hsl(120, 100%, 40%);">+  pcu->vty.ns_priority = -1;</span><br><span>        /* TODO: increase them when CRBB decoding is implemented */</span><br><span>  pcu->vty.ws_base = 64;</span><br><span>    pcu->vty.ws_pdch = 0;</span><br><span>diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h</span><br><span>index a17144c..86fe8eb 100644</span><br><span>--- a/src/gprs_pcu.h</span><br><span>+++ b/src/gprs_pcu.h</span><br><span>@@ -102,6 +102,8 @@</span><br><span>          struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS];</span><br><span>           struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS];</span><br><span>                 enum gprs_ns2_dialect ns_dialect; /* Are we talking Gb with IP-SNS (true) or classic Gb? */</span><br><span style="color: hsl(120, 100%, 40%);">+           int ns_ip_dscp;</span><br><span style="color: hsl(120, 100%, 40%);">+               int ns_priority;</span><br><span>             uint16_t ws_base;</span><br><span>            uint16_t ws_pdch; /* increase WS by this value per PDCH */</span><br><span>           uint16_t force_llc_lifetime; /* overrides lifetime from SGSN */</span><br><span>diff --git a/src/pcu_vty.c b/src/pcu_vty.c</span><br><span>index abc3d8d..1ca6376 100644</span><br><span>--- a/src/pcu_vty.c</span><br><span>+++ b/src/pcu_vty.c</span><br><span>@@ -251,6 +251,11 @@</span><br><span>      else</span><br><span>                 vty_out(vty, " gb-dialect classic%s", VTY_NEWLINE);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+     if (the_pcu->vty.ns_ip_dscp != -1)</span><br><span style="color: hsl(120, 100%, 40%);">+         vty_out(vty, " gb ip-dscp %d%s", the_pcu->vty.ns_ip_dscp, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+  if (the_pcu->vty.ns_priority != -1)</span><br><span style="color: hsl(120, 100%, 40%);">+                vty_out(vty, " gb socket-priority %d%s", the_pcu->vty.ns_priority, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>      if (the_pcu->vty.neigh_ctrl_addr) {</span><br><span>               vty_out(vty, " neighbor resolution %s %u%s",</span><br><span>                       the_pcu->vty.neigh_ctrl_addr, the_pcu->vty.neigh_ctrl_port, VTY_NEWLINE);</span><br><span>@@ -1031,6 +1036,30 @@</span><br><span>     return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN_USRATTR(cfg_pcu_gb_ip_dscp,</span><br><span style="color: hsl(120, 100%, 40%);">+             cfg_pcu_gb_ip_dscp_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+       X(PCU_VTY_ATTR_NS_RESET),</span><br><span style="color: hsl(120, 100%, 40%);">+             "gb ip-dscp <0-63>",</span><br><span style="color: hsl(120, 100%, 40%);">+          "Configure Gb interface\n"</span><br><span style="color: hsl(120, 100%, 40%);">+          "Set IP DSCP value for outbound packets\n"</span><br><span style="color: hsl(120, 100%, 40%);">+          "IP DSCP value to use\n")</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  the_pcu->vty.ns_ip_dscp = atoi(argv[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+   return CMD_SUCCESS;</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%);">+DEFUN_USRATTR(cfg_pcu_gb_priority,</span><br><span style="color: hsl(120, 100%, 40%);">+        cfg_pcu_gb_priority_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+              X(PCU_VTY_ATTR_NS_RESET),</span><br><span style="color: hsl(120, 100%, 40%);">+             "gb socket-priority <0-255>",</span><br><span style="color: hsl(120, 100%, 40%);">+         "Configure Gb interface\n"</span><br><span style="color: hsl(120, 100%, 40%);">+          "Set socket priority value for outbound packets\n"</span><br><span style="color: hsl(120, 100%, 40%);">+          "Socket priority value to use (>6 requires CAP_NET_ADMIN)")</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     the_pcu->vty.ns_priority = atoi(argv[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+  return CMD_SUCCESS;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> DEFUN(cfg_neighbor_resolution, cfg_neighbor_resolution_cmd,</span><br><span>        "neighbor resolution " VTY_IPV46_CMD " [<0-65535>]",</span><br><span>        "Manage local and remote-BSS neighbor cells\n"</span><br><span>@@ -1265,6 +1294,8 @@</span><br><span>  install_element(PCU_NODE, &cfg_pcu_no_gsmtap_categ_cmd);</span><br><span>         install_element(PCU_NODE, &cfg_pcu_sock_cmd);</span><br><span>    install_element(PCU_NODE, &cfg_pcu_gb_dialect_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+       install_element(PCU_NODE, &cfg_pcu_gb_ip_dscp_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+       install_element(PCU_NODE, &cfg_pcu_gb_priority_cmd);</span><br><span>     install_element(PCU_NODE, &cfg_neighbor_resolution_cmd);</span><br><span>         install_element(PCU_NODE, &cfg_pcu_timer_cmd);</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/23988">change 23988</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/osmo-pcu/+/23988"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I7bfbad46582e65e5ad2ac0cc66545538bc632df8 </div>
<div style="display:none"> Gerrit-Change-Number: 23988 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </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: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>