A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::IpcsClassifierRecord Class Reference

#include <ipcs-classifier-record.h>

+ Collaboration diagram for ns3::IpcsClassifierRecord:

Classes

struct  ipv4Addr
 
struct  PortRange
 

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 (void) const
 
uint16_t GetIndex (void) const
 
uint8_t GetPriority (void) 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 (void) const
 Creates a TLV from this classifier. More...
 

Private Member Functions

bool CheckMatchDstAddr (Ipv4Address dstAddress) const
 
bool CheckMatchDstPort (uint16_t dstPort) const
 
bool CheckMatchProtocol (uint8_t proto) const
 
bool CheckMatchSrcAddr (Ipv4Address srcAddress) const
 
bool CheckMatchSrcPort (uint16_t srcPort) const
 

Private Attributes

uint16_t m_cid
 
std::vector< struct ipv4Addrm_dstAddr
 
std::vector< struct PortRangem_dstPortRange
 
uint16_t m_index
 
uint8_t m_priority
 
std::vector< uint8_t > m_protocol
 
std::vector< struct ipv4Addrm_srcAddr
 
std::vector< struct PortRangem_srcPortRange
 
uint8_t m_tosHigh
 
uint8_t m_tosLow
 
uint8_t m_tosMask
 

Detailed Description

Definition at line 34 of file ipcs-classifier-record.h.

Constructor & Destructor Documentation

ns3::IpcsClassifierRecord::IpcsClassifierRecord ( void  )

Definition at line 28 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.

+ Here is the call graph for this function:

ns3::IpcsClassifierRecord::~IpcsClassifierRecord ( void  )

Definition at line 45 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

Parameters
srcAddressthe source ip address
srcMaskthe mask to apply on the source ip address
dstAddressthe destination ip address
dstMaskthe mask to apply on the destination ip address
srcPortLowthe lower boundary of the source port range
srcPortHighthe higher boundary of the source port range
dstPortLowthe lower boundary of the destination port range
dstPortHighthe higher boundary of the destination port range
protocolthe L4 protocol
prioritythe priority of this classifier

Definition at line 127 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.

+ Here is the call graph for this function:

Member Function Documentation

void ns3::IpcsClassifierRecord::AddDstAddr ( Ipv4Address  dstAddress,
Ipv4Mask  dstMask 
)

add a new destination ip address to the classifier

Parameters
dstAddressthe destination ip address
dstMaskthe mask to apply on the destination ip address

Definition at line 160 of file ipcs-classifier-record.cc.

References ns3::IpcsClassifierRecord::ipv4Addr::Address, m_dstAddr, and ns3::IpcsClassifierRecord::ipv4Addr::Mask.

Referenced by Ns3WimaxCsParamTlvTestCase::DoRun(), and IpcsClassifierRecord().

+ Here is the caller graph for this function:

void ns3::IpcsClassifierRecord::AddDstPortRange ( uint16_t  dstPortLow,
uint16_t  dstPortHigh 
)

add a range of destination port to the classifier

Parameters
dstPortLowthe lower boundary of the destination port range
dstPortHighthe 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 Ns3WimaxCsParamTlvTestCase::DoRun(), and IpcsClassifierRecord().

+ Here is the caller graph for this function:

void ns3::IpcsClassifierRecord::AddProtocol ( uint8_t  proto)

add a protocol to the classifier

Parameters
protothe L4 protocol to add

Definition at line 185 of file ipcs-classifier-record.cc.

References m_protocol.

Referenced by Ns3WimaxCsParamTlvTestCase::DoRun(), and IpcsClassifierRecord().

+ Here is the caller graph for this function:

void ns3::IpcsClassifierRecord::AddSrcAddr ( Ipv4Address  srcAddress,
Ipv4Mask  srcMask 
)

add a new source ip address to the classifier

Parameters
srcAddressthe source ip address
srcMaskthe mask to apply on the source ip address

Definition at line 152 of file ipcs-classifier-record.cc.

References ns3::IpcsClassifierRecord::ipv4Addr::Address, m_srcAddr, and ns3::IpcsClassifierRecord::ipv4Addr::Mask.

Referenced by Ns3WimaxCsParamTlvTestCase::DoRun(), and IpcsClassifierRecord().

+ Here is the caller graph for this function:

void ns3::IpcsClassifierRecord::AddSrcPortRange ( uint16_t  srcPortLow,
uint16_t  srcPortHigh 
)

add a range of source port to the classifier

Parameters
srcPortLowthe lower boundary of the source port range
srcPortHighthe 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 Ns3WimaxCsParamTlvTestCase::DoRun(), and IpcsClassifierRecord().

+ Here is the caller graph for this function:

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

Parameters
srcAddressthe source ip address of the packet
dstAddressthe destination ip address of the packet
srcPortthe source port of the packet
dstPortthe destination port of the packet
protoThe L4 protocol of the packet

Definition at line 295 of file ipcs-classifier-record.cc.

References CheckMatchDstAddr(), CheckMatchDstPort(), CheckMatchProtocol(), CheckMatchSrcAddr(), and CheckMatchSrcPort().

Referenced by ns3::ServiceFlow::CheckClassifierMatch(), and Ns3WimaxCsParamTlvTestCase::DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::IpcsClassifierRecord::CheckMatchDstAddr ( Ipv4Address  dstAddress) const
private

