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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">ipaccess-config: request and print NM_ATT_IPACC_NV_FLAGS<br><br>Below is an example output:<br><br>"""<br>  Received SIGNAL S_NM_GET_ATTR_REP<br>  {<br>      "primary_oml_ip": "192.168.100.100",<br>      "primary_oml_port": "0",<br>      "unit_id": "6969/0/0",<br>      "nv_flags": {<br>          "static-ip": "no",<br>          "static-gw": "no",<br>          "no-dhcp-vsi": "no",<br>          "dhcp-enabled": "yes",<br>          "led-enabled": "yes",<br>          "secondary-oml-enabled": "yes",<br>          "diag-enabled": "yes",<br>          "cli-enabled": "yes",<br>          "http-enabled": "no",<br>          "post-enabled": "yes",<br>          "snmp-enabled": "yes"<br>      }<br>  }<br>"""<br><br>Change-Id: Ic901910878529e6d8b152b3417463bae60644b82<br>---<br>M src/ipaccess/ipaccess-config.c<br>1 file changed, 30 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/ipaccess/ipaccess-config.c b/src/ipaccess/ipaccess-config.c</span><br><span>index c06a7cc..06fc9eb 100644</span><br><span>--- a/src/ipaccess/ipaccess-config.c</span><br><span>+++ b/src/ipaccess/ipaccess-config.c</span><br><span>@@ -268,6 +268,8 @@</span><br><span>      return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static const struct value_string ipa_nvflag_strs[];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static int print_attr_rep(struct msgb *mb)</span><br><span> {</span><br><span>         /* Parse using nanoBTS own formatting for Get Attribute Response */</span><br><span>@@ -303,7 +305,33 @@</span><br><span> </span><br><span>       print_field("primary_oml_ip", "%s", oml_ip); ENDL(false);</span><br><span>        print_field("primary_oml_port", "%u", oml_port); ENDL(false);</span><br><span style="color: hsl(0, 100%, 40%);">-       print_field("unit_id", "%s", unit_id); ENDL(true);</span><br><span style="color: hsl(120, 100%, 40%);">+        print_field("unit_id", "%s", unit_id); ENDL(false);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     uint16_t Fx = (TLVP_VAL(&tp, NM_ATT_IPACC_NV_FLAGS)[2] << 8)</span><br><span style="color: hsl(120, 100%, 40%);">+                    | (TLVP_VAL(&tp, NM_ATT_IPACC_NV_FLAGS)[0] << 0);</span><br><span style="color: hsl(120, 100%, 40%);">+       uint16_t Mx = (TLVP_VAL(&tp, NM_ATT_IPACC_NV_FLAGS)[3] << 8)</span><br><span style="color: hsl(120, 100%, 40%);">+                    | (TLVP_VAL(&tp, NM_ATT_IPACC_NV_FLAGS)[1] << 0);</span><br><span style="color: hsl(120, 100%, 40%);">+       const struct value_string *nvflag = ipa_nvflag_strs;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        print_offset("\"nv_flags\": {\n");</span><br><span style="color: hsl(120, 100%, 40%);">+        indent++;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   while (nvflag->value && nvflag->str) {</span><br><span style="color: hsl(120, 100%, 40%);">+          const char *val = (Fx & nvflag->value) ? "yes" : "no";</span><br><span style="color: hsl(120, 100%, 40%);">+             if (~Mx & nvflag->value)</span><br><span style="color: hsl(120, 100%, 40%);">+                       val = "unknown";</span><br><span style="color: hsl(120, 100%, 40%);">+            print_field(nvflag->str, "%s", val);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           nvflag++;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           if (nvflag->value && nvflag->str)</span><br><span style="color: hsl(120, 100%, 40%);">+                       ENDL(false); /* more fields to print */</span><br><span style="color: hsl(120, 100%, 40%);">+               else</span><br><span style="color: hsl(120, 100%, 40%);">+                  ENDL(true); /* this was the last field */</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%);">+   indent--;</span><br><span style="color: hsl(120, 100%, 40%);">+     print_offset("}\n");</span><br><span> </span><br><span>   indent--;</span><br><span>    print_offset("}\n");</span><br><span>@@ -559,6 +587,7 @@</span><br><span>         if (get_attr) {</span><br><span>              msgb_put_u8(nmsg_get, NM_ATT_IPACC_PRIM_OML_CFG);</span><br><span>            msgb_put_u8(nmsg_get, NM_ATT_IPACC_UNIT_ID);</span><br><span style="color: hsl(120, 100%, 40%);">+          msgb_put_u8(nmsg_get, NM_ATT_IPACC_NV_FLAGS);</span><br><span>        }</span><br><span>    if (unit_id) {</span><br><span>               len = strlen(unit_id);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/26150">change 26150</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-bsc/+/26150"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ic901910878529e6d8b152b3417463bae60644b82 </div>
<div style="display:none"> Gerrit-Change-Number: 26150 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: dexter <pmaier@sysmocom.de> </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-Reviewer: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>