|
DRCL J-Sim API | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectdrcl.DrclObj
drcl.comp.Component
drcl.net.Module
drcl.inet.Protocol
drcl.inet.protocol.Routing
drcl.inet.protocol.ospf.OSPF
drcl.inet.protocol.ospf.OSPF_QoS
QoS extension to OSPF. Mainly based on RFC 2676 QoS Routing Mechanisms and OSPF Extensions. Without explicit indication. The following reference is from RFC 2676.
As described in sec. 1, the purpose of the extension is to "Obtain the information needed to compute QoS paths and select a path capable of meeting the QoS requirements of a given request" In this QoS extension, We use two kinds of mechanism to calculate the QoS routes. One is the on-demand calculation modified from the standard Dijkstra's algorithm. The QoS considered here is bandwidth requirement. When doing the calculation, we only consider the link with avail. bw larger than the requirement.
The second mechanism is the precomputation approach. It calculates the routes to each destination and obtains the max. bw on route and the next hop info, which are recorded in the routing table. Because of the changes in the link metric, the precomputation needs to be done periodically or by event trigger. The dynamic changes in the link metrics would trigger the recalculation of all paths. However, this requires the cooperations of other signalling protocols such as RSVP or MPLS LDP. Hence, in the current stage, the extension does not handle the dynamics of metrics. We only left the interface for the future exploration.
The implementation does support equal-cost paths for multiple nexthops
OSPF,
Serialized Form| Nested Class Summary |
| Nested classes inherited from class drcl.comp.Component |
Component.Locks |
| Field Summary | |
static int |
DEBUG_QOS
Redefine Debug level of handling timeout events. |
| Fields inherited from class drcl.inet.protocol.ospf.OSPF |
debug, DEBUG_ACK, DEBUG_DETAIL, DEBUG_LSA, DEBUG_NEIGHBOR, DEBUG_REFRESH, DEBUG_SAMPLE, DEBUG_SEND, DEBUG_SPF, DEBUG_TIMEOUT, debug2 |
| Fields inherited from class drcl.net.Module |
downPort, PortGroup_DOWN, PortGroup_UP, upPort |
| Constructor Summary | |
OSPF_QoS()
Constructor. |
|
| Method Summary | |
int |
bw2metric(double bw)
|
java.lang.String |
info()
Returns information regarding this component. |
double |
metric2bw(int metric)
transfer the value of the TOS metric (16 bits) to bandwidth value, units: bits/sec, ref: sec3.2.1 |
java.util.Vector |
ospf_QoS_spf_on_demand_calculate(OSPF_Area area,
int dest,
double bw_)
On-demand version of calculating a path satisying specified requirements to a destination. |
void |
reset()
Resets the component for being used anew. |
void |
set_dynamic_precompute_options(boolean options_)
Set the bit whether to execute precomputation according to dynamic changes, In this example, received lsa # is the reference |
void |
set_periodical_precompute_options(boolean options_,
int period)
Set the bit whether to enable precomputation periodically |
void |
set_QoS_options(int options_)
Set value of TOS type, either 40( for bw) or 48 (for delay) |
void |
show_QoS_ondemand_nexthop_by_bw(int dest,
double bw_)
given a destination and the required the bw, print the nexthops, on-demand version |
void |
show_QoS_options()
|
void |
show_QoS_precompute_nexthop_by_bw(int dest,
double bw_)
given a destination and the required the bw, print the nexthops, precompute version |
| Methods inherited from class drcl.inet.protocol.ospf.OSPF |
dataArriveAtDownPort, duplicate, getDebugLevelNames, getName, ospf_set_area_id |
| Methods inherited from class drcl.inet.protocol.Routing |
addRTEntry, addRTEntry, graftRTEntry, graftRTEntry, graftRTEntry, pruneRTEntry, pruneRTEntry, pruneRTEntry, removeAllRTEntries, removeRTEntry, removeRTEntry, retrieveAllRTEntries, retrieveBestRTEntryDest, retrieveRTEntry, retrieveRTEntryDest, retrieveRTEntrySrc |
| Methods inherited from class drcl.net.Module |
cancelTimeout, setTimeout, setTimeoutAt |
| Methods inherited from class drcl.DrclObj |
clone |
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
public static final int DEBUG_QOS
| Constructor Detail |
public OSPF_QoS()
| Method Detail |
public java.lang.String info()
Component
info in class OSPFpublic void reset()
Component
reset in class OSPFpublic void set_QoS_options(int options_)
public void show_QoS_options()
public void set_periodical_precompute_options(boolean options_,
int period)
public void set_dynamic_precompute_options(boolean options_)
public void show_QoS_ondemand_nexthop_by_bw(int dest,
double bw_)
public void show_QoS_precompute_nexthop_by_bw(int dest,
double bw_)
public java.util.Vector ospf_QoS_spf_on_demand_calculate(OSPF_Area area,
int dest,
double bw_)
public double metric2bw(int metric)
public int bw2metric(double bw)
|
DRCL J-Sim API | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||