[Click] tcp->thdport and udp->uh_dport not returning correct values
Beyers Cronje
bcronje at gmail.com
Fri May 13 10:05:49 EDT 2011
You probably forgot to convert to host byte order:
src_port = ntohs(tcp->th_sport);
The way you are assigning your pointers are also prone to errors.
A better way would be something in the lines of:
const click_ip6 *ip6h = p->ip6_header();
const click_tcp *tcph = p->tcp_header();
if (!p->has_network_header()) {
p->kill();
return;
}
// Do your stuff here
The above code assumes that you have used the proper Click configuration to
ensure IPv6 packets via Classifier and that the packets are passed through
MarkIP6Header or CheckIP6Header so that the proper packet header annotations
are set.
Beyers
On Fri, May 13, 2011 at 3:33 PM, milos rovcanin <ro1208984 at gmail.com> wrote:
> Greetings,
>
> Like it's said in the subject, this code:
>
> click_ether * eth = (click_ether *)p->data();
> click_ip6 * ip6 = (click_ip6 *)(eth+1);
>
> if(ip6->ip6_nxt == 6) {
> click_tcp* tcp = (click_tcp*)(ip6+1);
> src_port = tcp->th_sport;
> dst_port = tcp->th_dport;
> }
>
> just won't return correct values for dst_port and src_port! I have checked
> it in Wireshark too.
> What am I doing wrong?
>
> Thanks in advance!
> --
> Milos Rovcanin
> Department of Information Technology
> Internet Based Communication Networks and Services research group (IBCN)
> Ghent University - IBBT
> Gaston Crommenlaan 8 (Bus 201), B-9050 Gent, Belgium
> T: +32 9 33 14946 ; T Secr: +32 9 33 14900
> E: Milos.Rovcanin at intec.UGent.be
> W: www.ibcn.intec.UGent.be
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>
More information about the click
mailing list