SSF.OS.BGP4.Path
Class Communities

java.lang.Object
  |
  +--SSF.OS.BGP4.Path.Attribute
        |
        +--SSF.OS.BGP4.Path.Communities
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable

public class Communities
extends Attribute

The communities path attribute. It is used to group routes together in order to simplify the configuration of complex routing policies. A route may be a member of any number of communities. The attribute is optional non-transitive.

See Also:
Serialized Form

Field Summary
static java.lang.String dmlname
          The name of the path attribute as a DML attribute.
static java.lang.String name
          The name of the attribute as a string.
static int TYPECODE
          The communities path attribute type code.
 java.util.ArrayList vals
          The list of communities values.
 
Fields inherited from class SSF.OS.BGP4.Path.Attribute
dmlnames, MAX_TYPECODE, MIN_TYPECODE, names, nhidmlnames, undefined
 
Constructor Summary
Communities()
          Empty constructor.
Communities(java.util.ArrayList v)
          Constructs a communities path attribute with the given list of community values.
 
Method Summary
 int bytecount()
          Returns the number of octets (bytes) needed to represent this communities path attribute in an update message.
 Attribute copy()
          Constructs and returns a copy of the attribute.
 boolean equals(Attribute attrib)
          Determines whether or not this path attribute is equivalent to another.
 boolean opt()
          Returns whether the path attribute is optional (true) or well-known (false).
 boolean partial()
          Returns whether or not the information contained in the optional transitive attribute is partial (true) or complete (false).
 void readExternal(java.io.DataInput in)
          Reads the contents of this object from a serialization stream.
 void readExternal(java.io.ObjectInput in)
           
 java.lang.String toString()
          Returns this path attribute as a string.
 boolean trans()
          Returns whether an optional attribute is transitive (true) or non-transitive (false).
 void writeExternal(java.io.DataOutput out)
          Writes the contents of this object to a serialization stream.
 void writeExternal(java.io.ObjectOutput out)
          Writes the contents of this object to a data stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TYPECODE

public static final int TYPECODE
The communities path attribute type code.

See Also:
Constant Field Values

name

public static final java.lang.String name
The name of the attribute as a string.

See Also:
Constant Field Values

dmlname

public static final java.lang.String dmlname
The name of the path attribute as a DML attribute.

See Also:
Constant Field Values

vals

public java.util.ArrayList vals
The list of communities values.

Constructor Detail

Communities

public Communities()
Empty constructor. Used to deserialize this object.


Communities

public Communities(java.util.ArrayList v)
Constructs a communities path attribute with the given list of community values.

Parameters:
v - A list of the community values.
Method Detail

copy

public Attribute copy()
Constructs and returns a copy of the attribute.

Specified by:
copy in class Attribute
Returns:
a copy of the attribute

opt

public final boolean opt()
Description copied from class: Attribute
Returns whether the path attribute is optional (true) or well-known (false).

Specified by:
opt in class Attribute

trans

public final boolean trans()
Returns whether an optional attribute is transitive (true) or non-transitive (false). For well-known attributes it must be true. Note that the original RFC for the COMMUNITIES attribute (RFC 1997) says that it is optional and transitive. However, Stewart's book ("BGP4: Inter-Domain Routing in the Internet") says that it is optional and non-transitive. The latter is believed to be correct.

Specified by:
trans in class Attribute

partial

public final boolean partial()
Description copied from class: Attribute
Returns whether or not the information contained in the optional transitive attribute is partial (true) or complete (false). For well-known attributes and for optional non-transitive attributes, it must be false.

Specified by:
partial in class Attribute

bytecount

public int bytecount()
Returns the number of octets (bytes) needed to represent this communities path attribute in an update message. The number is the sum of the two octets needed for the attribute type (which contains attribute flags and the attribute type code), the one or two octets needed for the attribute length, and the variable number of octets needed for the attribute value.

Specified by:
bytecount in class Attribute
Returns:
the number of octets (bytes) needed to represent this communities path attribute in an update message

equals

public boolean equals(Attribute attrib)
Determines whether or not this path attribute is equivalent to another.

Specified by:
equals in class Attribute
Parameters:
attrib - A path attribute to compare to this one.
Returns:
true only if the two attributes are equivalent

toString

public final java.lang.String toString()
Returns this path attribute as a string.

Overrides:
toString in class java.lang.Object
Returns:
the attribute as a string

writeExternal

public void writeExternal(java.io.ObjectOutput out)
                   throws java.io.IOException
Description copied from class: Attribute
Writes the contents of this object to a data stream.

Specified by:
writeExternal in interface java.io.Externalizable
Overrides:
writeExternal in class Attribute
Throws:
java.io.IOException - if there's an error writing the data

writeExternal

public void writeExternal(java.io.DataOutput out)
                   throws java.io.IOException
Writes the contents of this object to a serialization stream.

Overrides:
writeExternal in class Attribute
Throws:
java.io.IOException - if there's an error writing the data

readExternal

public void readExternal(java.io.ObjectInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Specified by:
readExternal in interface java.io.Externalizable
Overrides:
readExternal in class Attribute
java.io.IOException
java.lang.ClassNotFoundException

readExternal

public void readExternal(java.io.DataInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Reads the contents of this object from a serialization stream.

Overrides:
readExternal in class Attribute
Throws:
java.io.IOException - if there's an error reading in the data
java.lang.ClassNotFoundException - if a class name is unrecognized