Definition at line 236 of file ipcs-classifier-record.cc.

References ns3::Ipv4Address::CombineMask(), m_dstAddr, and NS_LOG_INFO.

Referenced by CheckMatch().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::IpcsClassifierRecord::CheckMatchDstPort ( uint16_t  dstPort) const
private

Definition at line 266 of file ipcs-classifier-record.cc.

References m_dstPortRange, and NS_LOG_INFO.

Referenced by CheckMatch().

+ Here is the caller graph for this function:

bool ns3::IpcsClassifierRecord::CheckMatchProtocol ( uint8_t  proto) const
private

Definition at line 281 of file ipcs-classifier-record.cc.

References m_protocol, and NS_LOG_INFO.

Referenced by CheckMatch().

+ Here is the caller graph for this function:

bool ns3::IpcsClassifierRecord::CheckMatchSrcAddr ( Ipv4Address  srcAddress) const
private

Definition at line 222 of file ipcs-classifier-record.cc.

References ns3::Ipv4Address::CombineMask(), m_srcAddr, and NS_LOG_INFO.

Referenced by CheckMatch().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::IpcsClassifierRecord::CheckMatchSrcPort ( uint16_t  srcPort) const
private

Definition at line 251 of file ipcs-classifier-record.cc.

References m_srcPortRange, and NS_LOG_INFO.

Referenced by CheckMatch().

+ Here is the caller graph for this function:

uint16_t ns3::IpcsClassifierRecord::GetCid ( void  ) const
Returns
the cid associated with this classifier

Definition at line 211 of file ipcs-classifier-record.cc.

References m_cid.

uint16_t ns3::IpcsClassifierRecord::GetIndex ( void  ) const
Returns
the index of this classifier

Definition at line 206 of file ipcs-classifier-record.cc.

References m_index.

uint8_t ns3::IpcsClassifierRecord::GetPriority ( void  ) const
Returns
the priority of this classifier

Definition at line 216 of file ipcs-classifier-record.cc.

References m_priority.

void ns3::IpcsClassifierRecord::SetCid ( uint16_t  cid)

Set the cid associated to this classifier.

Parameters
cidthe connection identifier

Definition at line 195 of file ipcs-classifier-record.cc.

References m_cid.

void ns3::IpcsClassifierRecord::SetIndex ( uint16_t  index)

Set the index of the classifier.

Parameters
indexthe index of the classifier

Definition at line 200 of file ipcs-classifier-record.cc.

References m_index.

Referenced by Ns3WimaxCsParamTlvTestCase::DoRun().

+ Here is the caller graph for this function:

void ns3::IpcsClassifierRecord::SetPriority ( uint8_t  prio)

Set the priority of this classifier.

Parameters
priothe priority of the classifier

Definition at line 190 of file ipcs-classifier-record.cc.

References m_priority.

Member Data Documentation

uint16_t ns3::IpcsClassifierRecord::m_cid
private

Definition at line 166 of file ipcs-classifier-record.h.

Referenced by GetCid(), IpcsClassifierRecord(), and SetCid().

std::vector<struct ipv4Addr> ns3::IpcsClassifierRecord::m_dstAddr
private

Definition at line 162 of file ipcs-classifier-record.h.

Referenced by AddDstAddr(), CheckMatchDstAddr(), and ToTlv().

std::vector<struct PortRange> ns3::IpcsClassifierRecord::m_dstPortRange
private

Definition at line 164 of file ipcs-classifier-record.h.

Referenced by AddDstPortRange(), CheckMatchDstPort(), and ToTlv().

uint16_t ns3::IpcsClassifierRecord::m_index
private

Definition at line 156 of file ipcs-classifier-record.h.

Referenced by GetIndex(), IpcsClassifierRecord(), and SetIndex().

uint8_t ns3::IpcsClassifierRecord::m_priority
private

Definition at line 155 of file ipcs-classifier-record.h.

Referenced by GetPriority(), IpcsClassifierRecord(), SetPriority(), and ToTlv().

std::vector<uint8_t> ns3::IpcsClassifierRecord::m_protocol
private
std::vector<struct ipv4Addr> ns3::IpcsClassifierRecord::m_srcAddr
private

Definition at line 161 of file ipcs-classifier-record.h.

Referenced by AddSrcAddr(), CheckMatchSrcAddr(), and ToTlv().

std::vector<struct PortRange> ns3::IpcsClassifierRecord::m_srcPortRange
private

Definition at line 163 of file ipcs-classifier-record.h.

Referenced by AddSrcPortRange(), CheckMatchSrcPort(), and ToTlv().

uint8_t ns3::IpcsClassifierRecord::m_tosHigh
private

Definition at line 158 of file ipcs-classifier-record.h.

Referenced by IpcsClassifierRecord().

uint8_t ns3::IpcsClassifierRecord::m_tosLow
private

Definition at line 157 of file ipcs-classifier-record.h.

Referenced by IpcsClassifierRecord().

uint8_t ns3::IpcsClassifierRecord::m_tosMask
private

Definition at line 159 of file ipcs-classifier-record.h.

Referenced by IpcsClassifierRecord().


The documentation for this class was generated from the following files: