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