|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object
|
+--SSF.OS.ProtocolSession
|
+--gov.nist.antd.ospf_te.sOSPF_TE
Traffic Engineering Extension to OSPF
| Nested Class Summary | |
private class |
sOSPF_TE.StartupTimer
A timer used to apply a brief waiting period before the link state database is first calculated at startup. |
| Field Summary | |
static int |
ADJACENT
Indicates that an adjacency exists with a given neighbor. |
static int |
AREA_BORDER
Indicates an OSPF area border router. |
boolean |
area_border_rtr
Indicates if this is an area border router. |
int |
area_num
The Area to which this router belongs. |
int[] |
areas
The Area(s) to which this route belongs. |
static int |
AS_BOUNDARY
Indicates an OSPF AS boundary router. |
boolean |
as_boundary_rtr
Indicates if this is an AS boundary router. |
java.lang.String |
as_nh
The NHI address prefix of the AS to which this router belongs. |
int |
as_num
The number of the AS to which this router belongs. |
static int |
ASPF_MCAST_ADDR
The int value of the multicast address for ALLSPFRouters (All Shortest Path First Routers). |
static int |
BACKBONE
Indicates an OSPF backbone router. |
boolean |
backbone_rtr
Indicates if this is a backbone router. |
static double |
BUILD_RT_TABLE_ITVL
The interval at which OSPF rebuilds its routing tables. |
private int |
c
|
static int |
COLOR
Field COLOR - XXX |
Debug |
debug
A helper to manage debugging. |
static int |
DESIG_MCAST_ADDR
Field DESIG_MCAST_ADDR - XXX |
static int |
DISTANCE
Field DISTANCE - XXX |
static int |
DOWN
Indicates that a given neighbor is down. |
static int |
ERROR_RATE
Field ERROR_RATE - XXX |
RoutingTable |
fwd_table
Field fwd_table - XXX |
static double |
GET_RT_TYPE_ITVL
The interval at which OSPF determines the router types. |
static double |
HELLO_INTERVAL
The interval at which OSPF sends hello packets. |
static int |
HELLO_RCVD
Indicates that a hello has been received from a given neighbor. |
static int |
HOP_COUNT
Field HOP_COUNT - XXX |
int |
hostid
The host ID of the local router. |
java.util.Vector |
ifs
The OSPF interface data structure. |
int |
ifs_index
Field ifs_index - XXX |
static int |
INTERNAL
Indicates an internal OSPF router. |
boolean |
internal_rtr
Indicates if this is an internal Router. |
(package private) IP |
ip
A reference to the underlying IP protocol session. |
int[] |
lsaflag
Field lsaflag - XXX |
int |
lsaindex
Field lsaindex - XXX |
LSDatabase |
lsdb
The link state database implemented as an adjacency list. |
static int |
MAX_BW
Field MAX_BW - XXX |
static int |
MAX_RESV_BW
Field MAX_RESV_BW - XXX |
static int |
MAX_TE_METRICS
Field MAX_TE_METRICS - XXX |
static int |
MAX_TLV_LENGTH
Field MAX_TLV_LENGTH - XXX |
java.lang.String |
nh
The NHI address prefix of the local router. |
int |
nic_length
Field nic_length - XXX |
private static boolean |
options_configured
Whether or not global OSPF options have yet been configured (since it only needs to be done once, by one OSPF instance). |
static int |
POINT_TO_POINT
Indicates a point-to-point connection to another router. |
private Router |
rtr
The local router. |
private int |
rtrid
The identity of this router. |
static double |
SEND_LSA_ITVL
The interval at which OSPF sends LSAs. |
private int |
seqnum
Packet sequence number, which is supposed to be unique for all OSPF LSA packets. |
private int |
seqnum_index
The index of the next slot to insert in seqnum_rcvd. |
private java.lang.String[] |
seqnum_rcvd
An array storing all the seqnums of all packets received |
TERoutingTable |
te_fwd_table
The local router's forwarding table. |
java.util.Vector |
teifs
The OSPF interface data structure. |
static int |
TO_AS_BOUNDARY
Indicates a connection to an AS boundary router. |
static int |
TO_HOST
Indicates a connection to a host. |
static int |
TO_LSR
Field TO_LSR - XXX |
static int |
TO_STUB
Indicates a connection to a stub network. |
static int |
TO_TRANSIT
Indicates a connection to a transit network. |
static int |
TO_TUNNEL
Field TO_TUNNEL - XXX |
static int |
TO_VIRTUAL
Indicates a connection to a host. |
static Net |
topnet
A reference to the top-level Net. |
static int |
UN_RESV_BW
Field UN_RESV_BW - XXX |
private static boolean |
vmsg_printed
Whether or not a validation test message has yet been printed (since it only needs to be done once (by one OSPF instance)). |
| Fields inherited from class SSF.OS.ProtocolSession |
name, use |
| Constructor Summary | |
sOSPF_TE()
Constructs an OSPF protocol session. |
|
| Method Summary | |
void |
acceptASExternalRoute(int destNetworkIP,
int destNetworkMask)
This method is called by other inter-AS routing protocols, e.g. |
void |
acceptASExternalRoute(java.lang.String forwardRtrNH,
int destNetworkIP,
int destNetworkMask)
This method is called by other inter-AS routing protocols, e.g. |
private void |
addRcvdSeqNum(int seq_num,
java.lang.String nhipref)
Adds a sequence number to the list of received sequence numbers. |
private void |
announceASExternalRoute(int destNetworkIP,
int destNetworkMask)
This methods is the non-flooding way used by ASBRs to announce an AS External Route to all routers in the same AS. |
private void |
buildRoutingTable()
Builds the shortest path tree using the databases. |
private static void |
config_options(com.renesys.raceway.DML.Configuration cfg)
Configures options set with the ospfoptions attribute in DML. |
void |
config(com.renesys.raceway.DML.Configuration cfg)
Method config XXX |
void |
createOpqLinkDatabase()
Queries the list of all routers and links from Net, decides connection types, and creates a link state database. |
private void |
determineRouterType()
Determine router type by comparing area number and AS id to those if its peers. |
Interface |
findInterface(int id)
Method findInterface XXX |
private int |
getNextSeqNum()
Returns the next LSA sequence number of this OSPF session. |
protected NIC |
getNic(MPLSInterfaceInfo info)
|
protected NIC |
getPeerNic(MPLSInterfaceInfo info)
|
float |
getSimTime()
Get the current simulation. |
java.util.Vector |
getSummaryNets(java.util.Hashtable mySumNet)
Returns a list of link information containing all the networks in the given table that do not belong to the area(s) this OSPF router belongs to. |
void |
init()
Initialization routine called by ProtocolGraph after instantiation. |
void |
initTEInterfaces()
Method initTEInterfaces |
double |
nowsec()
Returns the current simulation time in seconds. |
private boolean |
oneOfAreas(int area)
Returns true if this router belongs to the given area. |
private static void |
print_validation_test_msg(sOSPF_TE ospf)
Prints a validation test message if the current model being executed is part of a validation test. |
private void |
processLSApkt(Packet pkt)
This method processes a Link State Advertisement. |
private void |
processType5LSA(Packet pkt)
Processes all incoming Type 5 (AS external routes) packets. |
boolean |
push(ProtocolMessage message,
ProtocolSession fromSession)
Method push XXX |
private void |
sendLSAListAllItrf(int LSAtype,
int lsid,
java.util.Vector linkinfolist,
boolean sameArea,
int thisArea)
Sends a list of link information to all interfaces. |
private boolean |
sendOSPFheaderItrf(Packet pkt,
Interface Itrf)
Sends an OSPF packet out on an interface. |
private boolean |
seqNumInList(int seq_num,
java.lang.String nhipref)
Returns true if the given sequence number is in the seq number list. |
void |
updateLinkInterface()
Method updateLinkInterface |
| Methods inherited from class SSF.OS.ProtocolSession |
close, closed, debugIdentifier, inGraph, open, opened, pushAfterDelay, pushAfterDelayFailed, setGraph, version |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final int INTERNAL
public static final int AREA_BORDER
public static final int BACKBONE
public static final int AS_BOUNDARY
public static final double GET_RT_TYPE_ITVL
public static final double HELLO_INTERVAL
public static final double SEND_LSA_ITVL
public static final double BUILD_RT_TABLE_ITVL
public static final int DOWN
public static final int HELLO_RCVD
public static final int ADJACENT
public static final int POINT_TO_POINT
public static final int TO_TRANSIT
public static final int TO_STUB
public static final int TO_AS_BOUNDARY
public static final int TO_HOST
public static final int TO_VIRTUAL
public static final int TO_TUNNEL
public static final int TO_LSR
public static final int ASPF_MCAST_ADDR
public static final int DESIG_MCAST_ADDR
public static final int MAX_TLV_LENGTH
public static final int MAX_TE_METRICS
public int[] lsaflag
public static final int HOP_COUNT
public static final int MAX_BW
public static final int MAX_RESV_BW
public static final int UN_RESV_BW
public static final int COLOR
public static final int DISTANCE
public static final int ERROR_RATE
public static Net topnet
private Router rtr
public int hostid
public java.lang.String nh
private int rtrid
private int c
public boolean internal_rtr
public boolean area_border_rtr
public boolean backbone_rtr
public boolean as_boundary_rtr
public java.lang.String as_nh
public int as_num
public int area_num
public int[] areas
public java.util.Vector ifs
public java.util.Vector teifs
public int ifs_index
public int nic_length
public int lsaindex
public LSDatabase lsdb
public TERoutingTable te_fwd_table
public RoutingTable fwd_table
private int seqnum
private java.lang.String[] seqnum_rcvd
private int seqnum_index
IP ip
private static boolean vmsg_printed
public Debug debug
private static boolean options_configured
| Constructor Detail |
public sOSPF_TE()
| Method Detail |
public void config(com.renesys.raceway.DML.Configuration cfg)
throws com.renesys.raceway.DML.configException
config in interface com.renesys.raceway.DML.Configurableconfig in class ProtocolSessioncfg - - XXX
com.renesys.raceway.DML.configExceptionprivate static void config_options(com.renesys.raceway.DML.Configuration cfg)
ospfoptions attribute in DML.
Only one OSPF instance in the entire simulation will actually execute this
method in its entirety. This is because the options configured here are
those which apply globally to all OSPF instances. The one OSPF instance
that executes this method does so on behalf of all OSPF instances in the
simulation.
cfg - Contains the values of configurable OSPF options.private static void print_validation_test_msg(sOSPF_TE ospf)
ospf - The OSPF protocol session that is calling this class method.
public void init()
throws ProtocolException
init in class ProtocolSessionProtocolExceptionpublic double nowsec()
private int getNextSeqNum()
private void addRcvdSeqNum(int seq_num,
java.lang.String nhipref)
private boolean seqNumInList(int seq_num,
java.lang.String nhipref)
public void initTEInterfaces()
protected NIC getNic(MPLSInterfaceInfo info)
protected NIC getPeerNic(MPLSInterfaceInfo info)
private void determineRouterType()
public void createOpqLinkDatabase()
public void updateLinkInterface()
public boolean push(ProtocolMessage message,
ProtocolSession fromSession)
throws ProtocolException
push in class ProtocolSessionmessage - - XXXfromSession - - XXX
ProtocolException
private boolean sendOSPFheaderItrf(Packet pkt,
Interface Itrf)
private void sendLSAListAllItrf(int LSAtype,
int lsid,
java.util.Vector linkinfolist,
boolean sameArea,
int thisArea)
private void processLSApkt(Packet pkt)
public float getSimTime()
public void acceptASExternalRoute(int destNetworkIP,
int destNetworkMask)
public void acceptASExternalRoute(java.lang.String forwardRtrNH,
int destNetworkIP,
int destNetworkMask)
private void announceASExternalRoute(int destNetworkIP,
int destNetworkMask)
private void processType5LSA(Packet pkt)
private void buildRoutingTable()
public Interface findInterface(int id)
id - - XXX
public java.util.Vector getSummaryNets(java.util.Hashtable mySumNet)
private boolean oneOfAreas(int area)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||