Commit Graph

14054 Commits

Author SHA1 Message Date
Stefano Avallone
05b04146a3 wave, wifi: Rescan python bindings 2019-04-05 14:07:57 +02:00
Stefano Avallone
1565d97cdc Merge branch 'wifi-fixes' into 'master'
Wifi MSDU and MPDU aggregation rework

See merge request nsnam/ns-3-dev!19
2019-04-04 16:15:17 +00:00
Stefano Avallone
a85bcf08f3 wifi: Remove unused functions 2019-04-04 18:01:51 +02:00
Stefano Avallone
6dd9a14f6c wifi: Avoid calling the old MacLow::GetMaxAmpduSize if not necessary 2019-04-04 18:01:51 +02:00
Stefano Avallone
309f33884f wifi: Make use of the new MSDU and MPDU aggregators 2019-04-04 18:01:51 +02:00
Stefano Avallone
70fb8dd5c5 wifi: MacLow makes more use of WifiMacQueueItem 2019-04-04 18:01:51 +02:00
Stefano Avallone
aa998ec202 wifi: Rework MSDU and MPDU aggregation 2019-04-04 18:01:51 +02:00
Stefano Avallone
505e68ddb2 wifi: Make BlockAckManager use WifiMacQueueItem 2019-04-04 18:01:51 +02:00
Stefano Avallone
ded08c6ac0 wifi: Make WifiMacQueueItem more useful 2019-04-04 18:01:51 +02:00
Stefano Avallone
2e370e9085 wifi: Install one MsduAggregator and MpduAggregator per station
Hence, have them stored by the unique MacLow object
2019-04-04 18:01:51 +02:00
Stefano Avallone
7e5917c6d0 wifi: Add a method to get the max PPDU duration 2019-04-04 18:01:51 +02:00
Stefano Avallone
4724112166 wifi: Remove max A-MPDU and A-MSDU size attributes from configuration objects 2019-04-04 18:01:43 +02:00
Stefano Avallone
ae683546e0 wifi: Use std::initializer_list to have a single MostRecent method 2019-04-04 17:41:47 +02:00
Stefano Avallone
040ee16001 wifi: WifiRemoteStationState stores the station capabilities
Also, remove m_ldpc and m_stbc, as they can be obtained via
the VHT capabilities, and m_shortGuardInterval, m_streams and m_greenfield,
as they can be obtained via the HT capabilities.
2019-04-04 17:41:47 +02:00
Alexander Krotov
96ea5eac64 Merge branch 'energy-update' into 'master'
BasicEnergySource::UpdateEnergySource

See merge request nsnam/ns-3-dev!48
2019-04-04 13:16:07 +00:00
Alexander Krotov
99430f7a77 energy: increase tolerance in BasicEnergyUpdateTest 2019-04-04 14:56:02 +03:00
Alexander Krotov
9eacf6bc38 Reduce simulation time to 1 second in AnimationRemainingEnergyTestCase
Otherwise remaining energy goes below zero.
2019-04-04 14:18:54 +03:00
Tom Henderson
c0997bc821 build: (works around #14) add Waf option to run without building 2019-04-03 15:34:32 -07:00
Tom Henderson
5623f8ef82 wifi (fixes #42) Check configured capture window for capture 2019-04-03 14:38:42 -07:00
Alexander Krotov
1f1f10e13a energy: reschedule UpdateEnergySource only if it has already expired
Otherwise, if energy consumption is queried frequently, canceled events are produced.
These events take up memory and slow down the simulator.
2019-04-03 20:03:42 +03:00
Alexander Krotov
9cd441a0b0 energy: update remaining energy even if the simulation has finished
Otherwise consumed energy may be estimated incorrectly if it is queried at the end of simulation.
2019-04-03 19:59:07 +03:00
Peter Barnes
30e214a2c3 Merge branch 'object-factory-check' into 'master'
core: (fixes #43) Check if ObjectFactory has been configured

Closes #43

See merge request nsnam/ns-3-dev!46
2019-04-02 05:05:19 +00:00
Tom Henderson
d4cd46fbfe core: (fixes #43) Check if ObjectFactory has been configured 2019-03-31 09:54:35 -07:00
Gabriel Arrobo
63ce6b6869 lte: Remove test disabled from build for several years 2019-03-30 20:32:57 -07:00
Gabriel Arrobo
dba4333f85 Fix various typos 2019-03-30 20:30:18 -07:00
Sébastien Deronne
7112e718dc wifi: Revert a previous change in IdealWifiManager that is causing much lower performance and irregularities
(cherry picked from commit 8d5cd31b78fb862d7e9280ca3bc7468306ab6168)
2019-03-22 19:49:51 +01:00
Sébastien Deronne
de7fc0096c wifi: Small changes for 11ac/11ax
(cherry picked from commit 0684a0083da975bbe2965a1380064ef263a870b0)
2019-03-22 19:48:46 +01:00
Manuel Requena
5c0b2af65d lte: Fix some logs 2019-03-19 12:55:10 +01:00
Alexander Krotov
3381968389 wifi: connect to MacTxRtsFailed in AthstatsHelper::EnableAthstats
TxRtsFailed trace does not exist
2019-03-14 16:13:48 +03:00
Tom Henderson
2518b032f8 spectrum: rescan API definitions for bindings 2019-03-12 14:41:44 -07:00
Tom Henderson
4e72a8dc7d lte: rescan API definitions for bindings 2019-03-12 14:41:10 -07:00
Alexander Krotov
3ee1512428 core: fix return value documentation for TraceConnect/Disconnect 2019-03-12 16:19:07 +03:00
Natale Patriciello
c8c919d1ba lte: Fix EPC test crashes by removing an assert
That's bad, usually the test must be reworked to not fail the assert.
However, there's no time in fixing a decade-old test, and also the code
worked like this since... forever. My fault was to add the assert in the first
instance, thinking that it would be a good service to the users. I was wrong.
2019-03-12 09:50:38 +01:00
Natale Patriciello
79f127cc3f Merge branch 'link2xt/ns-3-dev-trace-fading-loss-model-spectrum' MR !33
* link2xt/ns-3-dev-trace-fading-loss-model-spectrum:
  Move TraceFadingLossModel from lte to spectrum module

Thanks Alexander
2019-03-11 16:55:08 +01:00
Alexander Krotov
4227f89ec7 Move TraceFadingLossModel from lte to spectrum module 2019-03-11 16:53:08 +01:00
Natale Patriciello
5b5282f066 Merge branch 'lte-p2p-helper-dev', as per MR !38
* lte-p2p-helper-dev:
  lte: fixed reviewer comments for p2p helper
  lte: Make point-to-point-epc-helper inheritable

Thanks Zoraze for the review.
2019-03-11 16:17:07 +01:00
Natale Patriciello
8cbec72511 lte: fixed reviewer comments for p2p helper 2019-03-11 16:16:11 +01:00
Natale Patriciello
dd495a9da8 lte: Make point-to-point-epc-helper inheritable 2019-03-11 12:17:08 +01:00
Tom Henderson
e7c1c390b2 lte: rescan API definitions for bindings 2019-03-09 16:51:03 -08:00
Natale Patriciello
119fde090e Revert "lte: Merge branch 'lte-rlc-fix-pdu-delivering', MR !30"
This reverts commit 50cfb45bd1, reversing
changes made to ae2f33cf73.

The commit is faulty because it does not consider LTE HARQ timings.
So, in LTE, would happen that a packet is delivered even in the case that the
previous packet is under HARQ retransmission.

We will check the standard and see what does apply in this case.

Natale
2019-03-08 11:15:27 +01:00
Natale Patriciello
50cfb45bd1 lte: Merge branch 'lte-rlc-fix-pdu-delivering', MR !30
* lte-rlc-fix-pdu-delivering:
  lte: Fix PDU delivering at the edge of reordering window
2019-03-07 22:07:57 +01:00
Natale Patriciello
c43eaacdf0 lte: Fix PDU delivering at the edge of reordering window
If we update the window and THEN we try to reassemble the PDU,
the frame that at the beginning (I mean the frame thanks to which we entered
the if) was inside the window can be "magically" outside, therefore in
the reassembly function, that segment is not delivered.

When the timer expires, everything is then delivered correctly, but waiting
the timer adds 10 ms of unwanted delay.
2019-03-07 22:05:02 +01:00
Natale Patriciello
ae2f33cf73 lte: merge branch 'lte-nr-prereq-v2' (MR !31)
* lte-nr-prereq-v2:
  spectrum: Add API to retrieve Values size and a single value at any position
  lte: Managing SR at SAP interface level.
  lte: Making SimpleUeComponentCarrierManager inheritable
  lte: Do not assume that the helper is setting all the vectors
  lte: ComponentCarrier subclasses can override Set{Dl,Ul}Bandwidth
  lte: ComponentCarrier with cellId is now ComponentCarrierBaseStation
  lte: LteMacSap constructors for ReceivePduParameters and TxOpportunityParameters created
  lte: (fixed #2893) GetPgw in helpers must be const
  lte: EpsBearer support run-time switching between Rel. 11 and Rel. 15
  lte: Added EpsBearer new values (updating it to Rel. 15)
  lte: EpsBearer uses a lookup table
2019-03-07 22:01:51 +01:00
Natale Patriciello
da994d51c1 spectrum: Add API to retrieve Values size and a single value at any position
Values are stored as std::vector of double, but this vector can't be accessed,
even read-only. With this addition, it is possible to know how many elements
are inside the vector, and also to get a const reference to any element.
2019-03-07 21:59:59 +01:00
Natale Patriciello
05dd0e53d3 lte: Managing SR at SAP interface level.
SR is implemented in the NR module; for the moment, just add the possibility at
the interface level. LTE module will not do anything for the moment, waiting for
a feature addition at a later stage.
2019-03-07 21:59:59 +01:00
Natale Patriciello
4bcf5feb50 lte: Making SimpleUeComponentCarrierManager inheritable
In this way it is possible to write extensions at UE side for deciding what
carrier has to be used.
2019-03-07 21:59:58 +01:00
Natale Patriciello
6435c6d894 lte: Do not assume that the helper is setting all the vectors
In lte-enb-rrc, in a lot of places there is the assumption that
vectors such as m_cphySapProvider, m_cmacSapProvider, m_ffrRrcSapProvider, are
filled by the helper.

That assumption does not hold with external modules: therefore, for a better
coexistence, check the size of these vector before doing any operation.
If there are elements in it, then execute; otherwise, just ignore.
2019-03-07 21:59:58 +01:00
Natale Patriciello
12e7e16754 lte: ComponentCarrier subclasses can override Set{Dl,Ul}Bandwidth
These two methos are changed by the subclass in NR and mmWave module.
2019-03-07 21:59:58 +01:00
Natale Patriciello
90966b9126 lte: ComponentCarrier with cellId is now ComponentCarrierBaseStation
For the NR module we have the necessity of implementing a different type of
ComponentCarrierEnb, which will be ComponentCarrierGnb. But, in some methods of
RRC, it is accepted only a pointer to ComponentCarrierEnb.

To solve this situation, since the only needed method from ComponentCarrierEnb
is GetCellId (), this commit creates a new class (ComponentCarrierBaseStation)
that provides the interface for setting and retrieving the cell id. Then, both
ComponentCarrier{Enb,Gnb} derives from ComponentCarrierBaseStation and everyone
is happy. I had to introduce DynamicCast all over the helper to make everything
working.
2019-03-07 21:59:58 +01:00
Natale Patriciello
8fb0649c2b lte: LteMacSap constructors for ReceivePduParameters and TxOpportunityParameters created
Thanks to constructors, it is easier to create these structs. In particular, code like this

MyAwesomeStruct x;
x.value = 10;
x.another = 200;
...

AMethod (x);

can be replaced with

AMethod (MyAwesomeStruct (10, 200));

Reducing the amount of needed lines.
2019-03-07 21:59:58 +01:00