src/devices/mesh/dot11s/peer-link.cc
changeset 4899 50591b95753a
parent 4892 cdd13648776b
child 4919 b8a0476c7e06
equal deleted inserted replaced
4898:b079cb67fda2 4899:50591b95753a
   163 PeerLink::ClearTimingElement ()
   163 PeerLink::ClearTimingElement ()
   164 {
   164 {
   165   m_beaconTiming.ClearTimingElement ();
   165   m_beaconTiming.ClearTimingElement ();
   166 }
   166 }
   167 
   167 
   168 void PeerLink::MLMECancelPeerLink (dot11sReasonCode reason)
   168 void PeerLink::MLMECancelPeerLink (PmpReasonCode reason)
   169 {
   169 {
   170   StateMachine (CNCL,reason);
   170   StateMachine (CNCL,reason);
   171 }
   171 }
   172 
   172 
   173 void PeerLink::MLMEPassivePeerLinkOpen ()
   173 void PeerLink::MLMEPassivePeerLinkOpen ()
   183 void PeerLink::MLMEPeeringRequestReject ()
   183 void PeerLink::MLMEPeeringRequestReject ()
   184 {
   184 {
   185   StateMachine (REQ_RJCT, REASON11S_PEER_LINK_CANCELLED);
   185   StateMachine (REQ_RJCT, REASON11S_PEER_LINK_CANCELLED);
   186 }
   186 }
   187 
   187 
   188 void PeerLink::Close (uint16_t localLinkId, uint16_t peerLinkId, dot11sReasonCode reason)
   188 void PeerLink::Close (uint16_t localLinkId, uint16_t peerLinkId, PmpReasonCode reason)
   189 {
   189 {
   190   if (peerLinkId != 0 && m_localLinkId != peerLinkId)
   190   if (peerLinkId != 0 && m_localLinkId != peerLinkId)
   191     return;
   191     return;
   192   if (m_peerLinkId == 0)
   192   if (m_peerLinkId == 0)
   193     m_peerLinkId = localLinkId;
   193     m_peerLinkId = localLinkId;
   202     m_peerLinkId = localLinkId;
   202     m_peerLinkId = localLinkId;
   203   m_configuration = conf;
   203   m_configuration = conf;
   204   StateMachine (OPN_ACPT);
   204   StateMachine (OPN_ACPT);
   205 }
   205 }
   206 
   206 
   207 void PeerLink::OpenReject (uint16_t localLinkId, IeConfiguration  conf,dot11sReasonCode reason)
   207 void PeerLink::OpenReject (uint16_t localLinkId, IeConfiguration  conf,PmpReasonCode reason)
   208 {
   208 {
   209   if ( m_peerLinkId == 0)
   209   if ( m_peerLinkId == 0)
   210     m_peerLinkId = localLinkId;
   210     m_peerLinkId = localLinkId;
   211   m_configuration = conf;
   211   m_configuration = conf;
   212   StateMachine (OPN_RJCT, reason);
   212   StateMachine (OPN_RJCT, reason);
   226   StateMachine (CNF_ACPT);
   226   StateMachine (CNF_ACPT);
   227 }
   227 }
   228 
   228 
   229 void
   229 void
   230 PeerLink::ConfirmReject (uint16_t localLinkId, uint16_t peerLinkId,
   230 PeerLink::ConfirmReject (uint16_t localLinkId, uint16_t peerLinkId,
   231     IeConfiguration  conf,dot11sReasonCode reason)
   231     IeConfiguration  conf,PmpReasonCode reason)
   232 {
   232 {
   233   if (m_localLinkId != peerLinkId)
   233   if (m_localLinkId != peerLinkId)
   234     return;
   234     return;
   235   if (m_peerLinkId == 0)
   235   if (m_peerLinkId == 0)
   236     m_peerLinkId = localLinkId;
   236     m_peerLinkId = localLinkId;
   258 }
   258 }
   259 //-----------------------------------------------------------------------------
   259 //-----------------------------------------------------------------------------
   260 // Private
   260 // Private
   261 //-----------------------------------------------------------------------------
   261 //-----------------------------------------------------------------------------
   262 void
   262 void
   263 PeerLink::StateMachine (PeerEvent event,dot11sReasonCode reasoncode)
   263 PeerLink::StateMachine (PeerEvent event,PmpReasonCode reasoncode)
   264 {
   264 {
   265   switch (m_state)
   265   switch (m_state)
   266     {
   266     {
   267     case IDLE:
   267     case IDLE:
   268       switch (event)
   268       switch (event)
   504 void PeerLink::ClearHoldingTimer ()
   504 void PeerLink::ClearHoldingTimer ()
   505 {
   505 {
   506   m_holdingTimer.Cancel ();
   506   m_holdingTimer.Cancel ();
   507 }
   507 }
   508 
   508 
   509 void PeerLink::SendPeerLinkClose (dot11sReasonCode reasoncode)
   509 void PeerLink::SendPeerLinkClose (PmpReasonCode reasoncode)
   510 {
   510 {
   511   IePeerManagement peerElement;
   511   IePeerManagement peerElement;
   512   peerElement.SetPeerClose (m_localLinkId, m_peerLinkId, reasoncode);
   512   peerElement.SetPeerClose (m_localLinkId, m_peerLinkId, reasoncode);
   513   m_macPlugin->SendPeerLinkManagementFrame (m_peerAddress, m_assocId, peerElement, m_configuration);
   513   m_macPlugin->SendPeerLinkManagementFrame (m_peerAddress, m_assocId, peerElement, m_configuration);
   514 }
   514 }