[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox
Subject: Re: Traceroute ICMP option doesn't work
From: Denys Vlasenko <vda.linux () googlemail ! com>
Date: 2020-12-11 10:51:05
Message-ID: CAK1hOcNqsbDCNbQ66yBQ=w47_h_5fziQgKFe7siMnX77mcebSg () mail ! gmail ! com
[Download RAW message or body]
On Thu, Dec 10, 2020 at 1:23 PM M K Verma <manishverma1420@gmail.com> wrote:
> Are you aware of how -I(ICMP) can be fixed on Busybox?
> I have gone through the code, tested and I see the -I(ICMP) is sent instead of UDP \
> in case of IPv4 hosts when a flag is enabled in the defconfig.
> The same does not work out in case of IPv6 hosts, UDP packets are sent instead.
> Is this an architectural limitation of Busybox ? Or there is a room for a fix here \
> ? If a fix is possible, we can together work on this.
> I have an IPv6 network where this can be tested.
You are right, looking at traceroute.c, send_probe():
send_probe(int seq, int ttl)
{
int len, res;
void *out;
/* Payload */
#if ENABLE_TRACEROUTE6
if (dest_lsa->u.sa.sa_family == AF_INET6) {
struct outdata6_t *pkt = (struct outdata6_t *) outdata;
pkt->ident6 = htonl(ident);
pkt->seq6 = htonl(seq);
/*gettimeofday(&pkt->tv, &tz);*/
} else
#endif
{
outdata->seq = seq;
outdata->ttl = ttl;
// UNUSED: was storing gettimeofday's result there, but never ever checked it
/*memcpy(&outdata->tv, tp, sizeof(outdata->tv));*/
if (option_mask32 & OPT_USE_ICMP) {
outicmp->icmp_seq = htons(seq);
/* Always calculate checksum for icmp packets */
outicmp->icmp_cksum = 0;
outicmp->icmp_cksum = inet_cksum(
outicmp,
((char*)outip + packlen) -
(char*)outicmp
);
if (outicmp->icmp_cksum == 0)
outicmp->icmp_cksum = 0xffff;
}
}
The "ENABLE_TRACEROUTE6" block has no "if (option_mask32 & OPT_USE_ICMP) ..."
code path, but ipv4 alternatibe below has it. It needs to be added.
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic