<p>lynxis lazus <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/libosmocore/+/22337">View Change</a></p><div style="white-space:pre-wrap">Approvals:
lynxis lazus: Looks good to me, approved
pespin: Looks good to me, but someone else must approve
Jenkins Builder: Verified
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">ns2: Unify logging context via log macros<br><br>Let's avoid open-coding the printing of log context and rather rely on<br>log macros to prefix each log line with the relevant context. This<br>helps log readability, log post processing whether by grep or more<br>sophisticated tools.<br><br>Change-Id: I946c0e77686d91efc5afb62031e1ac1033a9a586<br>---<br>M src/gb/gprs_ns2.c<br>M src/gb/gprs_ns2_fr.c<br>M src/gb/gprs_ns2_frgre.c<br>M src/gb/gprs_ns2_internal.h<br>M src/gb/gprs_ns2_message.c<br>M src/gb/gprs_ns2_sns.c<br>M src/gb/gprs_ns2_udp.c<br>M src/gb/gprs_ns2_vc_fsm.c<br>8 files changed, 112 insertions(+), 119 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 dc8ad8e..ec60dbd 100644</span><br><span>--- a/src/gb/gprs_ns2.c</span><br><span>+++ b/src/gb/gprs_ns2.c</span><br><span>@@ -695,7 +695,7 @@</span><br><span> </span><br><span> nse = gprs_ns2_nse_by_nsei(nsi, nsei);</span><br><span> if (nse) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "NSEI:%u Can not create a NSE with already taken NSEI\n", nsei);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSE(nse, LOGL_ERROR, "Can not create a NSE with already taken NSEI\n");</span><br><span> return nse;</span><br><span> }</span><br><span> </span><br><span>@@ -885,8 +885,9 @@</span><br><span> } else {</span><br><span> /* nsei already known */</span><br><span> if (nse->ll != bind->ll) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "Received NS-RESET NS-VCI(%05u) with wrong linklayer(%s) for already known NSE(%05u/%s)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsei, gprs_ns2_lltype_str(bind->ll), nse->nsei, gprs_ns2_lltype_str(nse->ll));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSE(nse, LOGL_ERROR, "Received NS-RESET NS-VCI(%05u) with wrong linklayer(%s)"</span><br><span style="color: hsl(120, 100%, 40%);">+ " for already known NSE(%s)\n", nsvci, gprs_ns2_lltype_str(bind->ll),</span><br><span style="color: hsl(120, 100%, 40%);">+ gprs_ns2_lltype_str(nse->ll));</span><br><span> return GPRS_NS2_CS_SKIPPED;</span><br><span> }</span><br><span> }</span><br><span>@@ -894,8 +895,7 @@</span><br><span> nsvc = gprs_ns2_nsvc_by_nsvci(bind->nsi, nsvci);</span><br><span> if (nsvc) {</span><br><span> if (nsvc->persistent) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "Received NS-RESET for a persistent NSE(%05u) NS-VCI(%05u) over wrong connection.\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsei, nsvci);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_ERROR, "Received NS-RESET for a persistent NSE over wrong connection.\n");</span><br><span> return GPRS_NS2_CS_SKIPPED;</span><br><span> }</span><br><span> /* destroy old dynamic nsvc */</span><br><span>@@ -904,8 +904,8 @@</span><br><span> </span><br><span> /* do nse persistent check late to be more precise on the error message */</span><br><span> if (nse->persistent) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "Received NS-RESET for a persistent NSE(%05u) but the unknown NS-VCI(%05u)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsei, nsvci);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSE(nse, LOGL_ERROR, "Received NS-RESET for a persistent NSE but the unknown "</span><br><span style="color: hsl(120, 100%, 40%);">+ "NS-VCI(%05u)\n", nsvci);</span><br><span> return GPRS_NS2_CS_SKIPPED;</span><br><span> }</span><br><span> </span><br><span>diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c</span><br><span>index a7455d7..274ed96 100644</span><br><span>--- a/src/gb/gprs_ns2_fr.c</span><br><span>+++ b/src/gb/gprs_ns2_fr.c</span><br><span>@@ -214,8 +214,7 @@</span><br><span> </span><br><span> rc = recvfrom(bfd->fd, msg->data, NS_ALLOC_SIZE, 0, (struct sockaddr *)&sll, &sll_len);</span><br><span> if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "recv error %s during NS-FR-GRE recv\n",</span><br><span style="color: hsl(0, 100%, 40%);">- strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "recv error %s during NS-FR-GRE recv\n", strerror(errno));</span><br><span> goto out_err;</span><br><span> } else if (rc == 0) {</span><br><span> goto out_err;</span><br><span>@@ -273,8 +272,7 @@</span><br><span> struct priv_bind *priv = bind->priv;</span><br><span> </span><br><span> if (osmo_wqueue_enqueue(&priv->wqueue, msg)) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "frame relay %s: failed to enqueue message\n",</span><br><span style="color: hsl(0, 100%, 40%);">- priv->netif);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "frame relay %s: failed to enqueue message\n", priv->netif);</span><br><span> msgb_free(msg);</span><br><span> return -EINVAL;</span><br><span> }</span><br><span>@@ -303,7 +301,7 @@</span><br><span> return ifr.ifr_ifindex;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int open_socket(int ifindex)</span><br><span style="color: hsl(120, 100%, 40%);">+static int open_socket(int ifindex, const struct gprs_ns2_vc_bind *nsbind)</span><br><span> {</span><br><span> struct sockaddr_ll addr;</span><br><span> int fd, rc;</span><br><span>@@ -315,7 +313,7 @@</span><br><span> </span><br><span> fd = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_HDLC));</span><br><span> if (fd < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "Can not create AF_PACKET socket. Are you root or have CAP_RAW_SOCKET?\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(nsbind, LOGL_ERROR, "Can not create AF_PACKET socket. Are you root or have CAP_NET_RAW?\n");</span><br><span> return fd;</span><br><span> }</span><br><span> </span><br><span>@@ -324,7 +322,7 @@</span><br><span> </span><br><span> rc = bind(fd, (struct sockaddr *)&addr, sizeof(addr));</span><br><span> if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "Can not bind AF_PACKET socket to ifindex %d\n", ifindex);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(nsbind, LOGL_ERROR, "Can not bind AF_PACKET socket to ifindex %d\n", ifindex);</span><br><span> close(fd);</span><br><span> return rc;</span><br><span> }</span><br><span>@@ -410,8 +408,8 @@</span><br><span> struct priv_bind *bpriv = bind->priv;</span><br><span> if (bpriv->if_running != if_running) {</span><br><span> /* update running state */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_NOTICE, "FR net-device '%s': Physical link state changed: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ifname, if_running ? "UP" : "DOWN");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_NOTICE, "FR net-device '%s': Physical link state changed: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ ifname, if_running ? "UP" : "DOWN");</span><br><span> bpriv->if_running = if_running;</span><br><span> }</span><br><span> }</span><br><span>@@ -471,7 +469,7 @@</span><br><span> return rc;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int setup_device(const char *netif)</span><br><span style="color: hsl(120, 100%, 40%);">+static int setup_device(const char *netif, const struct gprs_ns2_vc_bind *bind)</span><br><span> {</span><br><span> int sock, rc;</span><br><span> char buffer[128];</span><br><span>@@ -480,8 +478,8 @@</span><br><span> </span><br><span> sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);</span><br><span> if (sock < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "%s: Unable to create socket: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- netif, strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "%s: Unable to create socket: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ netif, strerror(errno));</span><br><span> return sock;</span><br><span> }</span><br><span> </span><br><span>@@ -495,22 +493,22 @@</span><br><span> /* EINVAL is returned when no protocol has been set */</span><br><span> rc = ioctl(sock, SIOCWANDEV, &req);</span><br><span> if (rc < 0 && errno != EINVAL) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "%s: Unable to get FR protocol information: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- netif, strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "%s: Unable to get FR protocol information: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ netif, strerror(errno));</span><br><span> goto err;</span><br><span> }</span><br><span> </span><br><span> /* check if the device is good */</span><br><span> if (rc == 0 && req.ifr_settings.type == IF_PROTO_FR && fr->lmi == LMI_NONE) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_NOTICE, "%s: has correct frame relay mode and lmi\n", netif);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_NOTICE, "%s: has correct frame relay mode and lmi\n", netif);</span><br><span> goto ifup;</span><br><span> }</span><br><span> </span><br><span> /* modify the device to match */</span><br><span> rc = set_ifupdown(netif, false);</span><br><span> if (rc) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "Unable to bring down the device %s: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- netif, strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "Unable to bring down the device %s: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ netif, strerror(errno));</span><br><span> goto err;</span><br><span> }</span><br><span> </span><br><span>@@ -533,19 +531,19 @@</span><br><span> /* monitored events count */</span><br><span> fr->n393 = 4;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_INFO, "%s: Setting frame relay related parameters\n", netif);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_INFO, "%s: Setting frame relay related parameters\n", netif);</span><br><span> rc = ioctl(sock, SIOCWANDEV, &req);</span><br><span> if (rc) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "%s: Unable to set FR protocol on information: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- netif, strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "%s: Unable to set FR protocol on information: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ netif, strerror(errno));</span><br><span> goto err;</span><br><span> }</span><br><span> </span><br><span> ifup:</span><br><span> rc = set_ifupdown(netif, true);</span><br><span> if (rc)</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "Unable to bring up the device %s: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- netif, strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "Unable to bring up the device %s: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ netif, strerror(errno));</span><br><span> err:</span><br><span> close(sock);</span><br><span> return rc;</span><br><span>@@ -622,18 +620,18 @@</span><br><span> </span><br><span> priv->ifindex = rc = devname2ifindex(netif);</span><br><span> if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "Can not get interface index for interface %s\n", netif);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "Can not get interface index for interface %s\n", netif);</span><br><span> goto err_fr;</span><br><span> }</span><br><span> </span><br><span> /* set protocol frame relay and lmi */</span><br><span style="color: hsl(0, 100%, 40%);">- rc = setup_device(priv->netif);</span><br><span style="color: hsl(120, 100%, 40%);">+ rc = setup_device(priv->netif, bind);</span><br><span> if(rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "Failed to setup the interface %s for frame relay and lmi\n", netif);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "Failed to setup the interface %s for frame relay and lmi\n", netif);</span><br><span> goto err_fr;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- rc = open_socket(priv->ifindex);</span><br><span style="color: hsl(120, 100%, 40%);">+ rc = open_socket(priv->ifindex, bind);</span><br><span> if (rc < 0)</span><br><span> goto err_fr;</span><br><span> osmo_wqueue_init(&priv->wqueue, 10);</span><br><span>diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c</span><br><span>index 86f0921..2812e12 100644</span><br><span>--- a/src/gb/gprs_ns2_frgre.c</span><br><span>+++ b/src/gb/gprs_ns2_frgre.c</span><br><span>@@ -180,26 +180,25 @@</span><br><span> inner_ip6h = (struct ip6_hdr *) ((uint8_t *)greh + sizeof(*greh));</span><br><span> </span><br><span> if (gre_payload_len < sizeof(*ip6hdr) + sizeof(*inner_greh)) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "GRE keepalive too short\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "GRE keepalive too short\n");</span><br><span> return -EIO;</span><br><span> }</span><br><span> </span><br><span> if (!memcmp(&inner_ip6h->ip6_src, &ip6hdr->ip6_src, sizeof(struct in6_addr)) ||</span><br><span> !memcmp(&inner_ip6h->ip6_dst, &ip6hdr->ip6_dst, sizeof(struct in6_addr))) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "GRE keepalive with wrong tunnel addresses\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "GRE keepalive with wrong tunnel addresses\n");</span><br><span> return -EIO;</span><br><span> }</span><br><span> </span><br><span> /* Are IPv6 extensions header are allowed in the *inner*? In the outer they are */</span><br><span> if (inner_ip6h->ip6_ctlun.ip6_un1.ip6_un1_nxt != IPPROTO_GRE) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "GRE keepalive with wrong protocol\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "GRE keepalive with wrong protocol\n");</span><br><span> return -EIO;</span><br><span> }</span><br><span> </span><br><span> inner_greh = (struct gre_hdr *) ((uint8_t *)inner_ip6h + sizeof(struct ip6_hdr));</span><br><span> if (inner_greh->ptype != osmo_htons(GRE_PTYPE_KAR)) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "GRE keepalive inner GRE type != 0\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "GRE keepalive inner GRE type != 0\n");</span><br><span> return -EIO;</span><br><span> }</span><br><span> </span><br><span>@@ -212,7 +211,7 @@</span><br><span> ia6 = ip6hdr->ip6_src;</span><br><span> char ip6str[INET6_ADDRSTRLEN] = {};</span><br><span> inet_ntop(AF_INET6, &ia6, ip6str, INET6_ADDRSTRLEN);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_DEBUG, "GRE keepalive from %s, responding\n", ip6str);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_DEBUG, "GRE keepalive from %s, responding\n", ip6str);</span><br><span> </span><br><span> /* why does it reduce the gre_payload_len by the ipv6 header?</span><br><span> * make it similiar to ipv4 even this seems to be wrong */</span><br><span>@@ -238,25 +237,24 @@</span><br><span> inner_iph = (struct iphdr *) ((uint8_t *)greh + sizeof(*greh));</span><br><span> </span><br><span> if (gre_payload_len < inner_iph->ihl*4 + sizeof(*inner_greh)) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "GRE keepalive too short\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "GRE keepalive too short\n");</span><br><span> return -EIO;</span><br><span> }</span><br><span> </span><br><span> if (inner_iph->saddr != iph->daddr ||</span><br><span> inner_iph->daddr != iph->saddr) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "GRE keepalive with wrong tunnel addresses\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "GRE keepalive with wrong tunnel addresses\n");</span><br><span> return -EIO;</span><br><span> }</span><br><span> </span><br><span> if (inner_iph->protocol != IPPROTO_GRE) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "GRE keepalive with wrong protocol\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "GRE keepalive with wrong protocol\n");</span><br><span> return -EIO;</span><br><span> }</span><br><span> </span><br><span> inner_greh = (struct gre_hdr *) ((uint8_t *)inner_iph + iph->ihl*4);</span><br><span> if (inner_greh->ptype != osmo_htons(GRE_PTYPE_KAR)) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "GRE keepalive inner GRE type != 0\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "GRE keepalive inner GRE type != 0\n");</span><br><span> return -EIO;</span><br><span> }</span><br><span> </span><br><span>@@ -267,8 +265,7 @@</span><br><span> daddr.sin_port = IPPROTO_GRE;</span><br><span> </span><br><span> ia.s_addr = iph->saddr;</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_DEBUG, "GRE keepalive from %s, responding\n",</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(ia));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_DEBUG, "GRE keepalive from %s, responding\n", inet_ntoa(ia));</span><br><span> </span><br><span> /* why does it reduce the gre_payload_len by the ipv4 header? */</span><br><span> return sendto(priv->fd.fd, inner_greh,</span><br><span>@@ -277,7 +274,8 @@</span><br><span> }</span><br><span> </span><br><span> static struct msgb *read_nsfrgre_msg(struct osmo_fd *bfd, int *error,</span><br><span style="color: hsl(0, 100%, 40%);">- struct osmo_sockaddr *saddr, uint16_t *dlci)</span><br><span style="color: hsl(120, 100%, 40%);">+ struct osmo_sockaddr *saddr, uint16_t *dlci,</span><br><span style="color: hsl(120, 100%, 40%);">+ const struct gprs_ns2_vc_bind *bind)</span><br><span> {</span><br><span> struct msgb *msg = msgb_alloc(NS_ALLOC_SIZE, "Gb/NS/FR/GRE Rx");</span><br><span> int ret = 0;</span><br><span>@@ -296,8 +294,7 @@</span><br><span> ret = recvfrom(bfd->fd, msg->data, NS_ALLOC_SIZE, 0,</span><br><span> &saddr->u.sa, &saddr_len);</span><br><span> if (ret < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "recv error %s during NS-FR-GRE recv\n",</span><br><span style="color: hsl(0, 100%, 40%);">- strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "recv error %s during NS-FR-GRE recv\n", strerror(errno));</span><br><span> *error = ret;</span><br><span> goto out_err;</span><br><span> } else if (ret == 0) {</span><br><span>@@ -323,7 +320,7 @@</span><br><span> </span><br><span> /* TODO: add support for the extension headers */</span><br><span> if (msg->len < ip46hdr + sizeof(*greh) + 2) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "Short IP packet: %u bytes\n", msg->len);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "Short IP packet: %u bytes\n", msg->len);</span><br><span> *error = -EIO;</span><br><span> goto out_err;</span><br><span> }</span><br><span>@@ -332,7 +329,7 @@</span><br><span> case AF_INET:</span><br><span> iph = (struct iphdr *) msg->data;</span><br><span> if (msg->len < (iph->ihl*4 + sizeof(*greh) + 2)) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "Short IP packet: %u bytes\n", msg->len);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "Short IP packet: %u bytes\n", msg->len);</span><br><span> *error = -EIO;</span><br><span> goto out_err;</span><br><span> }</span><br><span>@@ -344,8 +341,7 @@</span><br><span> </span><br><span> greh = (struct gre_hdr *) (msg->data + iph->ihl*4);</span><br><span> if (greh->flags) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_NOTICE, "Unknown GRE flags 0x%04x\n",</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_ntohs(greh->flags));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_NOTICE, "Unknown GRE flags 0x%04x\n", osmo_ntohs(greh->flags));</span><br><span> }</span><br><span> </span><br><span> switch (osmo_ntohs(greh->ptype)) {</span><br><span>@@ -362,29 +358,27 @@</span><br><span> /* continue as usual */</span><br><span> break;</span><br><span> default:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_NOTICE, "Unknown GRE protocol 0x%04x != FR\n",</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_ntohs(greh->ptype));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_NOTICE, "Unknown GRE protocol 0x%04x != FR\n", osmo_ntohs(greh->ptype));</span><br><span> *error = -EIO;</span><br><span> goto out_err;</span><br><span> break;</span><br><span> }</span><br><span> </span><br><span> if (msg->len < sizeof(*greh) + 2) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "Short FR header: %u bytes\n", msg->len);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "Short FR header: %u bytes\n", msg->len);</span><br><span> *error = -EIO;</span><br><span> goto out_err;</span><br><span> }</span><br><span> </span><br><span> frh = (uint8_t *)greh + sizeof(*greh);</span><br><span> if (frh[0] & 0x01) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_NOTICE, "Unsupported single-byte FR address\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_NOTICE, "Unsupported single-byte FR address\n");</span><br><span> *error = -EIO;</span><br><span> goto out_err;</span><br><span> }</span><br><span> *dlci = ((frh[0] & 0xfc) << 2);</span><br><span> if ((frh[1] & 0x0f) != 0x01) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_NOTICE, "Unknown second FR octet 0x%02x\n",</span><br><span style="color: hsl(0, 100%, 40%);">- frh[1]);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_NOTICE, "Unknown second FR octet 0x%02x\n", frh[1]);</span><br><span> *error = -EIO;</span><br><span> goto out_err;</span><br><span> }</span><br><span>@@ -430,13 +424,12 @@</span><br><span> struct msgb *reject;</span><br><span> uint16_t dlci;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- msg = read_nsfrgre_msg(bfd, &rc, &saddr, &dlci);</span><br><span style="color: hsl(120, 100%, 40%);">+ msg = read_nsfrgre_msg(bfd, &rc, &saddr, &dlci, bind);</span><br><span> if (!msg)</span><br><span> return rc;</span><br><span> </span><br><span> if (dlci == 0 || dlci == 1023) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_INFO, "Received FR on LMI DLCI %u - ignoring\n",</span><br><span style="color: hsl(0, 100%, 40%);">- dlci);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_INFO, "Received FR on LMI DLCI %u - ignoring\n", dlci);</span><br><span> rc = 0;</span><br><span> goto out;</span><br><span> }</span><br><span>@@ -603,8 +596,7 @@</span><br><span> rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS,</span><br><span> &dscp, sizeof(dscp));</span><br><span> if (rc < 0)</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "Failed to set the DSCP to %d with ret(%d) errno(%d)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n",</span><br><span> dscp, rc, errno);</span><br><span> }</span><br><span> </span><br><span>diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h</span><br><span>index ebb2e3b..7183bd8 100644</span><br><span>--- a/src/gb/gprs_ns2_internal.h</span><br><span>+++ b/src/gb/gprs_ns2_internal.h</span><br><span>@@ -8,6 +8,24 @@</span><br><span> #include <osmocom/gprs/protocol/gsm_08_16.h></span><br><span> #include <osmocom/gprs/gprs_ns2.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#define LOGNSE(nse, lvl, fmt, args ...) \</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGP(DLNS, lvl, "NSE(%05u) " fmt, (nse)->nsei, ## args)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define LOGBIND(bind, lvl, fmt, args ...) \</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGP(DLNS, lvl, "BIND(%s) " fmt, (bind)->name, ## args)</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%);">+#define LOGNSVC(nsvc, lvl, fmt, args ...) \</span><br><span style="color: hsl(120, 100%, 40%);">+ do { \</span><br><span style="color: hsl(120, 100%, 40%);">+ if ((nsvc)->nsvci_is_valid) { \</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGP(DLNS, lvl, "NSE(%05u)-NSVC(%05u) " fmt, \</span><br><span style="color: hsl(120, 100%, 40%);">+ (nsvc)->nse->nsei, (nsvc)->nsvci, ## args); \</span><br><span style="color: hsl(120, 100%, 40%);">+ } else { \</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGP(DLNS, lvl, "NSE(%05u)-NSVC(none) " fmt, \</span><br><span style="color: hsl(120, 100%, 40%);">+ (nsvc)->nse->nsei, ## args); \</span><br><span style="color: hsl(120, 100%, 40%);">+ } \</span><br><span style="color: hsl(120, 100%, 40%);">+ } while (0)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> struct osmo_fsm_inst;</span><br><span> struct tlv_parsed;</span><br><span> struct vty;</span><br><span>diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c</span><br><span>index 41605f4..9559229 100644</span><br><span>--- a/src/gb/gprs_ns2_message.c</span><br><span>+++ b/src/gb/gprs_ns2_message.c</span><br><span>@@ -43,8 +43,7 @@</span><br><span> do { \</span><br><span> if (!nsvc->nse->bss_sns_fi) \</span><br><span> break; \</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_DEBUG, "NSEI=%u Rx invalid packet %s with SNS\n", \</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei, reason); \</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_DEBUG, "invalid packet %s with SNS\n", reason); \</span><br><span> } while (0)</span><br><span> </span><br><span> enum ns_ctr {</span><br><span>@@ -223,8 +222,7 @@</span><br><span> if (!msg)</span><br><span> return -ENOMEM;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS BLOCK (NSVCI=%u, cause=%s)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei, nsvc->nsvci, gprs_ns2_cause_str(cause));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_INFO, "Tx NS BLOCK (cause=%s)\n", gprs_ns2_cause_str(cause));</span><br><span> </span><br><span> rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_BLOCKED]);</span><br><span> </span><br><span>@@ -256,7 +254,7 @@</span><br><span> if (!msg)</span><br><span> return -ENOMEM;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS BLOCK ACK (NSVCI=%u)\n", nsvc->nse->nsei, nsvc->nsvci);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_INFO, "Tx NS BLOCK ACK\n");</span><br><span> </span><br><span> msg->l2h = msgb_put(msg, sizeof(*nsh));</span><br><span> nsh = (struct gprs_ns_hdr *) msg->l2h;</span><br><span>@@ -287,8 +285,7 @@</span><br><span> if (!msg)</span><br><span> return -ENOMEM;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS RESET (NSVCI=%u, cause=%s)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei, nsvc->nsvci, gprs_ns2_cause_str(cause));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_INFO, "Tx NS RESET (cause=%s)\n", gprs_ns2_cause_str(cause));</span><br><span> </span><br><span> msg->l2h = msgb_put(msg, sizeof(*nsh));</span><br><span> nsh = (struct gprs_ns_hdr *) msg->l2h;</span><br><span>@@ -328,8 +325,7 @@</span><br><span> </span><br><span> nsh->pdu_type = NS_PDUT_RESET_ACK;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS RESET ACK (NSVCI=%u)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei, nsvc->nsvci);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_INFO, "Tx NS RESET ACK\n");</span><br><span> </span><br><span> msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *)&nsvci);</span><br><span> msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei);</span><br><span>@@ -347,8 +343,7 @@</span><br><span> </span><br><span> ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS UNBLOCK");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS UNBLOCK (NSVCI=%u)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei, nsvc->nsvci);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_INFO, "Tx NS UNBLOCK\n");</span><br><span> </span><br><span> return ns2_tx_simple(nsvc, NS_PDUT_UNBLOCK);</span><br><span> }</span><br><span>@@ -364,8 +359,7 @@</span><br><span> </span><br><span> ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS UNBLOCK ACK");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS UNBLOCK (NSVCI=%u)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei, nsvc->nsvci);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_INFO, "Tx NS UNBLOCK_ACK\n");</span><br><span> </span><br><span> return ns2_tx_simple(nsvc, NS_PDUT_UNBLOCK_ACK);</span><br><span> }</span><br><span>@@ -377,8 +371,7 @@</span><br><span> {</span><br><span> log_set_context(LOG_CTX_GB_NSE, nsvc->nse);</span><br><span> log_set_context(LOG_CTX_GB_NSVC, nsvc);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_DEBUG, "NSEI=%u Tx NS ALIVE (NSVCI=%u)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei, nsvc->nsvci);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_DEBUG, "Tx NS ALIVE\n");</span><br><span> </span><br><span> return ns2_tx_simple(nsvc, NS_PDUT_ALIVE);</span><br><span> }</span><br><span>@@ -390,8 +383,7 @@</span><br><span> {</span><br><span> log_set_context(LOG_CTX_GB_NSE, nsvc->nse);</span><br><span> log_set_context(LOG_CTX_GB_NSVC, nsvc);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_DEBUG, "NSEI=%u Tx NS ALIVE_ACK (NSVCI=%u)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei, nsvc->nsvci);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_DEBUG, "Tx NS ALIVE_ACK\n");</span><br><span> </span><br><span> return ns2_tx_simple(nsvc, NS_PDUT_ALIVE_ACK);</span><br><span> }</span><br><span>@@ -414,7 +406,7 @@</span><br><span> msg->l2h = msgb_push(msg, sizeof(*nsh) + 3);</span><br><span> nsh = (struct gprs_ns_hdr *) msg->l2h;</span><br><span> if (!nsh) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "Not enough headroom for NS header\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_ERROR, "Not enough headroom for NS header\n");</span><br><span> msgb_free(msg);</span><br><span> return -EIO;</span><br><span> }</span><br><span>@@ -448,8 +440,7 @@</span><br><span> if (!msg)</span><br><span> return -ENOMEM;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_NOTICE, "NSEI=%u Tx NS STATUS (NSVCI=%u, cause=%s)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei, nsvc->nsvci, gprs_ns2_cause_str(cause));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_NOTICE, "Tx NS STATUS (cause=%s)\n", gprs_ns2_cause_str(cause));</span><br><span> </span><br><span> msg->l2h = msgb_put(msg, sizeof(*nsh));</span><br><span> nsh = (struct gprs_ns_hdr *) msg->l2h;</span><br><span>@@ -512,8 +503,7 @@</span><br><span> return -ENOMEM;</span><br><span> </span><br><span> if (!nsvc->nse->bss_sns_fi) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n");</span><br><span> msgb_free(msg);</span><br><span> return -EIO;</span><br><span> }</span><br><span>@@ -571,8 +561,7 @@</span><br><span> return -ENOMEM;</span><br><span> </span><br><span> if (!nsvc->nse->bss_sns_fi) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n");</span><br><span> msgb_free(msg);</span><br><span> return -EIO;</span><br><span> }</span><br><span>@@ -620,8 +609,7 @@</span><br><span> return -ENOMEM;</span><br><span> </span><br><span> if (!nsvc->nse->bss_sns_fi) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n");</span><br><span> msgb_free(msg);</span><br><span> return -EIO;</span><br><span> }</span><br><span>@@ -666,8 +654,7 @@</span><br><span> return -ENOMEM;</span><br><span> </span><br><span> if (!nsvc->nse->bss_sns_fi) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n");</span><br><span> msgb_free(msg);</span><br><span> return -EIO;</span><br><span> }</span><br><span>@@ -706,8 +693,7 @@</span><br><span> return -ENOMEM;</span><br><span> </span><br><span> if (!nsvc->nse->bss_sns_fi) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n");</span><br><span> msgb_free(msg);</span><br><span> return -EIO;</span><br><span> }</span><br><span>diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c</span><br><span>index 72e4ea7..90d97b6 100644</span><br><span>--- a/src/gb/gprs_ns2_sns.c</span><br><span>+++ b/src/gb/gprs_ns2_sns.c</span><br><span>@@ -1447,17 +1447,17 @@</span><br><span> struct osmo_fsm_inst *fi;</span><br><span> </span><br><span> if (!nse->bss_sns_fi) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_NOTICE, "NSEI=%u Rx %s for NS Instance that has no SNS!\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nsvc->nse->nsei, get_value_string(gprs_ns_pdu_strings, nsh->pdu_type));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSVC(nsvc, LOGL_NOTICE, "Rx %s for NS Instance that has no SNS!\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ get_value_string(gprs_ns_pdu_strings, nsh->pdu_type));</span><br><span> return -EINVAL;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_DEBUG, "NSEI=%u Rx SNS PDU type %s\n", nsei,</span><br><span style="color: hsl(0, 100%, 40%);">- get_value_string(gprs_ns_pdu_strings, nsh->pdu_type));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /* FIXME: how to resolve SNS FSM Instance by NSEI (SGSN)? */</span><br><span> fi = nse->bss_sns_fi;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPFSML(fi, LOGL_DEBUG, "NSEI=%u Rx SNS PDU type %s\n", nsei,</span><br><span style="color: hsl(120, 100%, 40%);">+ get_value_string(gprs_ns_pdu_strings, nsh->pdu_type));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> switch (nsh->pdu_type) {</span><br><span> case SNS_PDUT_SIZE:</span><br><span> osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SIZE, tp);</span><br><span>@@ -1484,12 +1484,12 @@</span><br><span> osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_CHANGE_WEIGHT, tp);</span><br><span> break;</span><br><span> case SNS_PDUT_ACK:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_NOTICE, "NSEI=%u Rx unsupported SNS PDU type %s\n", nsei,</span><br><span style="color: hsl(0, 100%, 40%);">- get_value_string(gprs_ns_pdu_strings, nsh->pdu_type));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPFSML(fi, LOGL_NOTICE, "NSEI=%u Rx unsupported SNS PDU type %s\n", nsei,</span><br><span style="color: hsl(120, 100%, 40%);">+ get_value_string(gprs_ns_pdu_strings, nsh->pdu_type));</span><br><span> break;</span><br><span> default:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "NSEI=%u Rx unknown SNS PDU type %s\n", nsei,</span><br><span style="color: hsl(0, 100%, 40%);">- get_value_string(gprs_ns_pdu_strings, nsh->pdu_type));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx unknown SNS PDU type %s\n", nsei,</span><br><span style="color: hsl(120, 100%, 40%);">+ get_value_string(gprs_ns_pdu_strings, nsh->pdu_type));</span><br><span> return -EINVAL;</span><br><span> }</span><br><span> </span><br><span>@@ -1663,7 +1663,7 @@</span><br><span> </span><br><span> /* gprs_ns2_free_nsvcs() will trigger GPRS_SNS_EV_NO_NSVC on the last NS-VC</span><br><span> * and restart SNS SIZE procedure which selects a new initial */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_INFO, "Current in-use SNS endpoint is being removed."</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSE(nse, LOGL_INFO, "Current in-use SNS endpoint is being removed."</span><br><span> "Closing all NS-VC and restart SNS-SIZE procedure"</span><br><span> "with a remaining SNS endpoint.\n");</span><br><span> </span><br><span>diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c</span><br><span>index 2a335c1..8bfa184 100644</span><br><span>--- a/src/gb/gprs_ns2_udp.c</span><br><span>+++ b/src/gb/gprs_ns2_udp.c</span><br><span>@@ -168,8 +168,8 @@</span><br><span> }</span><br><span> </span><br><span> /* Read a single NS-over-IP message */</span><br><span style="color: hsl(0, 100%, 40%);">-static struct msgb *read_nsip_msg(struct osmo_fd *bfd, int *error,</span><br><span style="color: hsl(0, 100%, 40%);">- struct osmo_sockaddr *saddr)</span><br><span style="color: hsl(120, 100%, 40%);">+static struct msgb *read_nsip_msg(struct osmo_fd *bfd, int *error, struct osmo_sockaddr *saddr,</span><br><span style="color: hsl(120, 100%, 40%);">+ const struct gprs_ns2_vc_bind *bind)</span><br><span> {</span><br><span> struct msgb *msg = gprs_ns2_msgb_alloc();</span><br><span> int ret = 0;</span><br><span>@@ -183,8 +183,8 @@</span><br><span> ret = recvfrom(bfd->fd, msg->data, NS_ALLOC_SIZE - NS_ALLOC_HEADROOM, 0,</span><br><span> &saddr->u.sa, &saddr_len);</span><br><span> if (ret < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "recv error %s during NSIP recvfrom %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- strerror(errno), osmo_sock_get_name2(bfd->fd));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "recv error %s during NSIP recvfrom %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ strerror(errno), osmo_sock_get_name2(bfd->fd));</span><br><span> msgb_free(msg);</span><br><span> *error = ret;</span><br><span> return NULL;</span><br><span>@@ -219,7 +219,7 @@</span><br><span> struct gprs_ns2_vc_bind *bind = bfd->data;</span><br><span> struct osmo_sockaddr saddr;</span><br><span> struct gprs_ns2_vc *nsvc;</span><br><span style="color: hsl(0, 100%, 40%);">- struct msgb *msg = read_nsip_msg(bfd, &error, &saddr);</span><br><span style="color: hsl(120, 100%, 40%);">+ struct msgb *msg = read_nsip_msg(bfd, &error, &saddr, bind);</span><br><span> struct msgb *reject;</span><br><span> </span><br><span> if (!msg)</span><br><span>@@ -378,8 +378,7 @@</span><br><span> rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS,</span><br><span> &dscp, sizeof(dscp));</span><br><span> if (rc < 0)</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "Failed to set the DSCP to %d with ret(%d) errno(%d)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n",</span><br><span> dscp, rc, errno);</span><br><span> }</span><br><span> </span><br><span>@@ -409,8 +408,8 @@</span><br><span> </span><br><span> vc_mode = gprs_ns2_dialect_to_vc_mode(nse->dialect);</span><br><span> if ((int) vc_mode == -1) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "Can not derive vc mode from dialect %d. Maybe libosmocore is too old.\n",</span><br><span style="color: hsl(0, 100%, 40%);">- nse->dialect);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGNSE(nse, LOGL_ERROR, "Can not derive vc mode from dialect %d. Maybe libosmocore is too old.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ nse->dialect);</span><br><span> return NULL;</span><br><span> }</span><br><span> </span><br><span>@@ -528,10 +527,10 @@</span><br><span> </span><br><span> rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS,</span><br><span> &dscp, sizeof(dscp));</span><br><span style="color: hsl(0, 100%, 40%);">- if (rc < 0)</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "Failed to set the DSCP to %d with ret(%d) errno(%d)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- dscp, rc, errno);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (rc < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ dscp, rc, errno);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span> }</span><br><span> </span><br><span> return rc;</span><br><span>diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c</span><br><span>index 5de86f5..fc2a86a 100644</span><br><span>--- a/src/gb/gprs_ns2_vc_fsm.c</span><br><span>+++ b/src/gb/gprs_ns2_vc_fsm.c</span><br><span>@@ -793,8 +793,8 @@</span><br><span> osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNITDATA, msg);</span><br><span> return 0;</span><br><span> default:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLNS, LOGL_ERROR, "NSEI=%u Rx unknown NS PDU type %s\n", nsvc->nse->nsei,</span><br><span style="color: hsl(0, 100%, 40%);">- get_value_string(gprs_ns_pdu_strings, nsh->pdu_type));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx unknown NS PDU type %s\n", nsvc->nse->nsei,</span><br><span style="color: hsl(120, 100%, 40%);">+ get_value_string(gprs_ns_pdu_strings, nsh->pdu_type));</span><br><span> return -EINVAL;</span><br><span> }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmocore/+/22337">change 22337</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/+/22337"/><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: I946c0e77686d91efc5afb62031e1ac1033a9a586 </div>
<div style="display:none"> Gerrit-Change-Number: 22337 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </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: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>