src/devices/wifi/wifi-default-parameters.h
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Wed, 12 Dec 2007 12:03:38 +0100
changeset 2268 0e57ac711220
parent 2166 00b5eb43dba2
child 2271 85724b1cbb1a
permissions -rw-r--r--
introduce a low latency parameter for rate control algorithms
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2041
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
     2
/*
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
     3
 * Copyright (c) 2007 INRIA
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
     4
 *
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as 
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
     7
 * published by the Free Software Foundation;
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
     8
 *
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
    12
 * GNU General Public License for more details.
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
    13
 *
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
    14
 * You should have received a copy of the GNU General Public License
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
    15
 * along with this program; if not, write to the Free Software
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
    17
 *
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
    18
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
ed946b08a84b add missing copyright header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2004
diff changeset
    19
 */
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    20
#ifndef WIFI_DEFAULT_PARAMETERS_H
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    21
#define WIFI_DEFAULT_PARAMETERS_H
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    22
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
#include <stdint.h>
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    24
#include "ns3/nstime.h"
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    25
#include "ssid.h"
2166
00b5eb43dba2 Improve the accuracy of 802.11a tx duration calculations.
Federico Maguolo <federico.maguolo@dei.unipd.it>
parents: 2083
diff changeset
    26
#include "wifi-phy-standard.h"
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    27
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
namespace ns3 {
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    29
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    30
namespace WifiDefaultParameters {
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    31
2166
00b5eb43dba2 Improve the accuracy of 802.11a tx duration calculations.
Federico Maguolo <federico.maguolo@dei.unipd.it>
parents: 2083
diff changeset
    32
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    33
enum RateControlAlgorithm {
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    34
  CONSTANT_RATE,
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    35
  ARF,
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    36
  AARF,
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    37
  IDEAL
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    38
};
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    39
enum PhyModeParameter {
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    40
  MODE_6MB = 6000000,
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    41
  MODE_9MB = 9000000,
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    42
  MODE_12MB = 12000000,
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    43
  MODE_18MB = 18000000,
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    44
  MODE_24MB = 24000000,
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    45
  MODE_36MB = 36000000,
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    46
  MODE_48MB = 48000000,
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    47
  MODE_54MB = 54000000
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    48
};
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    49
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    50
uint32_t GetMaxSsrc (void);
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    51
uint32_t GetMaxSlrc (void);
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    52
uint32_t GetRtsCtsThreshold (void);
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    53
uint32_t GetFragmentationThreshold (void);
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    54
Time GetApBeaconInterval (void);
2166
00b5eb43dba2 Improve the accuracy of 802.11a tx duration calculations.
Federico Maguolo <federico.maguolo@dei.unipd.it>
parents: 2083
diff changeset
    55
enum WifiPhyStandard GetPhyStandard (void);
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    56
enum RateControlAlgorithm GetRateControlAlgorithm (void);
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    57
enum PhyModeParameter GetConstantDataRate (void);
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    58
enum PhyModeParameter GetConstantCtlRate (void);
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    59
double GetIdealRateControlBer (void);
2004
59eb6fb7b722 control the rate control algorithms with default values.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1964
diff changeset
    60
uint32_t GetArfRateControlSuccessThreshold (void);
59eb6fb7b722 control the rate control algorithms with default values.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1964
diff changeset
    61
uint32_t GetArfRateControlTimerThreshold (void);
59eb6fb7b722 control the rate control algorithms with default values.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1964
diff changeset
    62
uint32_t GetAarfRateControlMinSuccessThreshold (void);
59eb6fb7b722 control the rate control algorithms with default values.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1964
diff changeset
    63
uint32_t GetAarfRateControlMinTimerThreshold (void);
59eb6fb7b722 control the rate control algorithms with default values.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1964
diff changeset
    64
double GetAarfRateControlSuccessK (void);
59eb6fb7b722 control the rate control algorithms with default values.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1964
diff changeset
    65
uint32_t GetAarfRateControlMaxSuccessThreshold (void);
59eb6fb7b722 control the rate control algorithms with default values.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1964
diff changeset
    66
double GetAarfRateControlTimerK (void);
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    67
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    68
double GetPhyEnergyDetectionThresholdDbm (void);
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    69
double GetPhyRxNoiseDb (void);
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    70
double GetPhyTxPowerBaseDbm (void);
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    71
double GetPhyTxPowerEndDbm (void);
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    72
uint32_t GetPhyTxPowerLevels (void);
2071
122c95ffccdd use dB instead of dbm where appropriate
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2041
diff changeset
    73
double GetPhyTxGainDb (void);
122c95ffccdd use dB instead of dbm where appropriate
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2041
diff changeset
    74
double GetPhyRxGainDb (void);
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    75
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    76
Ssid GetSsid (void);
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    77
2268
0e57ac711220 introduce a low latency parameter for rate control algorithms
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2166
diff changeset
    78
bool GetIsLowLatency (void);
0e57ac711220 introduce a low latency parameter for rate control algorithms
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2166
diff changeset
    79
1964
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    80
} // namespace WifiDefaultParameters
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    81
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    82
} // namespace ns3
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    83
041240a915f8 build and link
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    84
#endif /* WIFI_DEFAULT_PARAMETERS_H */