27.03.2014 Views

Moby Dick Consolidated System Integration Plan

Moby Dick Consolidated System Integration Plan

Moby Dick Consolidated System Integration Plan

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

D0103v1.doc Version 1 6.7.2003<br />

Filter number<br />

(= line number)<br />

0<br />

1<br />

2<br />

3<br />

4<br />

…<br />

N<br />

Filter Pointer<br />

Filter0Ptr<br />

NULL<br />

Filter2Ptr<br />

Filter3Ptr<br />

NULL<br />

…<br />

FilterNPtr<br />

Table 12: Format of the DMT<br />

Each line of the table only contains a pointer to a complete description of a filter loaded in the memory<br />

(see Table 3).<br />

Each filter is a simple structure containing a description, the DSCP (CoS) used to mark each packet that<br />

matches this filter, a set of bits identifying the different headers to examine, and a pointer to a list of items<br />

representing the different fields of the packet header that are to be inspected (see figure 26). Thus, the<br />

number of fields in a filter is variable. The bits identifying the different headers to examine accelerate the<br />

filtering process. Indeed, if a filter contains items related to TCP fields, and if the packet does not contain<br />

a TCP header, the filter doesn’t match, and browsing its items list and the header fields’ values becomes<br />

useless. The use of these bits avoids useless treatments in the DMF.<br />

Every item of this list contains an identification of the field to inspect, i.e. a value identifying the name of<br />

the field in the kernel (IP6_SRC_ADDR is equivalent to the IP6SrcAddr field in the FD,<br />

TCP_SRC_PORT is equivalent to the TCPSrcPort field, etc.), the expected value of this field, and a<br />

pointer to the next item.<br />

It is possible that the information extracted from the packet header matches with several filters. Only the<br />

first filter is taken into account. Thus, the number of the filter, which is the range of the filter in the table,<br />

represents its priority. The lower is this number, the greater is the priority of the filter. So, it is important<br />

to sort the filters from the more detailed to the less detailed.<br />

Desc.: ANiceFilter<br />

Headers:IP6, TCP<br />

CoS: 101101<br />

Items list: item1<br />

Ident.: IP6_SRC_ADDR<br />

Value: FEC0::1<br />

Next: item2<br />

Ident.: IP6_DSCP<br />

Value: 010110<br />

Next: item3<br />

Ident.: TCP_SRC_PORT<br />

Value: 21<br />

Next: NULL<br />

Figure 50: Representation of a filter in the Linux kernel<br />

Table updates<br />

The TUM modifies the DMT each time the user, or the network administrator, modifies the FD and<br />

communicates it to the module (figure 27). The modified FD – which is a single text file – is forwarded to<br />

the module over a simple Linux character device (/dev/dscp). This solution is the simplest way to<br />

communicate information from the user space (here, the FD) to the kernel space where the DMT is<br />

located.<br />

Thus, the user only has to write on this device with the contents of the FD (by the ‘cat filters_database.txt<br />

> /dev/dscp’ command for ex.). Then, the TUM automatically reads the text written on the device, and<br />

updates the DMT in the Linux kernel. Note that it is not necessary to write the entire FD on the device to<br />

update properly the DMT: only a file containing new filters, or a subset of modified filters can be<br />

communicated to the TUM.<br />

D0103v1.doc 63 / 168

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!