/* * Mausezahn - A fast versatile traffic generator * Copyright (C) 2008-2010 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 "mops.h" #include "cli.h" // Calculates the number of TCP transmissions based on SQNR range u_int32_t mops_tcp_complexity_sqnr (struct mops * mp) { u_int32_t a,b,t,result; a = mp->tcp_seq_start; b = mp->tcp_seq_stop; t = mp->tcp_seq_delta; if (!t) return 1; // delta set to zero means no range if (atcp_ack_start; b = mp->tcp_ack_stop; t = mp->tcp_ack_delta; if (!t) return 1; // delta set to zero means no range if (atcp_ctrl_CWR) ? "CRW" : "---", (mp->tcp_ctrl_ECE) ? "ECE" : "---", (mp->tcp_ctrl_URG) ? "URG" : "---", (mp->tcp_ctrl_ACK) ? "ACK" : "---", (mp->tcp_ctrl_PSH) ? "PSH" : "---", (mp->tcp_ctrl_RST) ? "RST" : "---", (mp->tcp_ctrl_SYN) ? "SYN" : "---", (mp->tcp_ctrl_FIN) ? "FIN" : "---"); return 0; } // Add TCP options // // TODO: currently all params are ignored and a default option combination is added. // int mops_tcp_add_option (struct mops* mp, int mss, int sack, int scale, u_int32_t tsval, u_int32_t tsecr) { u_int8_t tcp_default_options[] = { 0x02, 0x04, 0x05, 0xac, // MSS 0x04, 0x02, // SACK permitted 0x08, 0x0a, 0x19, 0x35, 0x90, 0xc3, 0x00, 0x00, 0x00, 0x00, // Timestamps 0x01, // NOP 0x03, 0x03, 0x05 // Window Scale 5 }; /* Kind: 8 Length: 10 bytes +-------+-------+---------------------+---------------------+ |Kind=8 | 10 | TS Value (TSval) |TS Echo Reply (TSecr)| +-------+-------+---------------------+---------------------+ 1 1 4 4 * * The Timestamps option carries two four-byte timestamp fields. The * Timestamp Value field (TSval) contains the current value of the * timestamp clock of the TCP sending the option. * * The Timestamp Echo Reply field (TSecr) is only valid if the ACK bit * is set in the TCP header; if it is valid, it echos a times- tamp * value that was sent by the remote TCP in the TSval field of a * Timestamps option. When TSecr is not valid, its value must be zero. * The TSecr value will generally be from the most recent Timestamp * option that was received; however, there are exceptions that are * explained below. * * A TCP may send the Timestamps option (TSopt) in an initial * segment (i.e., segment containing a SYN bit and no ACK bit), and * may send a TSopt in other segments only if it re- ceived a TSopt in * the initial segment for the connection. * */ memcpy((void*) mp->tcp_option, (void*) tcp_default_options, 20); mp->tcp_option_s = 20; mp->tcp_option_used = 1; return 0; } next.git/patch/?id=12b7bcb43e6ea834ab2f5dc52d971e379a0ca109'>patch) tree65218ee4792a1bae88feb75e615c5ec4e602c7a2 parent00bcf5cdd6c0e2e92ce3dd852ca68a3b779fa4ec (diff)parent41aad2a6d4fcdda8d73c9739daf7a9f3f49499d6 (diff)
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf updates from Ingo Molnar: "The main kernel side changes were: - uprobes enhancements (Masami Hiramatsu) - Uncore group events enhancements (David Carrillo-Cisneros) - x86 Intel: Add support for Skylake server uncore PMUs (Kan Liang) - x86 Intel: LBR cleanups and enhancements, for better branch annotation tracking (Peter Zijlstra) - x86 Intel: Add support for PTWRITE and power event tracing (Alexander Shishkin) - ... various fixes, cleanups and smaller enhancements. Lots of tooling changes - a couple of highlights: - Support event group view with hierarchy mode in 'perf top' and 'perf report' (Namhyung Kim) e.g.: $ perf record -e '{cycles,instructions}' make $ perf report --hierarchy --stdio ... # Overhead Command / Shared Object / Symbol # ...................... .................................. ... 25.74% 27.18%sh 19.96% 24.14%libc-2.24.so 9.55% 14.64%[.] __strcmp_sse2 1.54% 0.00%[.] __tfind 1.07% 1.13%[.] _int_malloc 0.95% 0.00%[.] __strchr_sse2 0.89% 1.39%[.] __tsearch 0.76% 0.00%[.] strlen - Add branch stack / basic block info to 'perf annotate --stdio', where for each branch, we add an asm comment after the instruction with information on how often it was taken and predicted. See example with color output at: http://vger.kernel.org/~acme/perf/annotate_basic_blocks.png (Peter Zijlstra) - Add support for using symbols in address filters with Intel PT and ARM CoreSight (hardware assisted tracing facilities) (Adrian Hunter, Mathieu Poirier) - Add support for interacting with Coresight PMU ETMs/PTMs, that are IP blocks to perform hardware assisted tracing on a ARM CPU core (Mathieu Poirier) - Support generating cross arch probes, i.e. if you specify a vmlinux file for different arch than the one in the host machine, $ perf probe --definition function_name args will generate the probe definition string needed to append to the target machine /sys/kernel/debug/tracing/kprobes_events file, using scripting (Masami Hiramatsu). - Allow configuring the default 'perf report -s' sort order in ~/.perfconfig, for instance, "sym,dso" may be more fitting for kernel developers. (Arnaldo Carvalho de Melo) - ... plus lots of other changes, refactorings, features and fixes" * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (149 commits) perf tests: Add dwarf unwind test for powerpc perf probe: Match linkage name with mangled name perf probe: Fix to cut off incompatible chars from group name perf probe: Skip if the function address is 0 perf probe: Ignore the error of finding inline instance perf intel-pt: Fix decoding when there are address filters perf intel-pt: Enable decoder to handle TIP.PGD with missing IP perf intel-pt: Read address filter from AUXTRACE_INFO event perf intel-pt: Record address filter in AUXTRACE_INFO event perf intel-pt: Add a helper function for processing AUXTRACE_INFO perf intel-pt: Fix missing error codes processing auxtrace_info perf intel-pt: Add support for recording the max non-turbo ratio perf intel-pt: Fix snapshot overlap detection decoder errors perf probe: Increase debug level of SDT debug messages perf record: Add support for using symbols in address filters perf symbols: Add dso__last_symbol() perf record: Fix error paths perf record: Rename label 'out_symbol_exit' perf script: Fix vanished idle symbols perf evsel: Add support for address filters ...