platform/upstream/bcc.git
9 years agoMove (some) frontend specific logic to the respective directories
Brenden Blanco [Mon, 3 Aug 2015 22:40:07 +0000 (15:40 -0700)]
Move (some) frontend specific logic to the respective directories

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMove frontends into individual directories
Brenden Blanco [Mon, 3 Aug 2015 17:59:20 +0000 (10:59 -0700)]
Move frontends into individual directories

Other commits to follow with cleanup of the code itself.

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #105 from iovisor/bblanco_dev
4ast [Sun, 2 Aug 2015 23:20:43 +0000 (16:20 -0700)]
Merge pull request #105 from iovisor/bblanco_dev

Enable memory cleanup in Clang, otherwise 500KB lost per compile

9 years agoEnable memory cleanup in Clang, otherwise 500KB lost per compile
Brenden Blanco [Fri, 31 Jul 2015 22:41:31 +0000 (15:41 -0700)]
Enable memory cleanup in Clang, otherwise 500KB lost per compile

Since it is meant for the command line, clang ships with no memory
cleanup. We intend to run as a long-lived process, so enable that
cleanup. Valgrind now reports only trivial (and non-increasing over
time) memory leaks.

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #102 from iovisor/bblanco_dev
yonghong-song [Fri, 31 Jul 2015 22:57:28 +0000 (15:57 -0700)]
Merge pull request #102 from iovisor/bblanco_dev

Add version check for functions only in >= 4.3 kernel

9 years agoMerge pull request #104 from iovisor/bcc_export
yonghong-song [Fri, 31 Jul 2015 21:59:05 +0000 (14:59 -0700)]
Merge pull request #104 from iovisor/bcc_export

Add pkg-config support and include compat/linux* in packaging

9 years agoAdd pkg-config support and include compat/linux* in packaging
Brenden Blanco [Fri, 31 Jul 2015 20:04:16 +0000 (13:04 -0700)]
Add pkg-config support and include compat/linux* in packaging

Different kernel header versions has been a continuing source of pain.
Though I don't prefer this approach, it seems the most reliable way to
get a build (for the time being) is to bundle the linux/bpf*.h in a
compat directory in the target install location.

To get visibility into that compat directory from another library, one
will need to rely on pkg-config --cflags argument to pull in that compat
directory.

Future work will be to avoid bundling the compat directory if the
version of linux-libc-dev is high enough, or if the presence of the
result of 'make headers_install' from the running kernel can be
detected.

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoAdd version check for functions only in >= 4.3 kernel
Brenden Blanco [Fri, 31 Jul 2015 16:53:00 +0000 (09:53 -0700)]
Add version check for functions only in >= 4.3 kernel

Addresses issue #100

Note to developers working off of net-next: you will need to locally
disable this patch to make use of the new features.

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #99 from iovisor/weichunc_dev
4ast [Fri, 31 Jul 2015 02:14:37 +0000 (19:14 -0700)]
Merge pull request #99 from iovisor/weichunc_dev

Assign ip address to br

9 years agoAssign ip address to br
Wei-Chun Chao [Fri, 31 Jul 2015 02:03:49 +0000 (19:03 -0700)]
Assign ip address to br

Signed-off-by: Wei-Chun Chao <weichunc@plumgrid.com>
9 years agoMerge pull request #98 from iovisor/ast_dev
Brenden Blanco [Thu, 30 Jul 2015 22:48:19 +0000 (15:48 -0700)]
Merge pull request #98 from iovisor/ast_dev

fix incorrect DataLayout

9 years agofix incorrect DataLayout
Alexei Starovoitov [Thu, 30 Jul 2015 22:43:57 +0000 (15:43 -0700)]
fix incorrect DataLayout

Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
9 years agoMerge pull request #97 from iovisor/ast_dev
Brenden Blanco [Thu, 30 Jul 2015 21:30:24 +0000 (14:30 -0700)]
Merge pull request #97 from iovisor/ast_dev

update tunnel_key prototypes

9 years agoupdate tunnel_key prototypes
Alexei Starovoitov [Thu, 30 Jul 2015 21:14:09 +0000 (14:14 -0700)]
update tunnel_key prototypes

Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
9 years agoMerge pull request #96 from iovisor/bblanco_dev
4ast [Thu, 30 Jul 2015 16:37:08 +0000 (09:37 -0700)]
Merge pull request #96 from iovisor/bblanco_dev

