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