1*bd1f8aebSAndroid Build Coastguard Worker<refentry id="pg3"> 2*bd1f8aebSAndroid Build Coastguard Worker 3*bd1f8aebSAndroid Build Coastguard Worker<refmeta> 4*bd1f8aebSAndroid Build Coastguard Worker<refentrytitle>pg3</refentrytitle> 5*bd1f8aebSAndroid Build Coastguard Worker<manvolnum>8</manvolnum> 6*bd1f8aebSAndroid Build Coastguard Worker<refmiscinfo>iputils-&snapshot;</refmiscinfo> 7*bd1f8aebSAndroid Build Coastguard Worker</refmeta> 8*bd1f8aebSAndroid Build Coastguard Worker 9*bd1f8aebSAndroid Build Coastguard Worker 10*bd1f8aebSAndroid Build Coastguard Worker<refnamediv> 11*bd1f8aebSAndroid Build Coastguard Worker<refname>pg3, ipg, pgset</refname> 12*bd1f8aebSAndroid Build Coastguard Worker<refpurpose>send stream of UDP packets</refpurpose> 13*bd1f8aebSAndroid Build Coastguard Worker</refnamediv> 14*bd1f8aebSAndroid Build Coastguard Worker 15*bd1f8aebSAndroid Build Coastguard Worker<refsynopsisdiv> 16*bd1f8aebSAndroid Build Coastguard Worker<cmdsynopsis> 17*bd1f8aebSAndroid Build Coastguard Worker<command>source ipg</command> 18*bd1f8aebSAndroid Build Coastguard Worker</cmdsynopsis> 19*bd1f8aebSAndroid Build Coastguard Worker<cmdsynopsis> 20*bd1f8aebSAndroid Build Coastguard Worker<command>pg</command> 21*bd1f8aebSAndroid Build Coastguard Worker</cmdsynopsis> 22*bd1f8aebSAndroid Build Coastguard Worker<cmdsynopsis> 23*bd1f8aebSAndroid Build Coastguard Worker<command>pgset</command> 24*bd1f8aebSAndroid Build Coastguard Worker<arg choice="req"><replaceable/COMMAND/</arg> 25*bd1f8aebSAndroid Build Coastguard Worker</cmdsynopsis> 26*bd1f8aebSAndroid Build Coastguard Worker</refsynopsisdiv> 27*bd1f8aebSAndroid Build Coastguard Worker 28*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>DESCRIPTION</title> 29*bd1f8aebSAndroid Build Coastguard Worker<para> 30*bd1f8aebSAndroid Build Coastguard Worker<command/ipg/ is not a program, it is script which should be sourced 31*bd1f8aebSAndroid Build Coastguard Workerto <command/bash/. When sourced it loads module <filename/pg3/ and 32*bd1f8aebSAndroid Build Coastguard Workerexports a few of functions accessible from parent shell. These macros 33*bd1f8aebSAndroid Build Coastguard Workerare <command/pg/ to start packet injection and to get the results of run; 34*bd1f8aebSAndroid Build Coastguard Workerand <command/pgset/ to setup packet generator. 35*bd1f8aebSAndroid Build Coastguard Worker</para> 36*bd1f8aebSAndroid Build Coastguard Worker 37*bd1f8aebSAndroid Build Coastguard Worker<para> 38*bd1f8aebSAndroid Build Coastguard Worker<command/pgset/ can send the following commands to module <filename/pg3/: 39*bd1f8aebSAndroid Build Coastguard Worker</para> 40*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 41*bd1f8aebSAndroid Build Coastguard Worker 42*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>COMMAND</title> 43*bd1f8aebSAndroid Build Coastguard Worker 44*bd1f8aebSAndroid Build Coastguard Worker<variablelist> 45*bd1f8aebSAndroid Build Coastguard Worker 46*bd1f8aebSAndroid Build Coastguard Worker <varlistentry> 47*bd1f8aebSAndroid Build Coastguard Worker <term><option>odev <replaceable/DEVICE/</option></term> 48*bd1f8aebSAndroid Build Coastguard Worker <listitem><para> 49*bd1f8aebSAndroid Build Coastguard WorkerName of Ethernet device to test. See 50*bd1f8aebSAndroid Build Coastguard Worker<link linkend="pg3.warning">warning</link> below. 51*bd1f8aebSAndroid Build Coastguard Worker </para></listitem> 52*bd1f8aebSAndroid Build Coastguard Worker </varlistentry> 53*bd1f8aebSAndroid Build Coastguard Worker 54*bd1f8aebSAndroid Build Coastguard Worker <varlistentry> 55*bd1f8aebSAndroid Build Coastguard Worker <term><option>pkt_size <replaceable/BYTES/</option></term> 56*bd1f8aebSAndroid Build Coastguard Worker <listitem><para> 57*bd1f8aebSAndroid Build Coastguard WorkerSize of packet to generate. The size includes all the headers: UDP, IP, 58*bd1f8aebSAndroid Build Coastguard WorkerMAC, but does not account for overhead internal to medium, i.e. FCS 59*bd1f8aebSAndroid Build Coastguard Workerand various paddings. 60*bd1f8aebSAndroid Build Coastguard Worker </para></listitem> 61*bd1f8aebSAndroid Build Coastguard Worker </varlistentry> 62*bd1f8aebSAndroid Build Coastguard Worker 63*bd1f8aebSAndroid Build Coastguard Worker <varlistentry> 64*bd1f8aebSAndroid Build Coastguard Worker <term><option>frags <replaceable/NUMBER/</option></term> 65*bd1f8aebSAndroid Build Coastguard Worker <listitem><para> 66*bd1f8aebSAndroid Build Coastguard WorkerEach packet will contain <replaceable/NUMBER/ of fragments. 67*bd1f8aebSAndroid Build Coastguard WorkerMaximal amount for linux-2.4 is 6. Far not all the devices support 68*bd1f8aebSAndroid Build Coastguard Workerfragmented buffers. 69*bd1f8aebSAndroid Build Coastguard Worker </para></listitem> 70*bd1f8aebSAndroid Build Coastguard Worker </varlistentry> 71*bd1f8aebSAndroid Build Coastguard Worker 72*bd1f8aebSAndroid Build Coastguard Worker <varlistentry> 73*bd1f8aebSAndroid Build Coastguard Worker <term><option>count <replaceable/NUMBER/</option></term> 74*bd1f8aebSAndroid Build Coastguard Worker <listitem><para> 75*bd1f8aebSAndroid Build Coastguard WorkerSend stream of <replaceable/NUMBER/ of packets and stop after this. 76*bd1f8aebSAndroid Build Coastguard Worker </para></listitem> 77*bd1f8aebSAndroid Build Coastguard Worker </varlistentry> 78*bd1f8aebSAndroid Build Coastguard Worker 79*bd1f8aebSAndroid Build Coastguard Worker <varlistentry> 80*bd1f8aebSAndroid Build Coastguard Worker <term><option>ipg <replaceable/TIME/</option></term> 81*bd1f8aebSAndroid Build Coastguard Worker <listitem><para> 82*bd1f8aebSAndroid Build Coastguard WorkerIntroduce artificial delay between packets of <replaceable/TIME/ 83*bd1f8aebSAndroid Build Coastguard Workermicroseconds. 84*bd1f8aebSAndroid Build Coastguard Worker </para></listitem> 85*bd1f8aebSAndroid Build Coastguard Worker </varlistentry> 86*bd1f8aebSAndroid Build Coastguard Worker 87*bd1f8aebSAndroid Build Coastguard Worker <varlistentry> 88*bd1f8aebSAndroid Build Coastguard Worker <term><option>dst <replaceable/IP_ADDRESS/</option></term> 89*bd1f8aebSAndroid Build Coastguard Worker <listitem><para> 90*bd1f8aebSAndroid Build Coastguard WorkerSelect IP destination where the stream is sent to. 91*bd1f8aebSAndroid Build Coastguard WorkerBeware, never set this address at random. <command/pg3/ is not a toy, 92*bd1f8aebSAndroid Build Coastguard Workerit creates really tough stream. Default value is 0.0.0.0. 93*bd1f8aebSAndroid Build Coastguard Worker </para></listitem> 94*bd1f8aebSAndroid Build Coastguard Worker </varlistentry> 95*bd1f8aebSAndroid Build Coastguard Worker 96*bd1f8aebSAndroid Build Coastguard Worker <varlistentry> 97*bd1f8aebSAndroid Build Coastguard Worker <term><option>dst <replaceable/MAC_ADDRESS/</option></term> 98*bd1f8aebSAndroid Build Coastguard Worker <listitem><para> 99*bd1f8aebSAndroid Build Coastguard WorkerSelect MAC destination where the stream is sent to. 100*bd1f8aebSAndroid Build Coastguard WorkerDefault value is 00:00:00:00:00:00 in hope that this will not be received 101*bd1f8aebSAndroid Build Coastguard Workerby any node on LAN. 102*bd1f8aebSAndroid Build Coastguard Worker </para></listitem> 103*bd1f8aebSAndroid Build Coastguard Worker </varlistentry> 104*bd1f8aebSAndroid Build Coastguard Worker 105*bd1f8aebSAndroid Build Coastguard Worker <varlistentry> 106*bd1f8aebSAndroid Build Coastguard Worker <term><option>stop</option></term> 107*bd1f8aebSAndroid Build Coastguard Worker <listitem><para> 108*bd1f8aebSAndroid Build Coastguard WorkerAbort packet injection. 109*bd1f8aebSAndroid Build Coastguard Worker </para></listitem> 110*bd1f8aebSAndroid Build Coastguard Worker </varlistentry> 111*bd1f8aebSAndroid Build Coastguard Worker 112*bd1f8aebSAndroid Build Coastguard Worker</variablelist> 113*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 114*bd1f8aebSAndroid Build Coastguard Worker 115*bd1f8aebSAndroid Build Coastguard Worker<refsect1 id="pg3.warning"><title>WARNING</title> 116*bd1f8aebSAndroid Build Coastguard Worker<para> 117*bd1f8aebSAndroid Build Coastguard WorkerWhen output device is set to some random device different 118*bd1f8aebSAndroid Build Coastguard Workerof hardware Ethernet device, <command/pg3/ will crash kernel. 119*bd1f8aebSAndroid Build Coastguard Worker</para> 120*bd1f8aebSAndroid Build Coastguard Worker<para> 121*bd1f8aebSAndroid Build Coastguard WorkerDo not use it on VLAN, ethertap, VTUN and other devices, 122*bd1f8aebSAndroid Build Coastguard Workerwhich emulate Ethernet not being real Ethernet in fact. 123*bd1f8aebSAndroid Build Coastguard Worker</para> 124*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 125*bd1f8aebSAndroid Build Coastguard Worker 126*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>AUTHOR</title> 127*bd1f8aebSAndroid Build Coastguard Worker<para> 128*bd1f8aebSAndroid Build Coastguard Worker<command/pg3/ was written by <ulink url="mailto:[email protected]"> 129*bd1f8aebSAndroid Build Coastguard WorkerRobert Olsson <[email protected]></ulink>. 130*bd1f8aebSAndroid Build Coastguard Worker</para> 131*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 132*bd1f8aebSAndroid Build Coastguard Worker 133*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>SECURITY</title> 134*bd1f8aebSAndroid Build Coastguard Worker<para> 135*bd1f8aebSAndroid Build Coastguard WorkerThis can be used only by superuser. 136*bd1f8aebSAndroid Build Coastguard Worker</para> 137*bd1f8aebSAndroid Build Coastguard Worker<para> 138*bd1f8aebSAndroid Build Coastguard WorkerThis tool creates floods of packets which is unlikely to be handled 139*bd1f8aebSAndroid Build Coastguard Workereven by high-end machines. For example, it saturates gigabit link with 140*bd1f8aebSAndroid Build Coastguard Worker60 byte packets when used with Intel's e1000. In face of such stream 141*bd1f8aebSAndroid Build Coastguard Workerswitches, routers and end hosts may deadlock, crash, explode. 142*bd1f8aebSAndroid Build Coastguard WorkerUse only in test lab environment. 143*bd1f8aebSAndroid Build Coastguard Worker</para> 144*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 145*bd1f8aebSAndroid Build Coastguard Worker 146*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>AVAILABILITY</title> 147*bd1f8aebSAndroid Build Coastguard Worker<para> 148*bd1f8aebSAndroid Build Coastguard Worker<command/pg3/ is part of <filename/iputils/ package 149*bd1f8aebSAndroid Build Coastguard Workerand the latest versions are available in source form at 150*bd1f8aebSAndroid Build Coastguard Worker<ulink url="http://www.skbuff.net/iputils/iputils-current.tar.bz2"> 151*bd1f8aebSAndroid Build Coastguard Workerhttp://www.skbuff.net/iputils/iputils-current.tar.bz2</ulink>. 152*bd1f8aebSAndroid Build Coastguard Worker</para> 153*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 154*bd1f8aebSAndroid Build Coastguard Worker 155*bd1f8aebSAndroid Build Coastguard Worker<![IGNORE[ 156*bd1f8aebSAndroid Build Coastguard Worker<refsect1><title>COPYING</title> 157*bd1f8aebSAndroid Build Coastguard Worker<para> 158*bd1f8aebSAndroid Build Coastguard Worker<literallayout> 159*bd1f8aebSAndroid Build Coastguard WorkerThis documentation is free software; you can redistribute 160*bd1f8aebSAndroid Build Coastguard Workerit and/or modify it under the terms of the GNU General Public 161*bd1f8aebSAndroid Build Coastguard WorkerLicense Version 2. 162*bd1f8aebSAndroid Build Coastguard Worker 163*bd1f8aebSAndroid Build Coastguard WorkerThis program is distributed in the hope that it will be 164*bd1f8aebSAndroid Build Coastguard Workeruseful, but WITHOUT ANY WARRANTY; without even the implied 165*bd1f8aebSAndroid Build Coastguard Workerwarranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 166*bd1f8aebSAndroid Build Coastguard WorkerSee the GNU General Public License for more details. 167*bd1f8aebSAndroid Build Coastguard Worker 168*bd1f8aebSAndroid Build Coastguard WorkerFor more details see the file COPYING in the source 169*bd1f8aebSAndroid Build Coastguard Workerdistribution of Linux kernel of version 2.4. 170*bd1f8aebSAndroid Build Coastguard Worker</literallayout> 171*bd1f8aebSAndroid Build Coastguard Worker</para> 172*bd1f8aebSAndroid Build Coastguard Worker</refsect1> 173*bd1f8aebSAndroid Build Coastguard Worker]]> 174*bd1f8aebSAndroid Build Coastguard Worker 175*bd1f8aebSAndroid Build Coastguard Worker</refentry> 176