Commit Graph

24 Commits

Author SHA1 Message Date
2d87a50b46 Only process cross traffic simulation if added.
This avoids extra processing overhead when there's no cross traffic
simulation active.

Bug: webrtc:10365
Change-Id: I8c8ae2fb823a47af2406e62ae350ebb551169646
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133620
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27705}
2019-04-23 10:04:07 +00:00
f6e6435ab8 Cleanup in NetworkEmulationManager
This prepares for an upcoming CL removing cross traffic processing
when it's not used.

Bug: webrtc:10365
Change-Id: I7f1f3998f7f38c2a627b888c3db6b0c459d8271d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133485
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27682}
2019-04-18 08:25:50 +00:00
011d3a125e Revert "Cleanup in NetworkEmulationManagerImpl."
This reverts commit aa274d028710cb9d8f1fe3fe5ff68fe7b04e4cf2.

Reason for revert: Depends on reverted CL.

Original change's description:
> Cleanup in NetworkEmulationManagerImpl.
> 
> Bug: webrtc:9883
> Change-Id: I845ecd66ceda9eb8c144e4c10ff374c050413a04
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133344
> Reviewed-by: Artem Titov <titovartem@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27664}

TBR=srte@webrtc.org,titovartem@webrtc.org

Change-Id: Ib62f19e382ee0a43f5892fcc694395adb410c36f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9883
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133484
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27673}
2019-04-17 15:57:01 +00:00
b4b53bd8cc Revert "Only process cross traffic simulation if added."
This reverts commit 491d29448e4a0f501f1ea115b218ed5250fbd3dc.

Reason for revert: Breaks internal iOS waterfall

Original change's description:
> Only process cross traffic simulation if added.
> 
> This avoids extra processing overhead when there's no cross traffic
> simulation active. To allow the use of SendTask, GlobalTimeController
> is adjusted so it always overrides yield behavior.
> 
> Also adding sequence checkers to protect against races on
> read access.
> 
> Bug: webrtc:10365
> Change-Id: I55c6ceb22f36ec19a4fca48cff500905192d1a16
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133167
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Artem Titov <titovartem@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27658}

TBR=nisse@webrtc.org,srte@webrtc.org,titovartem@webrtc.org

Change-Id: I3b176b0ec202a047c4436e3c2136e8170faea41e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10365
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133482
Reviewed-by: Artem Titarenko <artit@google.com>
Commit-Queue: Artem Titarenko <artit@google.com>
Cr-Commit-Position: refs/heads/master@{#27669}
2019-04-17 15:39:10 +00:00
aa274d0287 Cleanup in NetworkEmulationManagerImpl.
Bug: webrtc:9883
Change-Id: I845ecd66ceda9eb8c144e4c10ff374c050413a04
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133344
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27664}
2019-04-17 13:18:10 +00:00
491d29448e Only process cross traffic simulation if added.
This avoids extra processing overhead when there's no cross traffic
simulation active. To allow the use of SendTask, GlobalTimeController
is adjusted so it always overrides yield behavior.

Also adding sequence checkers to protect against races on
read access.

Bug: webrtc:10365
Change-Id: I55c6ceb22f36ec19a4fca48cff500905192d1a16
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133167
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27658}
2019-04-17 10:59:06 +00:00
5d97f552ba Allow injection of time controller to NetworkEmulationManagerImpl.
Bug: webrtc:10365
Change-Id: I6a0e04459f75e8134787e605057dcb03cae55cd8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132780
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27631}
2019-04-15 18:53:24 +00:00
806299e09b Introduce network emulation layer stats API.
Bug: webrtc:10138
Change-Id: I32133cd14c7a1933dcbeaa37d4c9ce6748274ebe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131383
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27588}
2019-04-12 12:08:06 +00:00
0d32a737dc Fix naming in NetworkEmulationManager: endpoint_controller -> endpoint_container
Bug: webrtc:10138
Change-Id: If5d6a9e6b25619278d32477e6c44c8fd5ad0faf2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131331
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27477}
2019-04-08 09:35:39 +00:00
ff39312958 Add ability to have multiple connected remote endpoints
Bug: webrtc:10138
Change-Id: Ic305c2f247588d75b6ced17052ba12d937d1a056
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128864
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27460}
2019-04-05 10:27:14 +00:00
62bb47f5f8 Splits network node into link and router.
Bug: webrtc:9883
Change-Id: I5ec5265be0940922cff311d385f2bf190f731422
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130496
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27418}
2019-04-02 17:15:46 +00:00
4124dab7f3 Processing emulated network on task queue.
The has some benefits:
* We no longer need locks to protect the emulated network node state.
* We only process when there are packets in flight.
* It makes Scenario more similar to network emulation manager.

