ns-3 PLC model
 All Classes Functions Variables Enumerations
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
ns3::PLC_Mac Class Reference

#include <plc-mac.h>

Inheritance diagram for ns3::PLC_Mac:
ns3::PLC_ArqMac

List of all members.

Public Member Functions

void SetCcaRequestCallback (PLC_CcaRequestCallback c)
void RequestCca ()
void StartCsmaCa (void)
void RandomBackoffDelay ()
void CcaConfirm (PLC_PhyCcaResult status)
void CsmaCaConfirm (PLC_CsmaCaState state)
virtual void NotifyCcaConfirm (PLC_PhyCcaResult status)=0
virtual void NotifyCsmaCaConfirm (PLC_CsmaCaState state)=0
void SetMacDataCallback (PLC_MacDataCallback c)
void SetTransmissionFailedCallback (PLC_MacTransmissionFailedCallback c)
void SetPromiscuousMacDataCallback (PLC_MacDataCallback c)
void SetMacAcknowledgementCallback (PLC_MacAcknowledgementCallback c)
void SetAddress (Mac48Address addr)
Mac48Address GetAddress (void)
void SetBroadcastAddress (Mac48Address addr)
Mac48Address GetBroadcastAddress (void)
void SetMulticastAddress (Mac48Address addr)
Mac48Address GetMulticastAddress (void)
bool Send (Ptr< Packet > p, Mac48Address dst)
bool SendFrom (Ptr< Packet > p, Mac48Address src, Mac48Address dst)
void SetPhy (Ptr< PLC_Phy > phy)
Ptr< PLC_PhyGetPhy (void)
virtual void NotifyTransmissionEnd (void)=0
void NotifyReceptionEndOk (Ptr< const Packet > p)

Static Public Member Functions

static TypeId GetTypeId (void)

Protected Member Functions

virtual void DoStart (void)
virtual void DoDispose (void)
virtual bool DoSendFrom (Ptr< Packet > p, Mac48Address src, Mac48Address dst)=0
virtual void DoProcess (Ptr< const Packet > p)=0
virtual void DoSetPhy (Ptr< PLC_Phy > phy)=0
virtual Ptr< PLC_PhyDoGetPhy (void)=0

Protected Attributes

Mac48Address m_address
Mac48Address m_broadcast_address
Mac48Address m_multicast_address
bool m_csmaca_active
bool m_promiscuous_mode
uint32_t m_csmaca_attempts
uint8_t m_NB
uint8_t m_BE
uint8_t m_macMinBE
uint8_t m_macMaxBE
uint8_t m_macMaxCSMABackoffs
uint64_t m_aUnitBackoffPeriod
EventId m_requestCCAEvent
EventId m_backoffEndEvent
PLC_MacDataCallback m_data_callback
PLC_MacTransmissionFailedCallback m_transmission_failed_callback
PLC_MacDataCallback m_promiscuous_data_callback
PLC_MacAcknowledgementCallback m_acknowledgement_callback
PLC_CcaRequestCallback m_cca_request_callback

Static Protected Attributes

static std::map< Mac48Address,
Ptr< PLC_Mac > > 
mac_list = std::map<Mac48Address, Ptr<PLC_Mac> > ()

Detailed Description

Abstract base class for PLC MAC layers implementing 48 bit addressing and channel access via CSMA/CA algorithm


Member Function Documentation

Mac48Address ns3::PLC_Mac::GetAddress ( void  )
Returns:
16bit MAC address
Mac48Address ns3::PLC_Mac::GetBroadcastAddress ( void  )
Returns:
16 bit broadcast address
Mac48Address ns3::PLC_Mac::GetMulticastAddress ( void  )
Returns:
16 bit multicast address
void ns3::PLC_Mac::NotifyReceptionEndOk ( Ptr< const Packet >  p)

Notify MAC that PHY successfully finished reception of packet p

Parameters:
pthe received packet
virtual void ns3::PLC_Mac::NotifyTransmissionEnd ( void  ) [pure virtual]

Notify the MAC that the PHY has finished a previously started transmission

Implemented in ns3::PLC_ArqMac.

bool ns3::PLC_Mac::Send ( Ptr< Packet >  p,
Mac48Address  dst 
)

Send packet p to dst

Parameters:
p
dst
Returns:
bool ns3::PLC_Mac::SendFrom ( Ptr< Packet >  p,
Mac48Address  src,
Mac48Address  dst 
)
Parameters:
p
src
dst
Returns:
void ns3::PLC_Mac::SetAddress ( Mac48Address  addr)

Set MAC address

Parameters:
addr16 bit MAC address
void ns3::PLC_Mac::SetBroadcastAddress ( Mac48Address  addr)

Set broadcast address

Parameters:
addr16 bit broadcast address
void ns3::PLC_Mac::SetMacAcknowledgementCallback ( PLC_MacAcknowledgementCallback  c)

Callback indicating that acknowledgement for previously sent data has been received

void ns3::PLC_Mac::SetMacDataCallback ( PLC_MacDataCallback  c)

Callback for data delivery to higher layer

void ns3::PLC_Mac::SetMulticastAddress ( Mac48Address  addr)

Set multicast address

Parameters:
addr16 bit multicast address
void ns3::PLC_Mac::SetPromiscuousMacDataCallback ( PLC_MacDataCallback  c)

Callback for promiscuous data delivery to higher layer

void ns3::PLC_Mac::SetTransmissionFailedCallback ( PLC_MacTransmissionFailedCallback  c)

Callback for failed data transmission


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations