Skip to content

Commit

Permalink
http_filter renamed, README fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
mbertrone committed Feb 18, 2016
1 parent 13e74d3 commit 46974b1
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 12 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ Tools:
Examples:

- examples/networking/[distributed_bridge/](examples/networking/distributed_bridge): Distributed bridge example.
- examples/networking/[http_filter/](examples/networking/http_filter): Simple HTTP filter example.
- examples/networking/[simple_tc.py](examples/networking/simple_tc.py): Simple traffic control example.
- examples/networking/[simulation.py](examples/networking/simulation.py): Simulation helper.
- examples/networking/neighbor_sharing/[tc_neighbor_sharing.py](examples/networking/neighbor_sharing/tc_neighbor_sharing.py) examples/networking/neighbor_sharing/[tc_neighbor_sharing.c](examples/networking/neighbor_sharing/tc_neighbor_sharing.c): Per-IP classification and rate limiting.
Expand Down
16 changes: 8 additions & 8 deletions examples/networking/http_filter/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#Simple HTTP Filter: Project purpose
#HTTP Filter

Write an eBPF application that parses HTTP packets and extracts (and prints on screen) the URL contained in the GET/POST request.
eBPF application that parses HTTP packets and extracts (and prints on screen) the URL contained in the GET/POST request.

[eBPF HTTP Filter - Short Presentation](https://github.com/iovisor/bpf-docs/blob/master/ebpf_http_filter.pdf)

#Usage Example

```Shell
$ sudo python http-parse-v2.py
$ sudo python http-parse-complete.py
GET /pipermail/iovisor-dev/ HTTP/1.1
HTTP/1.1 200 OK
GET /favicon.ico HTTP/1.1
Expand All @@ -27,14 +27,14 @@ Matching packets are forwarded to user space, others dropped by the filter.<br /
<br />
Python script reads filtered raw packets from the socket, if necessary reassembles packets belonging to the same session, and prints on stdout the first line of the HTTP GET/POST request. <br />

#v1 vs v2
#simple vs complete

First version is the simple one: if the url is too long (splitted in more than one packet) is truncated. <br />
Second version is quite more complex: if necessary reassembles packets belonging to the same session and prints the complete url.
simple version: if the url is too long (splitted in more than one packet) is truncated. <br />
complete version: if necessary reassembles packets belonging to the same session and prints the complete url.

#To run:

```Shell
$ sudo python http-parse.py
$ sudo python http-parse-v2.py
$ sudo python http-parse-simple.py
$ sudo python http-parse-complete.py
```
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ def cleanup():
#-----FUNCTIONS-END-------------------------#


# initialize BPF - load source code from http-parse.c
bpf = BPF(src_file = "http-parse-v2.c",debug = 0)
# initialize BPF - load source code from http-parse-complete.c
bpf = BPF(src_file = "http-parse-complete.c",debug = 0)

#load eBPF program http_filter of type SOCKET_FILTER into the kernel eBPF vm
#more info about eBPF program types
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
import socket
import os

# initialize BPF - load source code from http-parse.c
bpf = BPF(src_file = "http-parse.c",debug = 0)
# initialize BPF - load source code from http-parse-simple.c
bpf = BPF(src_file = "http-parse-simple.c",debug = 0)

#load eBPF program http_filter of type SOCKET_FILTER into the kernel eBPF vm
#more info about eBPF program types
Expand Down

0 comments on commit 46974b1

Please sign in to comment.