Add option for custom log string to bpf_prog_load

9 years agoAdd option for custom log string to bpf_prog_load
Brenden Blanco [Wed, 29 Jul 2015 22:47:51 +0000 (15:47 -0700)]
Add option for custom log string to bpf_prog_load

bpf_prog_load was unconditionally printing the error from the kernel to
stderr. If libbpf is used in a library, that library may want to collect
the error to a custom location (a logfile). So, provide an option to
store the string elsewhere than stderr.

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #95 from iovisor/yhs_dev
Brenden Blanco [Tue, 28 Jul 2015 23:14:55 +0000 (16:14 -0700)]
Merge pull request #95 from iovisor/yhs_dev

import "input" from "builtins" for python v2/v3 compatibility

9 years agoimport "input" from "builtins" for python v2/v3 compatibility
Yonghong Song [Tue, 28 Jul 2015 23:11:08 +0000 (16:11 -0700)]
import "input" from "builtins" for python v2/v3 compatibility

Signed-off-by: Yonghong Song <yhs@plumgrid.com>
9 years agoMerge pull request #94 from iovisor/weichunc_dev
Brenden Blanco [Tue, 28 Jul 2015 20:49:38 +0000 (13:49 -0700)]
Merge pull request #94 from iovisor/weichunc_dev

full mesh vxlan example without multicast

9 years agofull mesh vxlan example without multicast
Wei-Chun Chao [Tue, 28 Jul 2015 20:44:20 +0000 (13:44 -0700)]
full mesh vxlan example without multicast

Run 'sudo python ./main.py mesh'

Signed-off-by: Wei-Chun Chao <weichunc@plumgrid.com>
9 years agoMerge pull request #93 from iovisor/dist_bridge
4ast [Tue, 28 Jul 2015 20:20:10 +0000 (13:20 -0700)]
Merge pull request #93 from iovisor/dist_bridge

Dist bridge

9 years agoAdd distributed bridge example, using vxlan mcast
Brenden Blanco [Tue, 28 Jul 2015 17:47:33 +0000 (10:47 -0700)]
Add distributed bridge example, using vxlan mcast

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoAdd bpf_tunnel_info and helpers
Brenden Blanco [Tue, 28 Jul 2015 17:45:52 +0000 (10:45 -0700)]
Add bpf_tunnel_info and helpers

* Update compat.h
* Move bpf_clone_redirect to signed int, matching the implementation.
  This allows error codes to be compared to < 0.

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #92 from iovisor/bblanco_dev
4ast [Tue, 28 Jul 2015 20:17:30 +0000 (13:17 -0700)]
Merge pull request #92 from iovisor/bblanco_dev

Add index-based function references to c api

9 years agoInclude libbpf.h in some places, cleanup constants
Brenden Blanco [Tue, 28 Jul 2015 19:29:36 +0000 (12:29 -0700)]
Include libbpf.h in some places, cleanup constants

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoAdd #define for ".bpf.fn."
Brenden Blanco [Tue, 28 Jul 2015 18:57:32 +0000 (11:57 -0700)]
Add #define for ".bpf.fn."

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoAdd index-based function references to c api
Brenden Blanco [Tue, 28 Jul 2015 03:29:25 +0000 (20:29 -0700)]
Add index-based function references to c api

* Add the index based API so that an external api (bcc-fuse) can iterate
  through the maps and functions that were compiled in this program.
* Add a more unique section prefix to disambiguate exportable functions.

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #91 from iovisor/bcc_export
4ast [Mon, 27 Jul 2015 16:14:16 +0000 (09:14 -0700)]
Merge pull request #91 from iovisor/bcc_export

Include bcc headers in /usr/include

9 years agoKill wrapper .h, add #include to libbpf.h
Brenden Blanco [Sun, 26 Jul 2015 00:17:10 +0000 (17:17 -0700)]
Kill wrapper .h, add #include to libbpf.h

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoInclude bcc headers in /usr/include
Brenden Blanco [Thu, 23 Jul 2015 20:19:13 +0000 (13:19 -0700)]
Include bcc headers in /usr/include

* Add wrapper bcc.h to include dependencies
* Add text bpf_module_create_* to list of exports

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #90 from iovisor/yhs_dev
Brenden Blanco [Wed, 22 Jul 2015 18:20:09 +0000 (11:20 -0700)]
Merge pull request #90 from iovisor/yhs_dev

simply vlan_learning example with newer vlan_push/pop helpers

9 years agoupdate ifindex/vlan info unconditionally in the map in vlan_learning example
Yonghong Song [Wed, 22 Jul 2015 18:04:23 +0000 (11:04 -0700)]
update ifindex/vlan info unconditionally in the map in vlan_learning example

Signed-off-by: Yonghong Song <yhs@plumgrid.com>
9 years agosimply vlan_learning example with newer vlan_push/pop helpers
Yonghong Song [Wed, 22 Jul 2015 17:17:39 +0000 (10:17 -0700)]
simply vlan_learning example with newer vlan_push/pop helpers

Signed-off-by: Yonghong Song <yhs@plumgrid.com>
9 years agoMerge pull request #89 from iovisor/quick_fix
4ast [Tue, 21 Jul 2015 21:07:19 +0000 (14:07 -0700)]
Merge pull request #89 from iovisor/quick_fix

Cache function handles in BPF class

9 years agoCache function handles in BPF class
Brenden Blanco [Tue, 21 Jul 2015 18:45:52 +0000 (11:45 -0700)]
Cache function handles in BPF class

* This means repeated calls to get_func() are now allowed

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #87 from iovisor/yhs_dev
Brenden Blanco [Sat, 18 Jul 2015 04:24:02 +0000 (21:24 -0700)]
Merge pull request #87 from iovisor/yhs_dev

use running linux version number for feature availability checking

9 years agouse better error reporting interface
Yonghong Song [Fri, 17 Jul 2015 05:18:33 +0000 (22:18 -0700)]
use better error reporting interface

Signed-off-by: Yonghong Song <yhs@plumgrid.com>
9 years agoadd error checking/reporting in case that maps/prog is not supported
Yonghong Song [Fri, 17 Jul 2015 04:30:41 +0000 (21:30 -0700)]
add error checking/reporting in case that maps/prog is not supported

Signed-off-by: Yonghong Song <yhs@plumgrid.com>
9 years agouse running linux version number for feature availability checking
Yonghong Song [Fri, 17 Jul 2015 03:20:22 +0000 (20:20 -0700)]
use running linux version number for feature availability checking

Signed-off-by: Yonghong Song <yhs@plumgrid.com>
9 years agoMerge pull request #85 from iovisor/bblanco_dev
yonghong-song [Tue, 14 Jul 2015 06:10:25 +0000 (23:10 -0700)]
Merge pull request #85 from iovisor/bblanco_dev

Change to simulator arguments for readability

9 years agoRestore disable_ipv6 of out_ifc in simulation.py
Brenden Blanco [Tue, 14 Jul 2015 05:44:16 +0000 (22:44 -0700)]
Restore disable_ipv6 of out_ifc in simulation.py

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoChange to simulator arguments for readability
Brenden Blanco [Tue, 14 Jul 2015 04:10:39 +0000 (21:10 -0700)]
Change to simulator arguments for readability

* Let one argument be optional
* Disable ipv6 for whole namespace once
* Python 2/3 compatibility fix

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #84 from iovisor/bblanco_dev
4ast [Tue, 14 Jul 2015 04:07:39 +0000 (21:07 -0700)]
Merge pull request #84 from iovisor/bblanco_dev

Bugfix for simulation.py

9 years agoBugfix for simulation.py
Brenden Blanco [Tue, 14 Jul 2015 03:57:34 +0000 (20:57 -0700)]
Bugfix for simulation.py

* Ignore exceptions and continue cleanup of dead children
* Set loopback interface up

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #83 from iovisor/yhs_dev
Brenden Blanco [Sat, 11 Jul 2015 20:01:48 +0000 (13:01 -0700)]
Merge pull request #83 from iovisor/yhs_dev

Yhs dev

9 years agodo not demonize iperf server and netserver
Yonghong Song [Sat, 11 Jul 2015 16:44:05 +0000 (09:44 -0700)]
do not demonize iperf server and netserver

  o This way, process kill happens correctly.

