public class SEFlowDescriptor extends FlowDescriptor
Represents a SE Style Flow Descriptor construct, as defined in RFC 2205.
If the INTEGRITY object is present, it must immediately follow the common header. The STYLE object followed by the flow descriptor list must occur at the end of the message, and objects within the flow descriptor list must follow the BNF given below. There are no other requirements on transmission order, although the above order is recommended.
The NHOP (i.e., the RSVP_HOP) object contains the IP address of the interface through which the Resv message was sent and the LIH for the logical interface on which the reservation is required.
The appearance of a RESV_CONFIRM object signals a request for a reservation confirmation and carries the IP address of the receiver to which the ResvConf should be sent. Any number of POLICY_DATA objects may appear.
The BNF above defines a flow descriptor list as simply a list of flow descriptors. The following style-dependent rules specify in more detail the composition of a valid flow descriptor list for each of the reservation styles.
The reservation scope, i.e., the set of senders towards which a particular reservation is to be forwarded (after merging), is determined as follows:
The reservation is forwarded to all senders whose SENDER_TEMPLATE objects recorded in the path state match a FILTER_SPEC object in the reservation. This match must follow the rules of Section 3.2.
bytes, length
Constructor and Description |
---|
SEFlowDescriptor()
Constructor to be used when a SE Flow Descriptor is received and it is wanted to decode it
|
SEFlowDescriptor(FlowSpec flowSpec,
FilterSpec filterSpec)
Constructor to be used when a new SE Flow Descriptor it wanted to be created and sent
|
Modifier and Type | Method and Description |
---|---|
void |
addFilterSpec(FilterSpec filterSpec)
Method to add new Filter Spec object to the filter Spec list
|
void |
decode(byte[] bytes,
int offset)
SE Flow Descriptor decoding method.
|
void |
encode()
SE Flow Descriptor encoding method.
|
LinkedList<FilterSpec> |
getFilterSpecList() |
FlowSpec |
getFlowSpec() |
void |
setFilterSpecList(LinkedList<FilterSpec> filterSpecList) |
void |
setFlowSpec(FlowSpec flowSpec) |
getBytes, getLength, setBytes, setLength
public SEFlowDescriptor()
public SEFlowDescriptor(FlowSpec flowSpec, FilterSpec filterSpec) throws RSVPProtocolViolationException
flowSpec
- filterSpec
- RSVPProtocolViolationException
- It is thrown when a mandatory field is not presentpublic void addFilterSpec(FilterSpec filterSpec)
filterSpec
- public void encode() throws RSVPProtocolViolationException
encode
in interface RSVPElement
encode
in class FlowDescriptor
RSVPProtocolViolationException
public void decode(byte[] bytes, int offset) throws RSVPProtocolViolationException
decode
in class FlowDescriptor
RSVPProtocolViolationException
public FlowSpec getFlowSpec()
public void setFlowSpec(FlowSpec flowSpec)
public LinkedList<FilterSpec> getFilterSpecList()
public void setFilterSpecList(LinkedList<FilterSpec> filterSpecList)
Copyright © 2016. All rights reserved.