# -sam k (commport5@lucidx.com)

sub tcp_decode {
 my ($pkt) = @_;
 my ($w, $olen, %tcpa);
 ($tcpa{src_port},$tcpa{dest_port},$tcpa{seqnum},$tcpa{acknum},$w,$tcpa{urg},$tcpa{ack},$tcpa{psh},$tcpa{rst},$tcpa{syn},$tcpa{fin},$tcpa{winsize},$tcpa{cksum},$tcpa{urgp},$tcpa{options})
 = unpack("nnNNB10BBBBBBnnna*", $pkt);
 $tcpa{hlen} = $w >> 12;
 $tcpa{reserved} = $w & 0x0fc0 >> 6;
 $olen = $tcpa{hlen} - 5;
 $olen = 0, if ($olen < 0);
 ($tcpa{options}, $tcpa{data}) = unpack("a" . $olen . "a*", $tcpa{options});
 return %tcpa;
}

1;