Signed-off-by: Yonghong Song <yhs@plumgrid.com>
9 years agoexplicit kill deamon "iperf" and "netserver" in namespace
Yonghong Song [Sat, 11 Jul 2015 07:18:50 +0000 (00:18 -0700)]
explicit kill deamon "iperf" and "netserver" in namespace

   o sometimes, NSPipe kill may not really kill the process
   o with the explicit kill, remove the cleanup for outer veth's
     associated with namespace

Signed-off-by: Yonghong Song <yhs@plumgrid.com>
9 years agoadd required parameter ifc_name for additional ifc adding to ns
Yonghong Song [Sat, 11 Jul 2015 05:58:59 +0000 (22:58 -0700)]
add required parameter ifc_name for additional ifc adding to ns

    o make some long lines in python codes shorter
    o use python style unused variable name "_"

Signed-off-by: Yonghong Song <yhs@plumgrid.com>
9 years agorewrite test_brb/test_brb2 python binding with pyroute2
Yonghong Song [Fri, 10 Jul 2015 17:12:47 +0000 (10:12 -0700)]
rewrite test_brb/test_brb2 python binding with pyroute2

Signed-off-by: Yonghong Song <yhs@plumgrid.com>
9 years agofix and improve test brb/brb2
Yonghong Song [Mon, 6 Jul 2015 16:16:25 +0000 (09:16 -0700)]
fix and improve test brb/brb2

   o disable ipv6 for newly-created net devices to avoid unaccountable pkt counting
   o explicitly enable ip_forward in router namespace
   o proper cleanup in case of validation failure
   o in test_brb, use different tc_index to differentiate the packet source (pem or router_ns)
   o change bpf program return value to 1 so that the packet will be dropped instead of being
     passed up to the stack

Signed-off-by: Yonghong Song <yhs@plumgrid.com>
9 years agoMerge pull request #82 from iovisor/bblanco_dev
4ast [Wed, 8 Jul 2015 00:48:14 +0000 (17:48 -0700)]
Merge pull request #82 from iovisor/bblanco_dev

Update README.md examples and INSTALL.md

9 years agoUpdate README.md examples and INSTALL.md
Brenden Blanco [Wed, 8 Jul 2015 00:38:30 +0000 (17:38 -0700)]
Update README.md examples and INSTALL.md

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #81 from iovisor/bblanco_dev
4ast [Tue, 7 Jul 2015 21:08:21 +0000 (14:08 -0700)]
Merge pull request #81 from iovisor/bblanco_dev

Update README with install info, few cleanups

9 years agoFix newlines in README
Brenden Blanco [Tue, 7 Jul 2015 20:10:21 +0000 (13:10 -0700)]
Fix newlines in README

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoUpdate README with install info, few cleanups
Brenden Blanco [Tue, 7 Jul 2015 20:05:22 +0000 (13:05 -0700)]
Update README with install info, few cleanups

* Add some examples to package
* Fix bpf_trace_printk bug not supporting 0 format args
* Make src_file arg loading a little bit more intelligent in BPF()
* Update README with Hello, World step-by-step

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #80 from iovisor/bblanco_dev
4ast [Tue, 7 Jul 2015 16:47:10 +0000 (09:47 -0700)]
Merge pull request #80 from iovisor/bblanco_dev

Add multiple build support styles

9 years agoAdd multiple build support styles
Brenden Blanco [Tue, 7 Jul 2015 06:41:23 +0000 (23:41 -0700)]
Add multiple build support styles

* Add RPM and DEB packaging targets (using CPack from CMake) to build
  binary packages for Fedora and Ubuntu targets.
* Add Docker build scripts for each of the above that run the build in
  the right environment (assuming docker is available).
 - In Ubuntu, build against the LLVM 3.7 nightly snapshots
 - In Fedora, build against LLVM 3.7 from git (takes longer)
* Depending on packages installed on the build machine, it may be
  possible to cross-package for other targets without invoking Docker.
* Re-introduce src/cc/compat directory to keep the build stable for the
  time being. Similarly, it was necessary to #define some ugly constants
  that should eventually show up in libc.
* Add a few simple version checks to allow a partially working (really
  tracing only) libbcc in 4.1 kernels.

TODO (followup commit): Re-work the READMEs

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoWIP: rpm packaging
Brenden Blanco [Fri, 3 Jul 2015 23:10:29 +0000 (16:10 -0700)]
WIP: rpm packaging

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoUpdate libvirt script to use fedora22
Brenden Blanco [Fri, 3 Jul 2015 00:48:41 +0000 (17:48 -0700)]
Update libvirt script to use fedora22

* Install into lib64 instead of lib
* Pull 4.2 kernel from rawhide instead of building it

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #78 from iovisor/bblanco_dev
4ast [Thu, 2 Jul 2015 17:34:51 +0000 (10:34 -0700)]
Merge pull request #78 from iovisor/bblanco_dev

Drop PROTO macro syntax and introduce alternative

9 years agoUpdate missing monitor.c to use cursor_advance
Brenden Blanco [Thu, 2 Jul 2015 17:31:32 +0000 (10:31 -0700)]
Update missing monitor.c to use cursor_advance

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoDrop PROTO macro syntax and introduce alternative
Brenden Blanco [Thu, 2 Jul 2015 17:02:04 +0000 (10:02 -0700)]
Drop PROTO macro syntax and introduce alternative

* Feedback given by some external users was that the PROTO syntax was
  opaque and unintuitive. As such, drop that macro and introduce an
  alternative syntax.
* Convert all to use 'cursor_advance' macro API

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #77 from iovisor/bblanco_dev
4ast [Thu, 2 Jul 2015 01:42:25 +0000 (18:42 -0700)]
Merge pull request #77 from iovisor/bblanco_dev

Automate bpf_probe_read

9 years agoAutomate bpf_probe_read
Brenden Blanco [Wed, 1 Jul 2015 22:23:18 +0000 (15:23 -0700)]
Automate bpf_probe_read

* Rewrite accesses to args beyond the first to use bpf_probe_read
 - Support struct access
 - Support POD type accesses

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #76 from iovisor/bblanco_dev
4ast [Tue, 30 Jun 2015 18:12:35 +0000 (11:12 -0700)]
Merge pull request #76 from iovisor/bblanco_dev

Clean some brittle parts of clang rewriter

9 years agoClean some brittle parts of clang rewriter
Brenden Blanco [Mon, 29 Jun 2015 18:09:00 +0000 (11:09 -0700)]
Clean some brittle parts of clang rewriter

* Rewrites of text inside of a macro (even if just the arguments) is not
  support by clang. Convert macro definitions to pure rewrites instead.
* For packet field access, no longer require 'skb' named
  argument...instead, learn it from the function parameter list.
* Add a complex test case...supposedly this should have failed issue
  #10, but the C version does not exhibit the same failure as the B
  version.

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #75 from iovisor/bblanco_dev
4ast [Sun, 28 Jun 2015 08:26:36 +0000 (01:26 -0700)]
Merge pull request #75 from iovisor/bblanco_dev

Make tunnel example more user friendly

9 years agoMake tunnel example more user friendly
Brenden Blanco [Thu, 25 Jun 2015 01:31:14 +0000 (18:31 -0700)]
Make tunnel example more user friendly

* Move files to separate directory
* Add README
* Run http server automatically from main.py
* Add setup.sh script to automate dependencies

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #74 from iovisor/yhs_dev
Brenden Blanco [Tue, 23 Jun 2015 22:14:08 +0000 (15:14 -0700)]
Merge pull request #74 from iovisor/yhs_dev

use new get_table interface to avoid specify key/leaf type in py code

9 years agoMerge pull request #73 from iovisor/bblanco_dev
4ast [Tue, 23 Jun 2015 22:04:21 +0000 (15:04 -0700)]
Merge pull request #73 from iovisor/bblanco_dev

Add vxlan tunnel monitoring example

9 years agouse new get_table interface to avoid specify key/leaf type in py code
Yonghong Song [Tue, 23 Jun 2015 21:10:01 +0000 (14:10 -0700)]
use new get_table interface to avoid specify key/leaf type in py code

Signed-off-by: Yonghong Song <yhs@plumgrid.com>
9 years agoMerge pull request #72 from iovisor/yhs_dev
Brenden Blanco [Tue, 23 Jun 2015 19:42:24 +0000 (12:42 -0700)]
Merge pull request #72 from iovisor/yhs_dev

use "raw_input" instead "input" to avoid python 2.7 exception

9 years agouse builtins.input for backward/forward compability
Yonghong Song [Tue, 23 Jun 2015 19:36:56 +0000 (12:36 -0700)]
use builtins.input for backward/forward compability

Signed-off-by: Yonghong Song <yhs@plumgrid.com>
9 years agouse "raw_input" instead "input" to avoid python 2.7 exception
Yonghong Song [Tue, 23 Jun 2015 19:25:24 +0000 (12:25 -0700)]
use "raw_input" instead "input" to avoid python 2.7 exception

Signed-off-by: Yonghong Song <yhs@plumgrid.com>
9 years agoAdd vxlan tunnel monitoring example
Brenden Blanco [Tue, 23 Jun 2015 13:53:47 +0000 (06:53 -0700)]
Add vxlan tunnel monitoring example

* Example simulates many vxlan hosts ("hypervisors") with multiple clients per
  host. Some clients will be sending traffic to another client on a different
  host.
* Add vxlan header to proto.h
* Remove unused import line in vlan_learning
* NOTE: to display this demo, it is required to checkout the chord graph demo
  from https://github.com/drzaeus77/chord-transitions.git.
  Follow the instructions in that repo to get a simple http server up and
  running.

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #71 from iovisor/bblanco_dev
4ast [Fri, 19 Jun 2015 16:11:47 +0000 (09:11 -0700)]
Merge pull request #71 from iovisor/bblanco_dev

Rework vlan example to be 1:1, no mac learning

9 years agoMerge pull request #70 from iovisor/ast_dev
Brenden Blanco [Thu, 18 Jun 2015 22:07:04 +0000 (15:07 -0700)]
Merge pull request #70 from iovisor/ast_dev

example that shows usages of maps, probe_read, get_current_pid helpers

9 years agoexample that shows usages of maps, probe_read, get_current_pid helpers
Alexei Starovoitov [Thu, 18 Jun 2015 21:41:17 +0000 (14:41 -0700)]
example that shows usages of maps, probe_read, get_current_pid helpers

$ ./task_switch.py

task_switch[ 2379->    0]=4
task_switch[ 3914->    0]=2
task_switch[ 3133->    0]=5
task_switch[10903->    0]=100  <-- 100 times python process switched into idle
task_switch[  116->    0]=1
task_switch[    0->   14]=1
task_switch[10803->    0]=1
task_switch[22292->    0]=1
task_switch[    0->22292]=1
task_switch[    0->10803]=1
task_switch[   30->    0]=1
task_switch[    0->10903]=100  <-- 100 times back into python

Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
9 years agoRework vlan example to be 1:1, no mac learning
Brenden Blanco [Fri, 19 Jun 2015 00:53:31 +0000 (17:53 -0700)]
Rework vlan example to be 1:1, no mac learning

* Use ifindex instead of src_mac to program egress table
* Remove the static arp programming
* Get the example to work in python2

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #69 from iovisor/bblanco_dev
4ast [Thu, 18 Jun 2015 07:52:39 +0000 (00:52 -0700)]
Merge pull request #69 from iovisor/bblanco_dev

Move shared example code into simulation.py

9 years agoMove shared example code into simulation.py
Brenden Blanco [Thu, 18 Jun 2015 07:28:47 +0000 (00:28 -0700)]
Move shared example code into simulation.py

* Create a class for the examples to share, helps with IPDB cleanup and
  namespace creation.

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #68 from iovisor/bblanco_dev
4ast [Thu, 18 Jun 2015 01:29:54 +0000 (18:29 -0700)]
Merge pull request #68 from iovisor/bblanco_dev

Remove update() call from vlan example

9 years agoRemove update() call from vlan example
Brenden Blanco [Thu, 18 Jun 2015 00:30:13 +0000 (17:30 -0700)]
Remove update() call from vlan example

* Breakage from previous commit

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #67 from iovisor/bblanco_dev
4ast [Thu, 18 Jun 2015 00:28:32 +0000 (17:28 -0700)]
Merge pull request #67 from iovisor/bblanco_dev

Make python table accesses more pythonic

