src/devices/mesh/dot11s/peer-link-frame.cc
author Pavel Boyko <boyko@iitp.ru>
Mon, 15 Jun 2009 13:10:56 +0400
changeset 5063 97b947e83640
parent 5049 0573d83596f9
child 5129 5688b8da4526
permissions -rw-r--r--
Faker's code review response
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
     2
/* 
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
     3
 * Copyright (c) 2009 IITP RAS
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
     4
 * 
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
     8
 *
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    12
 * GNU General Public License for more details.
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    13
 *
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    17
 * 
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    18
 * Authors: Kirill Andreev <andreev@iitp.ru>
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    19
 */
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    20
4877
f08902c42733 Added a method to find peer link, code cleanup
Kirill Andreev <andreev@iitp.ru>
parents: 4876
diff changeset
    21
#include "peer-link-frame.h"
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
    22
#include "ie-dot11s-peer-management.h"
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    23
#include "ns3/mesh-wifi-interface-mac.h"
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    24
#include "ns3/test.h"
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    25
#include "ns3/packet.h"
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
    26
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    27
namespace ns3 {
4872
ea1bce018a44 Added namespace dot11s
Kirill Andreev <andreev@iitp.ru>
parents: 4871
diff changeset
    28
namespace dot11s {
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    29
NS_OBJECT_ENSURE_REGISTERED (PeerLinkFrameStart);
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    30
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    31
PeerLinkFrameStart::PeerLinkFrameStart ():
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    32
  m_subtype (255),
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
    33
  m_capability (0),
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    34
  m_aid (0),
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    35
  m_rates (SupportedRates()),
5020
79e8178d69eb Mesh ID is made separately from SSID
Kirill Andreev <andreev@iitp.ru>
parents: 5018
diff changeset
    36
  m_meshId (IeMeshId()),
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
    37
  m_config(IeConfiguration ()),
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
    38
  m_reasonCode ((uint16_t)REASON11S_RESERVED)
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    39
{
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    40
}
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    41
void
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    42
PeerLinkFrameStart::SetPlinkFrameSubtype(uint8_t subtype)
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    43
{
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    44
  m_subtype = subtype;
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    45
}
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    46
void
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    47
PeerLinkFrameStart::SetPlinkFrameStart(PeerLinkFrameStart::PlinkFrameStartFields fields)
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    48
{
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    49
  m_subtype = fields.subtype;
4974
8009731514d2 Peer link frame - done
Kirill Andreev <andreev@iitp.ru>
parents: 4973
diff changeset
    50
  m_protocol = fields.protocol;
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
    51
  if(m_subtype != (uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE))
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
    52
    m_capability = fields.capability;
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
    53
  if(m_subtype == (uint8_t)(WifiMeshActionHeader::PEER_LINK_CONFIRM))
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    54
    m_aid = fields.aid;
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
    55
  if(m_subtype != (uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE))
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    56
    m_rates = fields.rates;
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
    57
  if(m_subtype != (uint8_t)(WifiMeshActionHeader::PEER_LINK_CONFIRM))
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    58
    m_meshId = fields.meshId;
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
    59
  if(m_subtype != (uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE))
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
    60
    m_config = fields.config;
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    61
  else
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    62
    m_reasonCode = fields.reasonCode;
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    63
}
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    64
PeerLinkFrameStart::PlinkFrameStartFields
4866
564372fc5491 First management frame goes through new archotecture
Kirill Andreev <andreev@iitp.ru>
parents: 4865
diff changeset
    65
PeerLinkFrameStart::GetFields ()
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    66
{
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    67
  PlinkFrameStartFields retval;
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
    68
  //TODO: protocol version:
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    69
  retval.subtype = m_subtype;
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
    70
  retval.capability = m_capability;
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    71
  retval.aid = m_aid;
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    72
  retval.rates = m_rates;
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    73
  retval.meshId = m_meshId;
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
    74
  retval.config = m_config;
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
    75
  retval.reasonCode = m_reasonCode;
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    76
  return retval;
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    77
}
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    78
TypeId
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    79
PeerLinkFrameStart::GetTypeId ()
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    80
{
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    81
  static TypeId tid =
4920
fbd04c749aaa HwmpRtable unit test + cleanup
Pavel Boyko <boyko@iitp.ru>
parents: 4877
diff changeset
    82
    TypeId ("ns3::dot11s::PeerLinkFrameStart")
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    83
    .SetParent<Header> ()
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    84
    .AddConstructor<PeerLinkFrameStart> ()
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    85
    ;
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    86
  return tid;
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    87
}
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    88
TypeId
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    89
PeerLinkFrameStart::GetInstanceTypeId () const
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    90
{
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    91
  return GetTypeId ();
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    92
}
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    93
void
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    94
PeerLinkFrameStart::Print (std::ostream &os) const
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
    95
{
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    96
  os << "subtype = " << (uint16_t)m_subtype
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
    97
  << "\ncapability = " << m_capability
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    98
  << "\naid = " << (uint16_t)m_aid
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
    99
  << "\nrates = " << m_rates
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
   100
  << "\nmeshId = " << m_meshId
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
   101
  << "\nconfiguration = " << m_config
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
   102
  << "\nreason code = " << m_reasonCode;
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   103
}
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   104
uint32_t
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   105
PeerLinkFrameStart::GetSerializedSize () const
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   106
{
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
   107
  uint32_t size = 3; //Peering protocol
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   108
  NS_ASSERT(m_subtype < 3);
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   109
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE) != m_subtype)
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
   110
    size += 2;  //capability
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   111
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CONFIRM) == m_subtype)
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   112
    size += 2; //AID of remote peer
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   113
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE) != m_subtype)
4975
d01441d16808 Bugfixes
Kirill Andreev <andreev@iitp.ru>
parents: 4974
diff changeset
   114
    size += m_rates.GetSerializedSize ();
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   115
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CONFIRM) != m_subtype)
4975
d01441d16808 Bugfixes
Kirill Andreev <andreev@iitp.ru>
parents: 4974
diff changeset
   116
    size += m_meshId.GetSerializedSize ();
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   117
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE) != m_subtype)
4975
d01441d16808 Bugfixes
Kirill Andreev <andreev@iitp.ru>
parents: 4974
diff changeset
   118
    size += m_config.GetSerializedSize ();
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   119
  else
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   120
    size += 2; //reasonCode
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   121
  return size;
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   122
}
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   123
void
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   124
PeerLinkFrameStart::Serialize (Buffer::Iterator start) const
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   125
{
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   126
  Buffer::Iterator i = start;
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   127
  NS_ASSERT(m_subtype < 3);
4974
8009731514d2 Peer link frame - done
Kirill Andreev <andreev@iitp.ru>
parents: 4973
diff changeset
   128
  m_protocol.Serialize (i);
8009731514d2 Peer link frame - done
Kirill Andreev <andreev@iitp.ru>
parents: 4973
diff changeset
   129
  i.Next (m_protocol.GetSerializedSize ());
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   130
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE) != m_subtype)
5063
97b947e83640 Faker's code review response
Pavel Boyko <boyko@iitp.ru>
parents: 5049
diff changeset
   131
    i.WriteHtolsbU16 (m_capability);
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   132
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CONFIRM) == m_subtype)
5018
aecd3eedd65f Fixed endianess
Kirill Andreev <andreev@iitp.ru>
parents: 4984
diff changeset
   133
    i.WriteHtolsbU16 (m_aid);
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   134
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE) != m_subtype)
4975
d01441d16808 Bugfixes
Kirill Andreev <andreev@iitp.ru>
parents: 4974
diff changeset
   135
    i = m_rates.Serialize (i);
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   136
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CONFIRM) != m_subtype)
5020
79e8178d69eb Mesh ID is made separately from SSID
Kirill Andreev <andreev@iitp.ru>
parents: 5018
diff changeset
   137
  {
79e8178d69eb Mesh ID is made separately from SSID
Kirill Andreev <andreev@iitp.ru>
parents: 5018
diff changeset
   138
    m_meshId.Serialize (i);
79e8178d69eb Mesh ID is made separately from SSID
Kirill Andreev <andreev@iitp.ru>
parents: 5018
diff changeset
   139
    i.Next(m_meshId.GetSerializedSize ());
79e8178d69eb Mesh ID is made separately from SSID
Kirill Andreev <andreev@iitp.ru>
parents: 5018
diff changeset
   140
  }
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   141
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE) != m_subtype)
4975
d01441d16808 Bugfixes
Kirill Andreev <andreev@iitp.ru>
parents: 4974
diff changeset
   142
  {
d01441d16808 Bugfixes
Kirill Andreev <andreev@iitp.ru>
parents: 4974
diff changeset
   143
    m_config.Serialize (i);
d01441d16808 Bugfixes
Kirill Andreev <andreev@iitp.ru>
parents: 4974
diff changeset
   144
    i.Next(m_config.GetSerializedSize ());
d01441d16808 Bugfixes
Kirill Andreev <andreev@iitp.ru>
parents: 4974
diff changeset
   145
  }
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   146
  else
5018
aecd3eedd65f Fixed endianess
Kirill Andreev <andreev@iitp.ru>
parents: 4984
diff changeset
   147
    i.WriteHtolsbU16(m_reasonCode);
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   148
}
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   149
uint32_t
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   150
PeerLinkFrameStart::Deserialize (Buffer::Iterator start)
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   151
{
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   152
  Buffer::Iterator i = start;
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   153
  NS_ASSERT(m_subtype < 3);
4974
8009731514d2 Peer link frame - done
Kirill Andreev <andreev@iitp.ru>
parents: 4973
diff changeset
   154
  m_protocol.Deserialize (i);
8009731514d2 Peer link frame - done
Kirill Andreev <andreev@iitp.ru>
parents: 4973
diff changeset
   155
  i.Next (m_protocol.GetSerializedSize ());
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   156
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE) != m_subtype)
5018
aecd3eedd65f Fixed endianess
Kirill Andreev <andreev@iitp.ru>
parents: 4984
diff changeset
   157
    m_capability = i.ReadLsbtohU16();
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   158
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CONFIRM) == m_subtype)
5018
aecd3eedd65f Fixed endianess
Kirill Andreev <andreev@iitp.ru>
parents: 4984
diff changeset
   159
    m_aid = i.ReadLsbtohU16 ();
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   160
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE) != m_subtype)
4975
d01441d16808 Bugfixes
Kirill Andreev <andreev@iitp.ru>
parents: 4974
diff changeset
   161
    i = m_rates.Deserialize (i);
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   162
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CONFIRM) != m_subtype)
5020
79e8178d69eb Mesh ID is made separately from SSID
Kirill Andreev <andreev@iitp.ru>
parents: 5018
diff changeset
   163
  {
79e8178d69eb Mesh ID is made separately from SSID
Kirill Andreev <andreev@iitp.ru>
parents: 5018
diff changeset
   164
    m_meshId.Deserialize (i);
79e8178d69eb Mesh ID is made separately from SSID
Kirill Andreev <andreev@iitp.ru>
parents: 5018
diff changeset
   165
    i.Next(m_meshId.GetSerializedSize ());
79e8178d69eb Mesh ID is made separately from SSID
Kirill Andreev <andreev@iitp.ru>
parents: 5018
diff changeset
   166
  }
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   167
  if ((uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE) != m_subtype)
4975
d01441d16808 Bugfixes
Kirill Andreev <andreev@iitp.ru>
parents: 4974
diff changeset
   168
  {
d01441d16808 Bugfixes
Kirill Andreev <andreev@iitp.ru>
parents: 4974
diff changeset
   169
    m_config.Deserialize (i);
d01441d16808 Bugfixes
Kirill Andreev <andreev@iitp.ru>
parents: 4974
diff changeset
   170
    i.Next (m_config.GetSerializedSize ());
d01441d16808 Bugfixes
Kirill Andreev <andreev@iitp.ru>
parents: 4974
diff changeset
   171
  }
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   172
  else
5018
aecd3eedd65f Fixed endianess
Kirill Andreev <andreev@iitp.ru>
parents: 4984
diff changeset
   173
    m_reasonCode = i.ReadLsbtohU16();
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   174
  return i.GetDistanceFrom (start);
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   175
}
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   176
bool operator== (const PeerLinkFrameStart & a, const PeerLinkFrameStart & b)
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   177
{
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   178
  return (
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   179
      (a.m_subtype == b.m_subtype) &&
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
   180
      (a.m_capability == b.m_capability) &&
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   181
      (a.m_aid == b.m_aid) &&
4973
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
   182
      (a.m_meshId.IsEqual(b.m_meshId)) &&
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
   183
      (a.m_config == b.m_config) &&
59b050ada622 Restructured peer link frame
Kirill Andreev <andreev@iitp.ru>
parents: 4957
diff changeset
   184
      (a.m_reasonCode == b.m_reasonCode)
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   185
      );
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   186
}
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   187
#ifdef RUN_SELF_TESTS
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   188
/// Built-in self test for PeerLinkFrameStart
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   189
struct PeerLinkFrameStartBist : public Test 
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   190
{
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   191
  PeerLinkFrameStartBist () : Test ("Mesh/802.11s/IE/PeerLinkFrameStart") {}
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   192
  virtual bool RunTests(); 
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   193
};
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   194
/// Test instance
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   195
static PeerLinkFrameStartBist g_PeerLinkFrameStartBist;
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   196
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   197
bool PeerLinkFrameStartBist::RunTests ()
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   198
{
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   199
  bool result (true);
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   200
  {
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   201
    PeerLinkFrameStart a;
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   202
    PeerLinkFrameStart::PlinkFrameStartFields fields;
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   203
    fields.subtype = (uint8_t)(WifiMeshActionHeader::PEER_LINK_OPEN);
5023
fce378307409 Moving to IEEE 802.11s Draft 3.0:
Andrey Mazo <mazo@iitp.ru>
parents: 5020
diff changeset
   204
    fields.capability = 0;
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   205
    fields.aid = 101;
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   206
    fields.reasonCode = 12;
5049
0573d83596f9 Mesh id cosmetic fixes
Kirill Andreev <andreev@iitp.ru>
parents: 5023
diff changeset
   207
    fields.meshId = IeMeshId("qwertyuiop");
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   208
    a.SetPlinkFrameStart(fields);
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   209
    Ptr<Packet> packet = Create<Packet> ();
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   210
    packet->AddHeader (a);
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   211
    PeerLinkFrameStart b;
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   212
    b.SetPlinkFrameSubtype((uint8_t)(WifiMeshActionHeader::PEER_LINK_OPEN));
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   213
    packet->RemoveHeader (b);
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   214
    NS_TEST_ASSERT_EQUAL (a, b);
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   215
  }
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   216
  {
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   217
    PeerLinkFrameStart a;
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   218
    PeerLinkFrameStart::PlinkFrameStartFields fields;
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   219
    fields.subtype = (uint8_t)(WifiMeshActionHeader::PEER_LINK_CONFIRM);
5023
fce378307409 Moving to IEEE 802.11s Draft 3.0:
Andrey Mazo <mazo@iitp.ru>
parents: 5020
diff changeset
   220
    fields.capability = 0;
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   221
    fields.aid = 1234;
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   222
    fields.reasonCode = 12;
5049
0573d83596f9 Mesh id cosmetic fixes
Kirill Andreev <andreev@iitp.ru>
parents: 5023
diff changeset
   223
    fields.meshId = IeMeshId("qwerty");
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   224
    a.SetPlinkFrameStart(fields);
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   225
    Ptr<Packet> packet = Create<Packet> ();
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   226
    packet->AddHeader (a);
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   227
    PeerLinkFrameStart b;
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   228
    b.SetPlinkFrameSubtype((uint8_t)(WifiMeshActionHeader::PEER_LINK_CONFIRM));
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   229
    packet->RemoveHeader (b);
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   230
    NS_TEST_ASSERT_EQUAL (a, b);
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   231
  }
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   232
  {
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   233
    PeerLinkFrameStart a;
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   234
    PeerLinkFrameStart::PlinkFrameStartFields fields;
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   235
    fields.subtype = (uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE);
5023
fce378307409 Moving to IEEE 802.11s Draft 3.0:
Andrey Mazo <mazo@iitp.ru>
parents: 5020
diff changeset
   236
    fields.capability = 0;
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   237
    fields.aid = 10;
5049
0573d83596f9 Mesh id cosmetic fixes
Kirill Andreev <andreev@iitp.ru>
parents: 5023
diff changeset
   238
    fields.meshId = IeMeshId("qqq");
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   239
    fields.reasonCode = 12;
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   240
    a.SetPlinkFrameStart(fields);
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   241
    Ptr<Packet> packet = Create<Packet> ();
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   242
    packet->AddHeader (a);
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   243
    PeerLinkFrameStart b;
4984
77ab6e01a1c3 Outgoing data packets are dropped if there is no active link, MultihopAction
Kirill Andreev <andreev@iitp.ru>
parents: 4975
diff changeset
   244
    b.SetPlinkFrameSubtype((uint8_t)(WifiMeshActionHeader::PEER_LINK_CLOSE));
4957
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   245
    packet->RemoveHeader (b);
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   246
    NS_TEST_ASSERT_EQUAL (a, b);
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   247
  }
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   248
  return result;  
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   249
}
3ce177c38776 Resturctured peer link frame - removed unneeded field "subtype", added unit
Kirill Andreev <andreev@iitp.ru>
parents: 4920
diff changeset
   250
#endif
4872
ea1bce018a44 Added namespace dot11s
Kirill Andreev <andreev@iitp.ru>
parents: 4871
diff changeset
   251
} // namespace dot11s
4865
e331ed5d3662 Added header for peer link frame (first fields without information element)
Kirill Andreev <andreev@iitp.ru>
parents:
diff changeset
   252
} //namespace ns3
4872
ea1bce018a44 Added namespace dot11s
Kirill Andreev <andreev@iitp.ru>
parents: 4871
diff changeset
   253