Moby Dick Consolidated System Integration Plan
Moby Dick Consolidated System Integration Plan
Moby Dick Consolidated System Integration Plan
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