IpcsClassifierRecord class. More...
#include "ipcs-classifier-record.h"
Classes | |
struct | Ipv4Addr |
Ipv4Addr structure. More... | |
struct | PortRange |
PortRange structure. More... | |
Public Member Functions | |
IpcsClassifierRecord () | |
IpcsClassifierRecord (Ipv4Address srcAddress, Ipv4Mask srcMask, Ipv4Address dstAddress, Ipv4Mask dstMask, uint16_t srcPortLow, uint16_t srcPortHigh, uint16_t dstPortLow, uint16_t dstPortHigh, uint8_t protocol, uint8_t priority) | |
creates a classifier records and sets all its parameters More... | |
IpcsClassifierRecord (Tlv tlv) | |
Decodes a TLV and creates a classifier. More... | |
~IpcsClassifierRecord () | |
void | AddDstAddr (Ipv4Address dstAddress, Ipv4Mask dstMask) |
add a new destination ip address to the classifier More... | |
void | AddDstPortRange (uint16_t dstPortLow, uint16_t dstPortHigh) |
add a range of destination port to the classifier More... | |
void | AddProtocol (uint8_t proto) |
add a protocol to the classifier More... | |
void | AddSrcAddr (Ipv4Address srcAddress, Ipv4Mask srcMask) |
add a new source ip address to the classifier More... | |
void | AddSrcPortRange (uint16_t srcPortLow, uint16_t srcPortHigh) |
add a range of source port to the classifier More... | |
bool | CheckMatch (Ipv4Address srcAddress, Ipv4Address dstAddress, uint16_t srcPort, uint16_t dstPort, uint8_t proto) const |
check if a packets can be used with this classifier More... | |
uint16_t | GetCid () const |
uint16_t | GetIndex () const |
uint8_t | GetPriority () const |
void | SetCid (uint16_t cid) |
Set the cid associated to this classifier. More... | |
void | SetIndex (uint16_t index) |
Set the index of the classifier. More... | |
void | SetPriority (uint8_t prio) |
Set the priority of this classifier. More... | |
Tlv | ToTlv () const |
Creates a TLV from this classifier. More... | |
Private Member Functions | |
bool | CheckMatchDstAddr (Ipv4Address dstAddress) const |
Check match destination address function. More... | |
bool | CheckMatchDstPort (uint16_t dstPort) const |
Check match destination port function. More... | |
bool | CheckMatchProtocol (uint8_t proto) const |
Check match protocol function. More... | |
bool | CheckMatchSrcAddr (Ipv4Address srcAddress) const |
Check match source address function. More... | |
bool | CheckMatchSrcPort (uint16_t srcPort) const |
Check match source port function. More... | |
Private Attributes | |
uint16_t | m_cid |
the CID More... | |
std::vector< Ipv4Addr > | m_dstAddr |
destination address More... | |
std::vector< PortRange > | m_dstPortRange |
destination port range More... | |
uint16_t | m_index |
index More... | |
uint8_t | m_priority |
priority More... | |
std::vector< uint8_t > | m_protocol |
protocol More... | |
std::vector< Ipv4Addr > | m_srcAddr |
source address More... | |
std::vector< PortRange > | m_srcPortRange |
source port range More... | |
uint8_t | m_tosHigh |
TOS high. More... | |
uint8_t | m_tosLow |
TOS low. More... | |
uint8_t | m_tosMask |
TOS mask. More... | |
IpcsClassifierRecord class.
Definition at line 37 of file ipcs-classifier-record.h.
ns3::IpcsClassifierRecord::IpcsClassifierRecord | ( | ) |
Definition at line 32 of file ipcs-classifier-record.cc.
References AddDstAddr(), AddDstPortRange(), AddSrcAddr(), AddSrcPortRange(), m_cid, m_index, m_priority, m_protocol, m_tosHigh, m_tosLow, and m_tosMask.
ns3::IpcsClassifierRecord::~IpcsClassifierRecord | ( | ) |
Definition at line 49 of file ipcs-classifier-record.cc.
ns3::IpcsClassifierRecord::IpcsClassifierRecord | ( | Ipv4Address | srcAddress, |
Ipv4Mask | srcMask, | ||
Ipv4Address | dstAddress, | ||
Ipv4Mask | dstMask, | ||
uint16_t | srcPortLow, | ||
uint16_t | srcPortHigh, | ||
uint16_t | dstPortLow, | ||
uint16_t | dstPortHigh, | ||
uint8_t | protocol, | ||
uint8_t | priority | ||
) |
creates a classifier records and sets all its parameters
srcAddress | the source ip address |
srcMask | the mask to apply on the source ip address |
dstAddress | the destination ip address |
dstMask | the mask to apply on the destination ip address |
srcPortLow | the lower boundary of the source port range |
srcPortHigh | the higher boundary of the source port range |
dstPortLow | the lower boundary of the destination port range |
dstPortHigh | the higher boundary of the destination port range |
protocol | the L4 protocol |
priority | the priority of this classifier |
Definition at line 125 of file ipcs-classifier-record.cc.
References AddDstAddr(), AddDstPortRange(), AddSrcAddr(), AddSrcPortRange(), m_cid, m_index, m_priority, m_protocol, m_tosHigh, m_tosLow, and m_tosMask.
ns3::IpcsClassifierRecord::IpcsClassifierRecord | ( | Tlv | tlv | ) |
Decodes a TLV and creates a classifier.
tlv | the TLV to decode and from which the classifier parameters will be extracted |
Definition at line 53 of file ipcs-classifier-record.cc.
References AddDstAddr(), AddDstPortRange(), AddProtocol(), AddSrcAddr(), AddSrcPortRange(), ns3::VectorTlvValue::Begin(), ns3::VectorTlvValue::End(), ns3::Tlv::GetType(), ns3::ClassificationRuleVectorTlvValue::Index, ns3::ClassificationRuleVectorTlvValue::IP_dst, ns3::ClassificationRuleVectorTlvValue::IP_src, list, m_cid, m_index, m_priority, m_tosHigh, m_tosLow, m_tosMask, NS_ASSERT_MSG, NS_FATAL_ERROR, ns3::CsParamVectorTlvValue::Packet_Classification_Rule, ns3::Tlv::PeekValue(), ns3::ClassificationRuleVectorTlvValue::Port_dst, ns3::ClassificationRuleVectorTlvValue::Port_src, ns3::ClassificationRuleVectorTlvValue::Priority, ns3::ClassificationRuleVectorTlvValue::Protocol, and ns3::ClassificationRuleVectorTlvValue::ToS.
void ns3::IpcsClassifierRecord::AddDstAddr | ( | Ipv4Address | dstAddress, |
Ipv4Mask | dstMask | ||
) |
add a new destination ip address to the classifier
dstAddress | the destination ip address |
dstMask | the mask to apply on the destination ip address |
Definition at line 159 of file ipcs-classifier-record.cc.
References ns3::IpcsClassifierRecord::Ipv4Addr::Address, m_dstAddr, and ns3::IpcsClassifierRecord::Ipv4Addr::Mask.
Referenced by IpcsClassifierRecord(), and Ns3WimaxCsParamTlvTestCase::DoRun().
void ns3::IpcsClassifierRecord::AddDstPortRange | ( | uint16_t | dstPortLow, |
uint16_t | dstPortHigh | ||
) |
add a range of destination port to the classifier
dstPortLow | the lower boundary of the destination port range |
dstPortHigh | the higher boundary of the destination port range |
Definition at line 177 of file ipcs-classifier-record.cc.
References m_dstPortRange, ns3::IpcsClassifierRecord::PortRange::PortHigh, and ns3::IpcsClassifierRecord::PortRange::PortLow.
Referenced by IpcsClassifierRecord(), and Ns3WimaxCsParamTlvTestCase::DoRun().
void ns3::IpcsClassifierRecord::AddProtocol | ( | uint8_t | proto | ) |
add a protocol to the classifier
proto | the L4 protocol to add |
Definition at line 186 of file ipcs-classifier-record.cc.
References m_protocol.
Referenced by IpcsClassifierRecord(), and Ns3WimaxCsParamTlvTestCase::DoRun().
void ns3::IpcsClassifierRecord::AddSrcAddr | ( | Ipv4Address | srcAddress, |
Ipv4Mask | srcMask | ||
) |
add a new source ip address to the classifier
srcAddress | the source ip address |
srcMask | the mask to apply on the source ip address |
Definition at line 150 of file ipcs-classifier-record.cc.
References ns3::IpcsClassifierRecord::Ipv4Addr::Address, m_srcAddr, and ns3::IpcsClassifierRecord::Ipv4Addr::Mask.
Referenced by IpcsClassifierRecord(), and Ns3WimaxCsParamTlvTestCase::DoRun().
void ns3::IpcsClassifierRecord::AddSrcPortRange | ( | uint16_t | srcPortLow, |
uint16_t | srcPortHigh | ||
) |
add a range of source port to the classifier
srcPortLow | the lower boundary of the source port range |
srcPortHigh | the higher boundary of the source port range |
Definition at line 168 of file ipcs-classifier-record.cc.
References m_srcPortRange, ns3::IpcsClassifierRecord::PortRange::PortHigh, and ns3::IpcsClassifierRecord::PortRange::PortLow.
Referenced by IpcsClassifierRecord(), and Ns3WimaxCsParamTlvTestCase::DoRun().
bool ns3::IpcsClassifierRecord::CheckMatch | ( | Ipv4Address | srcAddress, |
Ipv4Address | dstAddress, | ||
uint16_t | srcPort, | ||
uint16_t | dstPort, | ||
uint8_t | proto | ||
) | const |
check if a packets can be used with this classifier
srcAddress | the source ip address of the packet |
dstAddress | the destination ip address of the packet |
srcPort | the source port of the packet |
dstPort | the destination port of the packet |
proto | The L4 protocol of the packet |
Definition at line 307 of file ipcs-classifier-record.cc.
References CheckMatchDstAddr(), CheckMatchDstPort(), CheckMatchProtocol(), CheckMatchSrcAddr(), and CheckMatchSrcPort().
Referenced by ns3::ServiceFlow::CheckClassifierMatch(), and Ns3WimaxCsParamTlvTestCase::DoRun().
|
private |
Check match destination address function.
dstAddress | destination IP address to check |
Definition at line 244 of file ipcs-classifier-record.cc.
References ns3::Ipv4Address::CombineMask(), m_dstAddr, and NS_LOG_INFO.
Referenced by CheckMatch().
|
private |
Check match destination port function.
dstPort | destination port to check |
Definition at line 276 of file ipcs-classifier-record.cc.
References m_dstPortRange, NS_LOG_INFO, and port.
Referenced by CheckMatch().
|
private |
Check match protocol function.
proto | protocol number to check |
Definition at line 292 of file ipcs-classifier-record.cc.
References m_protocol, and NS_LOG_INFO.
Referenced by CheckMatch().
|
private |
Check match source address function.
srcAddress | source IP address to check |
Definition at line 228 of file ipcs-classifier-record.cc.
References ns3::Ipv4Address::CombineMask(), m_srcAddr, and NS_LOG_INFO.
Referenced by CheckMatch().
|
private |
Check match source port function.
srcPort | source port to check |
Definition at line 260 of file ipcs-classifier-record.cc.
References m_srcPortRange, NS_LOG_INFO, and port.
Referenced by CheckMatch().
uint16_t ns3::IpcsClassifierRecord::GetCid | ( | ) | const |
Definition at line 216 of file ipcs-classifier-record.cc.
References m_cid.
uint16_t ns3::IpcsClassifierRecord::GetIndex | ( | ) | const |
Definition at line 210 of file ipcs-classifier-record.cc.
References m_index.
uint8_t ns3::IpcsClassifierRecord::GetPriority | ( | ) | const |
Definition at line 222 of file ipcs-classifier-record.cc.
References m_priority.
void ns3::IpcsClassifierRecord::SetCid | ( | uint16_t | cid | ) |
Set the cid associated to this classifier.
cid | the connection identifier |
Definition at line 198 of file ipcs-classifier-record.cc.
References m_cid.
void ns3::IpcsClassifierRecord::SetIndex | ( | uint16_t | index | ) |
Set the index of the classifier.
index | the index of the classifier |
Definition at line 204 of file ipcs-classifier-record.cc.
References m_index.
Referenced by Ns3WimaxCsParamTlvTestCase::DoRun().
void ns3::IpcsClassifierRecord::SetPriority | ( | uint8_t | prio | ) |
Set the priority of this classifier.
prio | the priority of the classifier |
Definition at line 192 of file ipcs-classifier-record.cc.
References m_priority.
Tlv ns3::IpcsClassifierRecord::ToTlv | ( | ) | const |
Creates a TLV from this classifier.
Definition at line 318 of file ipcs-classifier-record.cc.
References ns3::VectorTlvValue::Add(), ns3::Ipv4AddressTlvValue::Add(), ns3::PortRangeTlvValue::Add(), ns3::ProtocolTlvValue::Add(), ns3::VectorTlvValue::GetSerializedSize(), ns3::PortRangeTlvValue::GetSerializedSize(), ns3::ProtocolTlvValue::GetSerializedSize(), ns3::Ipv4AddressTlvValue::GetSerializedSize(), ns3::ClassificationRuleVectorTlvValue::Index, ns3::ClassificationRuleVectorTlvValue::IP_dst, ns3::ClassificationRuleVectorTlvValue::IP_src, m_dstAddr, m_dstPortRange, m_priority, m_protocol, m_srcAddr, m_srcPortRange, ns3::CsParamVectorTlvValue::Packet_Classification_Rule, ns3::ClassificationRuleVectorTlvValue::Port_dst, ns3::ClassificationRuleVectorTlvValue::Port_src, ns3::ClassificationRuleVectorTlvValue::Priority, and ns3::ClassificationRuleVectorTlvValue::Protocol.
Referenced by ns3::CsParameters::ToTlv().
|
private |
the CID
Definition at line 204 of file ipcs-classifier-record.h.
Referenced by IpcsClassifierRecord(), GetCid(), and SetCid().
|
private |
destination address
Definition at line 200 of file ipcs-classifier-record.h.
Referenced by AddDstAddr(), CheckMatchDstAddr(), and ToTlv().
|
private |
destination port range
Definition at line 202 of file ipcs-classifier-record.h.
Referenced by AddDstPortRange(), CheckMatchDstPort(), and ToTlv().
|
private |
index
Definition at line 194 of file ipcs-classifier-record.h.
Referenced by IpcsClassifierRecord(), GetIndex(), and SetIndex().
|
private |
priority
Definition at line 193 of file ipcs-classifier-record.h.
Referenced by IpcsClassifierRecord(), GetPriority(), SetPriority(), and ToTlv().
|
private |
protocol
Definition at line 198 of file ipcs-classifier-record.h.
Referenced by IpcsClassifierRecord(), AddProtocol(), CheckMatchProtocol(), and ToTlv().
|
private |
source address
Definition at line 199 of file ipcs-classifier-record.h.
Referenced by AddSrcAddr(), CheckMatchSrcAddr(), and ToTlv().
|
private |
source port range
Definition at line 201 of file ipcs-classifier-record.h.
Referenced by AddSrcPortRange(), CheckMatchSrcPort(), and ToTlv().
|
private |
TOS high.
Definition at line 196 of file ipcs-classifier-record.h.
Referenced by IpcsClassifierRecord().
|
private |
TOS low.
Definition at line 195 of file ipcs-classifier-record.h.
Referenced by IpcsClassifierRecord().
|
private |
TOS mask.
Definition at line 197 of file ipcs-classifier-record.h.
Referenced by IpcsClassifierRecord().