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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

D0103v1.doc Version 1 6.7.2003<br />

4.2.3.2 Interface between QoSManager and DiffServ Logic<br />

PEP communicates with DiffServ Logic using an API: The IBM TC API. This section describes shortly<br />

the main functions of the API.<br />

• First is the call of the API function QSession() which creates a netlink socket to communicate<br />

between the kernel space (where DiffServ Logic runs) and the user space (where PEP code<br />

runs).<br />

• To configure queues in the DiffServ Logic a two step process is followed. We first call the API<br />

function AddQDiscCBQ() is first called to reserve and configure some resources of a router<br />

interface for later creating the queues in those reserved resources. Then, for each queue we want<br />

to create in the mentioned interface, we call AddTClassCBQ(). If we want to create queues other<br />

than CBQ we may also call AddQDiscName() and AddTClassName().<br />

• To create filters to route packets to any of the queues created in the preceding step, we have to<br />

call two API functions. First we create a set of conditions the packet must meet using the<br />

function AddCondition() as many times as needed. Then, we aggregate these conditions and<br />

create the filter using AddFilterU32Filter(), this functions allow us to specify to which queue the<br />

packets meeting the above created conditions will be routed.<br />

DiffServ Logic has also to tell the PEP when a packet that does not match any filter rules arrives, so that<br />

the PEP initiates the Authorization Process. But TC does not allow that. So we use pcap. Pcap captures all<br />

the packets and stores in a shared memory variable packets parameters (CoA and DSCP). PEP checks this<br />

shared memory variable and looks if any (CoA, DSCP) pair is not in his DSCP table. In that case it begins<br />

the authorization process begins.<br />

A wrapper around IBM’s TC API has been designed. Its more relevant functions are:<br />

Create_session(interface)<br />

Create_initial_qdiscs()<br />

create_CBQ_class(BW, borrow_bw)<br />

create_GRED_VQ(queue capacity (min, max) discard probabilty)<br />

create_default_filter(class to send packets matching none of the filters)<br />

add_filter6(CoA, DSCP, class to send packets matching this filter)<br />

tell_stats(interface_status)<br />

4.2.3.2.1 Flow sequence between PEP and DiffServ Logic<br />

No. Function call Remarks<br />

1 Create_session<br />

To initiate DiffServ Logic<br />

2 Create_initial_qdiscs<br />

3 create_CBQ_class As many times as needed<br />

4 create_CBQ_class<br />

As many times as needed<br />

5 create_GRED_VQ<br />

6 create_CBQ_class<br />

CBQ can be created and deleted as<br />

needed<br />

7 delete_CBQ_class<br />

create_default_filter<br />

8 add_filter6 As many times as needed<br />

9 add_filter6<br />

10 remove_filter6<br />

11 Stats As many times as needed<br />

Table 14: Flow Sequence between PEP and DiffServ logic<br />

Filters can be created and deleted as<br />

needed<br />

4.2.3.3 Interface between the QoSManager and the Integrated Logger<br />

Each time the Access Router is going to send a ‘Resource allocation Request’ message asking<br />

authorization for an active traffic not installed at this time, the router is forced to log this event for later<br />

auditing. After the response is received and the report state message sent, this event must also be logged.<br />

The Integrated Logger functionalities are provided by the API ‘SessionSetupLogger’.<br />

The interface provided by the Integrated Logger is simple and consists of three functions and a structure.<br />

The functions are:<br />

D0103v1.doc 66 / 168

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

Saved successfully!

Ooh no, something went wrong!