Bug: webrtc:10365
Change-Id: I8bd1ad1edfb54b047e8109dabd9846ae451cef17
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127548
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27393}
2019-04-01 13:52:49 +00:00
4cd433ed5f Switch routing from dest endpoint id to dest ip in network emulation layer
Bug: webrtc:10138
Change-Id: I8659777820ec7244c1435d71504b0c01fb438192
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130103
Reviewed-by: Yves Gerey <yvesg@google.com>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27386}
2019-04-01 10:04:41 +00:00
e5cc85b5c5 Introduce dynamic endpoints
Bug: webrtc:10138
Change-Id: I7f6922adb93680cada6bea014539fc3089735834
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128480
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27336}
2019-03-28 12:27:41 +00:00
7bf8c7f8cc Add public API for NetworkEmulationManager
Bug: webrtc:10138
Change-Id: Ib5f8e95761813bd117a5e29adbc6822a5c6c73bd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126122
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27146}
2019-03-15 14:50:59 +00:00
208634763a Move creation of rtc::NetworkManager into network emulation layer
Bug: webrtc:10138
Change-Id: I64271fab46a8dccb09f255eb14a4404b0bccdea3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127285
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27097}
2019-03-13 12:52:49 +00:00
fc6ab00a39 Introduce EmulatedRoute
Introduce a handle for route created with network emulation layer,
that can be used to remove it in future properly.

Bug: webrtc:10138
Change-Id: I9fb847caeee24333bafb328727711af005b09224
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127283
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27074}
2019-03-12 13:25:32 +00:00
a268b69037 Rename EndpointConfig into EmulatedEndpointConfig
Also fix minor issues in this class.

Bug: webrtc:10138
Change-Id: Icb3ec7f6296c34da260e701ec51d7b87ce62a4d7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127281
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27073}
2019-03-12 13:24:29 +00:00
aba8dc2a00 Rename EndpointNode into EmulatedEndpoint
This CL is preparation for extraction of public API for network
emulation layer.

Bug: webrtc:10138
Change-Id: Id59204ea20a103dafce4122c59e51a354836c374
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126624
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27050}
2019-03-11 09:47:47 +00:00
4423c36448 Migrate RepeatingTask to take raw pointer to TaskQueueBase instead of TaskQueue
In particular replace call rtc::TaskQueue::Current with TaskQueueBase::Current

Bug: webrtc:10191
Change-Id: I19d42a716d27f0aba087dc70ac65b4ee6249408f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125085
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27005}
2019-03-06 18:44:35 +00:00
0bf4c29852 Add support of auto IP generation in network emulation manager.
Bug: webrtc:10138
Change-Id: If50195ae44fb4d01fae1dd17a8d78a2a23b63b01
Reviewed-on: https://webrtc-review.googlesource.com/c/123191
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26851}
2019-02-26 11:30:31 +00:00
d3666b2d98 Introduce cross traffic for emulated network layer.
This CL contains cross traffic and is a second part of landing
CL https://webrtc-review.googlesource.com/c/src/+/116663

Bug: webrtc:10138
Change-Id: Ibe0614f80127e93ee8a92b85685cacbf079dee21
Reviewed-on: https://webrtc-review.googlesource.com/c/120925
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26649}
2019-02-12 13:18:33 +00:00
b00eb19a0a Removes Start/Stop on network emulation manager.
Bug: None
Change-Id: I4a1d780d909e9abdd6d09e4da3bec52ca274d36b
Reviewed-on: https://webrtc-review.googlesource.com/c/121950
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26631}
2019-02-11 12:24:22 +00:00
0774bd9583 Introduce network layer.
This CL contains network emulation layer and is a first part of landing
CL https://webrtc-review.googlesource.com/c/src/+/116663

Bug: webrtc:10138
Change-Id: If664b21e9df847aef8144d622d08fc7e9f6608da
Reviewed-on: https://webrtc-review.googlesource.com/c/120406
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26470}
2019-01-30 15:45:10 +00:00