/* * 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; } >
diff options
context:
space:
mode:
authorJohan Hovold <johan@hovoldconsulting.com>2016-07-21 14:24:11 +0200
committerGreg Kroah-Hartman <gregkh@google.com>2016-07-21 16:36:48 -0700
commit2358024b67fccc07b95c5d8e637927acdb8e30fa (patch)
tree4374a0c81ebda706e2e2e0f9e3a2042d7042a9c9 /drivers/staging
parent350e3ac2ceb696435efbbe688e6e912801a4b8c4 (diff)
greybus: control: suppress bundle_activate() for bootrom
We always knew backward compatibility with the ES3 bootrom, which was finalised about a year ago, would be a pain. Here we go again. The bootrom does not support control requests added after it was burnt into ROM for obvious reasons. This means that we need to suppress sending the new bundle_activate() operation to any interface executing the legacy bootrom. Do so by adding a new NO_PM interface quirk (we can use the control-protocol version for this later once we bump it). Note that the interface-disable path (e.g. for power down) is already handled by the FORCED_DISABLE quirk, and that the suspend/resume paths are currently avoided by making sure that the bootrom bundle never suspends. Signed-off-by: Johan Hovold <johan@hovoldconsulting.com> Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org> Acked-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Tested-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging')