ggsn: Improve logging on incoming DL data packets
Change-Id: I3617c8f68d8f18617871c070e28cc6ae5c6a925b
This commit is contained in:
parent
00e0559e17
commit
4b9b19e998
42
ggsn/ggsn.c
42
ggsn/ggsn.c
|
@ -593,7 +593,7 @@ static int cb_tun_ind(struct tun_t *tun, void *pack, unsigned len)
|
||||||
struct iphdr *iph = (struct iphdr *)pack;
|
struct iphdr *iph = (struct iphdr *)pack;
|
||||||
struct ip6_hdr *ip6h = (struct ip6_hdr *)pack;
|
struct ip6_hdr *ip6h = (struct ip6_hdr *)pack;
|
||||||
struct ippool_t *pool;
|
struct ippool_t *pool;
|
||||||
char straddr[INET6_ADDRSTRLEN];
|
char straddr[2][INET6_ADDRSTRLEN];
|
||||||
uint8_t pref_offset;
|
uint8_t pref_offset;
|
||||||
|
|
||||||
switch (iph->version) {
|
switch (iph->version) {
|
||||||
|
@ -626,17 +626,41 @@ static int cb_tun_ind(struct tun_t *tun, void *pack, unsigned len)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (ippool_getip(pool, &ipm, &dst)) {
|
if (ippool_getip(pool, &ipm, &dst)) {
|
||||||
LOGTUN(LOGL_DEBUG, tun, "Received packet for APN(%s) with no PDP contex! (%s)\n",
|
LOGTUN(LOGL_DEBUG, tun, "APN(%s) Rx DL data packet for IP address outside "
|
||||||
apn->cfg.name,
|
"pool of managed addresses: %s <- %s\n",
|
||||||
iph->version == 4 ?
|
apn->cfg.name,
|
||||||
inet_ntop(AF_INET, &iph->saddr, straddr, sizeof(straddr)) :
|
iph->version == 4 ?
|
||||||
inet_ntop(AF_INET6, &ip6h->ip6_src, straddr, sizeof(straddr)));
|
inet_ntop(AF_INET, &iph->daddr, straddr[0], sizeof(straddr[0])) :
|
||||||
|
inet_ntop(AF_INET6, &ip6h->ip6_dst, straddr[0], sizeof(straddr[0])),
|
||||||
|
iph->version == 4 ?
|
||||||
|
inet_ntop(AF_INET, &iph->saddr, straddr[1], sizeof(straddr[1])) :
|
||||||
|
inet_ntop(AF_INET6, &ip6h->ip6_src, straddr[1], sizeof(straddr[1])));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
LOGTUN(LOGL_DEBUG, tun, "Received packet for APN(%s)\n", apn->cfg.name);
|
|
||||||
|
|
||||||
if (ipm->peer) /* Check if a peer protocol is defined */
|
if (ipm->peer) { /* Check if a peer protocol is defined */
|
||||||
gtp_data_req(apn->ggsn->gsn, (struct pdp_t *)ipm->peer, pack, len);
|
struct pdp_t *pdp = (struct pdp_t *)ipm->peer;
|
||||||
|
LOGTUN(LOGL_DEBUG, tun, "APN(%s) Rx DL data packet for PDP(%s:%u): %s <- %s\n",
|
||||||
|
apn->cfg.name,
|
||||||
|
imsi_gtp2str(&(pdp)->imsi), (pdp)->nsapi,
|
||||||
|
iph->version == 4 ?
|
||||||
|
inet_ntop(AF_INET, &iph->daddr, straddr[0], sizeof(straddr[0])) :
|
||||||
|
inet_ntop(AF_INET6, &ip6h->ip6_dst, straddr[0], sizeof(straddr[0])),
|
||||||
|
iph->version == 4 ?
|
||||||
|
inet_ntop(AF_INET, &iph->saddr, straddr[1], sizeof(straddr[1])) :
|
||||||
|
inet_ntop(AF_INET6, &ip6h->ip6_src, straddr[1], sizeof(straddr[1])));
|
||||||
|
gtp_data_req(apn->ggsn->gsn, pdp, pack, len);
|
||||||
|
} else {
|
||||||
|
LOGTUN(LOGL_DEBUG, tun, "APN(%s) Rx DL data packet for IP address with no "
|
||||||
|
"associated PDP Ctx: %s <- %s\n",
|
||||||
|
apn->cfg.name,
|
||||||
|
iph->version == 4 ?
|
||||||
|
inet_ntop(AF_INET, &iph->daddr, straddr[0], sizeof(straddr[0])) :
|
||||||
|
inet_ntop(AF_INET6, &ip6h->ip6_dst, straddr[0], sizeof(straddr[0])),
|
||||||
|
iph->version == 4 ?
|
||||||
|
inet_ntop(AF_INET, &iph->saddr, straddr[1], sizeof(straddr[1])) :
|
||||||
|
inet_ntop(AF_INET6, &ip6h->ip6_src, straddr[1], sizeof(straddr[1])));
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue