/* * Mausezahn - A fast versatile traffic generator * Copyright (C) 2008 Herbert Haas * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 2 as published by the * Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program; if not, see http://www.gnu.org/licenses/gpl-2.0.html * */ #include "mz.h" #include "cli.h" #include "mops.h" int transmit (struct cli_def *cli, const char *command, char *argv[], int argc) { int i; char argstr[10000]; argstr[0]='\0'; if (argc>1) { for (i=1; i10000) { cli_print(cli, "Argument list too long!\n"); return CLI_OK; } if (strncmp(argv[i], "?", 1)==0) { strcat(argstr, ",help"); } else strncat(argstr, argv[i], 5000); // TODO: This is ugly! } // TEST: cli_print(cli, "argc=%i, got '%s'\n", argc, argstr); } if (argv[0] == NULL) // raw hex string given { mode = BYTE_STREAM; } else if (strcmp(argv[0],"arp")==0) { mode = ARP; } else if (strcmp(argv[0],"bpdu")==0) { mode = BPDU; } else if (strcmp(argv[0],"ip")==0) { mode = IP; } else if (strcmp(argv[0],"udp")==0) { mode = UDP; } else if (strcmp(argv[0],"icmp")==0) { mode = ICMP; } else if (strcmp(argv[0],"tcp")==0) { mode = TCP; } else if (strcmp(argv[0],"dns")==0) { mode = DNS; } else if (strcmp(argv[0],"cdp")==0) { mode = CDP; } else if (strcmp(argv[0],"syslog")==0) { mode = SYSLOG; } else if (strcmp(argv[0],"lldp")==0) { mode = LLDP; tx.packet_mode=0; // create whole frame by ourself } else if (strcmp(argv[0],"rtp")==0) { mode = RTP; } else if (strcmp(argv[0],"raw")==0) { strncpy(tx.arg_string, argstr, MAX_PAYLOAD_SIZE); send_eth(); } else if (strcmp(argv[0],"?")==0) { cli_print(cli, "| The following packet types are currently implemented:\n" "|\n" "| arp ... sends ARP packets\n" "| bpdu ... sends BPDU packets (STP)\n" "| cdp ... sends CDP messages\n" "| ip ... sends IPv4 packets\n" "| udp ... sends UDP datagrams\n" "| tcp ... sends TCP segments\n" "| icmp ... sends ICMP messages\n" "| dns ... sends DNS messages\n" "| rtp ... sends RTP datagrams\n" "| syslog ... sends Syslog messages\n" "| lldp ... sends LLDP datagrams\n" "|\n" "| raw ... raw layer 2 mode (specify whole frame in hex)\n" "\n" ); return CLI_OK; } else { cli_print(cli, "Unknown packet type '%s'\r", argv[0]); } if (mode) { strncpy(tx.arg_string, argstr, MAX_PAYLOAD_SIZE); tx_switch(cli); } return CLI_OK; } tion>mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-12-12 21:58:13 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2016-12-12 21:58:13 -0800
commite7aa8c2eb11ba69b1b69099c3c7bd6be3087b0ba (patch)
treef63906f41699c8e38af9d12b063e2ceab0286ef2 /net/packet
parente34bac726d27056081d0250c0e173e4b155aa340 (diff)
parent868c97a846a73e937d835b09b8c885a69df50ec8 (diff)
Merge tag 'docs-4.10' of git://git.lwn.net/linuxHEADmaster
Pull documentation update from Jonathan Corbet: "These are the documentation changes for 4.10. It's another busy cycle for the docs tree, as the sphinx conversion continues. Highlights include: - Further work on PDF output, which remains a bit of a pain but should be more solid now. - Five more DocBook template files converted to Sphinx. Only 27 to go... Lots of plain-text files have also been converted and integrated. - Images in binary formats have been replaced with more source-friendly versions. - Various bits of organizational work, including the renaming of various files discussed at the kernel summit. - New documentation for the device_link mechanism. ... and, of course, lots of typo fixes and small updates" * tag 'docs-4.10' of git://git.lwn.net/linux: (193 commits) dma-buf: Extract dma-buf.rst Update Documentation/00-INDEX docs: 00-INDEX: document directories/files with no docs docs: 00-INDEX: remove non-existing entries docs: 00-INDEX: add missing entries for documentation files/dirs docs: 00-INDEX: consolidate process/ and admin-guide/ description scripts: add a script to check if Documentation/00-INDEX is sane Docs: change sh -> awk in REPORTING-BUGS Documentation/core-api/device_link: Add initial documentation core-api: remove an unexpected unident ppc/idle: Add documentation for powersave=off Doc: Correct typo, "Introdution" => "Introduction" Documentation/atomic_ops.txt: convert to ReST markup Documentation/local_ops.txt: convert to ReST markup Documentation/assoc_array.txt: convert to ReST markup docs-rst: parse-headers.pl: cleanup the documentation docs-rst: fix media cleandocs target docs-rst: media/Makefile: reorganize the rules docs-rst: media: build SVG from graphviz files docs-rst: replace bayer.png by a SVG image ...
Diffstat (limited to 'net/packet')