9 years agoMake python table accesses more pythonic
Brenden Blanco [Thu, 18 Jun 2015 00:22:11 +0000 (17:22 -0700)]
Make python table accesses more pythonic

* Add [] support in BPF.Table class
* Remove uses of lookup/update
* Add del support

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #65 from iovisor/ast_dev
Brenden Blanco [Wed, 17 Jun 2015 20:06:22 +0000 (13:06 -0700)]
Merge pull request #65 from iovisor/ast_dev

add get_current_pid/tgid/uid/gid/comm helpers

9 years agoupdate FAQ for past.builtins
Alexei Starovoitov [Wed, 17 Jun 2015 19:55:42 +0000 (12:55 -0700)]
update FAQ for past.builtins

Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
9 years agoadd get_current_pid/tgid/uid/gid/comm helpers
Alexei Starovoitov [Wed, 17 Jun 2015 19:45:49 +0000 (12:45 -0700)]
add get_current_pid/tgid/uid/gid/comm helpers

Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
9 years agoMerge pull request #64 from iovisor/bblanco_dev
4ast [Wed, 17 Jun 2015 19:29:08 +0000 (12:29 -0700)]
Merge pull request #64 from iovisor/bblanco_dev

Automatically compute sizeof in bpf_trace_printk

9 years agoAutomatically compute sizeof in bpf_trace_printk
Brenden Blanco [Wed, 17 Jun 2015 19:07:27 +0000 (12:07 -0700)]
Automatically compute sizeof in bpf_trace_printk

* Addresses issue #61

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #63 from iovisor/bblanco_dev
4ast [Wed, 17 Jun 2015 00:35:13 +0000 (17:35 -0700)]
Merge pull request #63 from iovisor/bblanco_dev

Add example for BPF+tc rate limiting

9 years agoUse update() instead of init() in neighbor example
Brenden Blanco [Wed, 17 Jun 2015 00:26:46 +0000 (17:26 -0700)]
Use update() instead of init() in neighbor example

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoUse netperf for testing, update comments
Brenden Blanco [Wed, 17 Jun 2015 00:18:58 +0000 (17:18 -0700)]
Use netperf for testing, update comments

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoAdd example for BPF+tc rate limiting
Brenden Blanco [Tue, 16 Jun 2015 20:50:16 +0000 (13:50 -0700)]
Add example for BPF+tc rate limiting

* Adding an example to address #59, simulation of bandwidth sharing

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #62 from iovisor/bblanco_dev
4ast [Tue, 16 Jun 2015 18:31:30 +0000 (11:31 -0700)]
Merge pull request #62 from iovisor/bblanco_dev

Compatibility fixes and pyroute2 examples

9 years agoRemove simple_ipdb example as redundant
Brenden Blanco [Tue, 16 Jun 2015 18:00:45 +0000 (11:00 -0700)]
Remove simple_ipdb example as redundant

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoAdd simple examples for using pyroute2+tc
Brenden Blanco [Tue, 16 Jun 2015 07:21:57 +0000 (00:21 -0700)]
Add simple examples for using pyroute2+tc

* simple_tc shows using just IPRoute
* simple_ipdb shows using IPDB as well, slightly more complicated
 - If the exception handling is done as shown, hangs may result
 - If only IPRoute is used, this shouldn't be the case

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoFix python2.7 compatibility breakage
Brenden Blanco [Tue, 16 Jun 2015 05:57:41 +0000 (22:57 -0700)]
Fix python2.7 compatibility breakage

* Add requirement on 'future' package to ensure backwards compatibility
 - If working in dev environment, do 'sudo pip install future'

Note: end-users installing a compiled package with pip should have
future installed as a dependency automatically.

Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
9 years agoMerge pull request #58 from iovisor/yhs_dev
Brenden Blanco [Fri, 12 Jun 2015 23:02:34 +0000 (16:02 -0700)]
Merge pull request #58 from iovisor/yhs_dev

reduce test time for test_brb and test_brb2

9 years agoreduce test time for test_brb and test_brb2
Yonghong Song [Fri, 12 Jun 2015 22:26:49 +0000 (15:26 -0700)]
reduce test time for test_brb and test_brb2

Signed-off-by: Yonghong Song <yhs@plumgrid.com>