SSF.Net
Class RadixTreeRoutingTable

java.lang.Object
  |
  +--SSF.OS.ProtocolSession
        |
        +--SSF.Net.RadixTreeRoutingTable
All Implemented Interfaces:
com.renesys.raceway.DML.Configurable, RoutingTable

public synchronized class RadixTreeRoutingTable
extends ProtocolSession
implements RoutingTable


Field Summary
private  java.util.HashMap adminDistances
           
private  RoutingInfo cache
           
private  int cache_dstip
           
private  int cache_srcip
           
private  java.util.ArrayList fibChangeListeners
           
private  int ID
           
private  ProtocolGraph inGraph
           
private  RtgTblNode root
           
private  boolean[] route
           
private static boolean ROUTE_DELETED
           
private static boolean ROUTE_INSERTED
           
private  boolean SHOW_ADD
           
private  RouteTieBreaker tieBreaker
           
static Net topnet
           
private  RtgTblNode window
           
 
Fields inherited from class SSF.OS.ProtocolSession
name, use
 
Constructor Summary
RadixTreeRoutingTable(ProtocolGraph)
           
RadixTreeRoutingTable(ProtocolGraph, RouteTieBreaker)
           
 
Method Summary
 void add(java.lang.String, NIC, int)
           
 void add(java.lang.String, NIC, int, int)
           
 void add(java.lang.String, NIC, int, int, java.lang.String)
           
 void add(java.lang.String, NIC, int, java.lang.String)
           
 void addDefault(NIC, int)
           
 void addDefault(NIC, int, int)
           
 void addDefault(NIC, int, int, java.lang.String)
           
 void addFIBChangeListener(FIBChangeListener)
           
 int approxBytes()
           
private  int approxBytesHelper(int, RtgTblNode, int)
           
static int bytes2ip(java.lang.StringBuffer, byte[], int)
           
static int bytes2ipprefix(java.lang.StringBuffer, byte[], int)
           
static int bytes2nhi(java.lang.StringBuffer, byte[], int)
           
static int bytes2str(java.lang.StringBuffer, byte[], int, java.lang.String, boolean)
           
private  void changed(RoutingInfo, java.lang.String, boolean)
           
 void clearTable()
           
 void config(com.renesys.raceway.DML.Configuration)
           
private  void configRoute(com.renesys.raceway.DML.Configuration, boolean)
           
 void del(java.lang.String)
           
 void del(java.lang.String, java.lang.String)
           
private  void dump(FIBChangeListener)
           
private  void dump(FIBChangeListener, RtgTblNode)
           
 RoutingInfo find(int)
           
 RoutingInfo find(int, int)
           
 RoutingInfo find(int, int, java.lang.String)
           
 RoutingInfo find(int, java.lang.String)
           
 RoutingInfo findBest(int)
           
 RoutingInfo findBest(int, int)
           
private  int getAdminDistance(java.lang.String)
           
 int getID()
           
 void insert(boolean[], RoutingInfo)
           
private  void insertLeft()
           
private  void insertRight()
           
private  int ip2bytes(int, byte[], int, boolean)
           
static int ipprefix2bytes(int, int, byte[], int)
           
static int nhi2bytes(java.lang.String, byte[], int)
           
private  java.lang.String preorderTraversal(java.lang.String, java.lang.String, boolean, RtgTblNode, int)
           
 void print()
           
 void print(java.lang.String)
           
 void print(java.lang.String, boolean)
           
 boolean push(ProtocolMessage, ProtocolSession)
           
 void remove(boolean[], java.lang.String)
           
 void removeFIBChangeListener(FIBChangeListener)
           
 void rep(java.lang.String, NIC, int, int, java.lang.String)
           
 void replace(boolean[], RoutingInfo, java.lang.String)
           
 void setAdminDistance(java.lang.String, int)
           
 void setDefaultAdminDistances()
           
private  void settopnet()
           
 int toBytes(byte[], int, boolean)
           
private  int[] toBytesHelper(byte[], int, boolean, RtgTblNode, int, int)
           
 java.lang.String toString()
           
 java.lang.String toString(java.lang.String, boolean)
           
 
Methods inherited from class SSF.OS.ProtocolSession
close, closed, debugIdentifier, inGraph, init, open, opened, pushAfterDelay, pushAfterDelayFailed, setGraph, version
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

root

private RtgTblNode root

window

private RtgTblNode window

ID

private int ID

route

private boolean[] route

inGraph

private ProtocolGraph inGraph

SHOW_ADD

private boolean SHOW_ADD

tieBreaker

private RouteTieBreaker tieBreaker

fibChangeListeners

private java.util.ArrayList fibChangeListeners

ROUTE_DELETED

private static final boolean ROUTE_DELETED
See Also:
Constant Field Values

ROUTE_INSERTED

private static final boolean ROUTE_INSERTED
See Also:
Constant Field Values

adminDistances

private java.util.HashMap adminDistances

cache_dstip

private int cache_dstip

cache_srcip

private int cache_srcip

cache

private RoutingInfo cache

topnet

public static Net topnet
Constructor Detail

RadixTreeRoutingTable

public RadixTreeRoutingTable(ProtocolGraph)

RadixTreeRoutingTable

public RadixTreeRoutingTable(ProtocolGraph,
                             RouteTieBreaker)
Method Detail

addFIBChangeListener

public void addFIBChangeListener(FIBChangeListener)
Specified by:
addFIBChangeListener in interface RoutingTable

removeFIBChangeListener

public void removeFIBChangeListener(FIBChangeListener)
Specified by:
removeFIBChangeListener in interface RoutingTable

changed

private void changed(RoutingInfo,
                     java.lang.String,
                     boolean)

getAdminDistance

private int getAdminDistance(java.lang.String)

setAdminDistance

public void setAdminDistance(java.lang.String,
                             int)

setDefaultAdminDistances

public void setDefaultAdminDistances()

config

public void config(com.renesys.raceway.DML.Configuration)
            throws com.renesys.raceway.DML.configException
Specified by:
config in interface com.renesys.raceway.DML.Configurable
Overrides:
config in class ProtocolSession
com.renesys.raceway.DML.configException

configRoute

private void configRoute(com.renesys.raceway.DML.Configuration,
                         boolean)
                  throws com.renesys.raceway.DML.configException
com.renesys.raceway.DML.configException

getID

public int getID()

add

public void add(java.lang.String,
                NIC,
                int)
Specified by:
add in interface RoutingTable

add

public void add(java.lang.String,
                NIC,
                int,
                java.lang.String)
Specified by:
add in interface RoutingTable

add

public void add(java.lang.String,
                NIC,
                int,
                int)
Specified by:
add in interface RoutingTable

add

public void add(java.lang.String,
                NIC,
                int,
                int,
                java.lang.String)
Specified by:
add in interface RoutingTable

addDefault

public void addDefault(NIC,
                       int)
Specified by:
addDefault in interface RoutingTable

addDefault

public void addDefault(NIC,
                       int,
                       int)
Specified by:
addDefault in interface RoutingTable

addDefault

public void addDefault(NIC,
                       int,
                       int,
                       java.lang.String)
Specified by:
addDefault in interface RoutingTable

rep

public void rep(java.lang.String,
                NIC,
                int,
                int,
                java.lang.String)
Specified by:
rep in interface RoutingTable

del

public void del(java.lang.String)
Specified by:
del in interface RoutingTable

del

public void del(java.lang.String,
                java.lang.String)
Specified by:
del in interface RoutingTable

insertLeft

private void insertLeft()

insertRight

private void insertRight()

insert

public void insert(boolean[],
                   RoutingInfo)

replace

public void replace(boolean[],
                    RoutingInfo,
                    java.lang.String)

remove

public void remove(boolean[],
                   java.lang.String)

find

public RoutingInfo find(int)
Specified by:
find in interface RoutingTable

find

public RoutingInfo find(int,
                        java.lang.String)

find

public RoutingInfo find(int,
                        int)
Specified by:
find in interface RoutingTable

find

public RoutingInfo find(int,
                        int,
                        java.lang.String)

findBest

public RoutingInfo findBest(int)
Specified by:
findBest in interface RoutingTable

findBest

public RoutingInfo findBest(int,
                            int)
Specified by:
findBest in interface RoutingTable

settopnet

private void settopnet()

nhi2bytes

public static int nhi2bytes(java.lang.String,
                            byte[],
                            int)

bytes2nhi

public static int bytes2nhi(java.lang.StringBuffer,
                            byte[],
                            int)

ipprefix2bytes

public static int ipprefix2bytes(int,
                                 int,
                                 byte[],
                                 int)

bytes2ipprefix

public static int bytes2ipprefix(java.lang.StringBuffer,
                                 byte[],
                                 int)

ip2bytes

private int ip2bytes(int,
                     byte[],
                     int,
                     boolean)

bytes2ip

public static int bytes2ip(java.lang.StringBuffer,
                           byte[],
                           int)

toBytes

public int toBytes(byte[],
                   int,
                   boolean)

toBytesHelper

private int[] toBytesHelper(byte[],
                            int,
                            boolean,
                            RtgTblNode,
                            int,
                            int)

approxBytes

public int approxBytes()

approxBytesHelper

private int approxBytesHelper(int,
                              RtgTblNode,
                              int)

bytes2str

public static int bytes2str(java.lang.StringBuffer,
                            byte[],
                            int,
                            java.lang.String,
                            boolean)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

toString

public java.lang.String toString(java.lang.String,
                                 boolean)

print

public void print()
Specified by:
print in interface RoutingTable

print

public void print(java.lang.String)

print

public void print(java.lang.String,
                  boolean)

preorderTraversal

private java.lang.String preorderTraversal(java.lang.String,
                                           java.lang.String,
                                           boolean,
                                           RtgTblNode,
                                           int)

dump

private void dump(FIBChangeListener)

dump

private void dump(FIBChangeListener,
                  RtgTblNode)

push

public boolean push(ProtocolMessage,
                    ProtocolSession)
Specified by:
push in class ProtocolSession

clearTable

public void clearTable()