22
Infinite Offload Initial Thoughts on Justification and Design Dave, Michael 05/09/2012

Infinite offload

Embed Size (px)

Citation preview

Page 1: Infinite offload

Infinite Offload

Initial Thoughts on Justification and Design

Dave, Michael

05/09/2012

Page 2: Infinite offload

2QUALCOMM Proprietary

Agenda

• Infinite offload (IOL) concept

• What we know from power and RRC analysis

• Items currently in research

• Assumptions for the design

• Design state charts

Page 3: Infinite offload

3QUALCOMM Proprietary

Infinite offload concept

Pending

connections?

Bringup WiFi

Pending

connections?

Bringup WiFi

Shutdown WiFi

if setup by IOL

Page 4: Infinite offload

4QUALCOMM Proprietary

Power Simulation Plan for RRC

• Important components for IOL

– Simulation parameters for estimating power w/o IOL

– Current draw for each RRC state for simulation based on tcpdump

– MSM8960 MTP data

RRC state Current (mA) Simulated

Timeout

DCH 250 3s

FACH 150 5s

IDLE 4 n/a

Page 5: Infinite offload

5QUALCOMM Proprietary

Power Simulation Plan for WiFi

Mode Current (mA)

Continuous Tx 240

Continuous Rx 42

Idle 0.8

• Important components for IOL simulation

• Scan to quantify overhead when out of coverage

• Use QCT UX traces for coverage trace

• Current draw for AP association

• Transmit/receive current draw

(Example data from Wizard team for 7x30)

• Need to get the above data for 8960

Page 6: Infinite offload

6QUALCOMM Proprietary

RRC analysis

• If and how much data sent in NSRM gate open

• MSM8960 MTP

• Data with WWAN push trigger for gate state

• Application mix used:

– Widgets: CNN, BBC, NY Times, Google Reader

– Non-widgets: Facebook, Foursquare, Gmail, Google+, Groupon, Gtalk,

Tweetcaster, Twitter, WeatherBug, Yelp

• Tsync = 20 min, Topen = 30 sec

– Tclose = 19 min 30 sec, Topen = 30 sec

• Data sets: Date Duration

Mar, 16 10 hrs

Mar, 19 44 hrs

Mar, 26 12 hrs

Page 7: Infinite offload

7QUALCOMM Proprietary

RRC analysis (cont.)

• No Data/RRC when gate opens: 30% of times

– Worth checking whether there’s pending

connections

• One or zero RRC while gate opened

• Bytes sent during gate open

– 115.67 KB avg, 250KB @ 90th percentile

– WiFi must handle, 68Kbps

– IOL doesn’t need BQE

0 100 200 300 4000

0.2

0.4

0.6

0.8

1

Amount of data (KB)

CD

F

Gate open

Gate close

0 2 4 6 8 100

0.2

0.4

0.6

0.8

1

Number of RRC connection

CD

F

Gate open

Gate close

Page 8: Infinite offload

8QUALCOMM Proprietary

Packet Trace Analysis

• Number of gate open windows with LLCs opened during IOL that

would be interrupted if WiFi gets shut down after gate closes:

24 98

15

7 33

20

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

Mar, 16 Mar, 19 Mar, 26

Interrupted gate wnds

Uninterrupted gate wnds

Page 9: Infinite offload

9QUALCOMM Proprietary

Packet Trace Analysis (cont.)

• %% RRC transitions to be offloaded

27 145

38

2 11

11

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

Mar, 16 Mar, 19 Mar, 26

Not offloaded RRC transitions

Offloaded RRC transitions

Page 10: Infinite offload

10QUALCOMM Proprietary

Packet Trace Analysis (cont.)

• %% Total bytes to be offloaded

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

Mar, 16 Mar, 19Mar, 26

Bytes offloaded

Bytes not ofloaded

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

Mar, 16 Mar, 19Mar, 26

DL bytes offloaded

DL bytes not offloaded

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

Mar, 16 Mar, 19Mar, 26

UL bytes offloaded

UL bytes not offloaded

Page 11: Infinite offload

11QUALCOMM Proprietary

Packet Trace Analysis (cont.)

• CDF of last packet delay after gate close

0 500 1000 1500 2000 2500 30000

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Last packet delay after gate close (s)

19-Mar

26-Mar

16-Mar

237

"Sweet" spot

Page 12: Infinite offload

12QUALCOMM Proprietary

Packet Trace Analysis (cont.)

0 5 10 15 20 25 300

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

CD

F

Last packet in gate open window (s)

WiFi can not be shutdown earlier if no traffic after the burst ends

Page 13: Infinite offload

13QUALCOMM Proprietary

Currently researching

• Power consumption analysis

– Compare major factors affecting power consumption between cellular and WiFi

• For 3G, power consumption in IDLE, FACH, DCH states and for transition b/w states

• For WiFi, power consumption for scan, association, continuous Tx and Rx

Page 14: Infinite offload

14QUALCOMM Proprietary

Design Assumptions

• WiFi offload at Tsync trigger when blocked TCP connections or DNS

requests

– Force WiFi up and conduct WQE once the interface is available

– Delay gate open and TCP connect(), getaddrinfo() calls until WLAN_GOOD reached

or Ttest fires

• WLAN_GOOD before Ttest fires

• WLAN is not GOOD when Ttest fires

• If no blocked TCP connections at opening gate do not enable WiFi

– NSRM background event fired shortly before Tsync and released all pending

connections

• If blocked TCP connections, but WiFi enabled at opening gate

– Do not force WiFi scan, use default interface

– Assume NSRM_WLAN_STATE_EVT_MASK bit is disabled in configuration

• Release forcing WiFi up after gate closes if it was set up by IOL

Page 15: Infinite offload

15QUALCOMM Proprietary

NSRM State Chart

SYNC_SWIM_GATE_OPEN

StopTsyncTimer, StopTopenTimer, ReleaseAllConnectio...

ScreenOnInd

SYNC_SWIM_GATE_CLOSEScreenOffInd[USB_DETACHED && Others]

RRCConnectedInd

RRCIdleInd[SCREEN_OFF && Others]

MiscInds

MiscRevInds[SCREEN_OFF && Others]

ScreenOnInd

ScreenOffInd[USB_DETACHED && Others]

RRCConnectedInd

RRCIdleInd[SCREEN_OFF && Others]

MiscInds

MiscRevInds[SCREEN_OFF && Others]

/StartTsyncTimer

ScreenOnInd

SYNC_SWIM_GATE_PERIODIC_OPEN

ScreenOnInd

TSyncExprInd

TOpenExprInd

TSyncExprInd

TOpenExprInd

Others = MIC_OFF && MUSIC_INACTIVE && HDMI_DISCONNECTED && GPS_OFF && HEADSET_OFF

MiscInds = MicOnInd || MusicOnInd || HeadSetPluggedInd || GPSOnInd || USBConnectedInd

See s tate chart for

SYNC_SWIM_GATE_PERIODIC_OPEN

for subs tate transitions

StartTsync periodic timer on default transition to this state

Page 16: Infinite offload

16QUALCOMM Proprietary

Substate Transitions with IOL

SYNC_SWIM_GATE_PERIODIC_OPEN

ReleaseForceWifiUp

CHECK_OFFLOAD

ForceWifiUp, StartTtestTimer

GATE_OPEN_OFFLOAD

StartTopenTimer, ReleaseAllConnections,CancelTtestTimer

WlanGoodIndGATE_OPEN_DEFAULT

StartTopenTimer, ReleaseAllConnections

TtestExprInd

WlanGoodInd

TtestExprInd

TsyncExprInd[BlockedConnections && WifiDisabled]

SYNC_SWIM_GATE_CLOSE

TsyncExprInd[BlockedConnections && WifiDisabled]

TopenExprInd

TsyncExprInd[BlockedConnections && WifiEnabled]

TopenExprInd

TsyncExprInd[BlockedConnections && WifiEnabled]

/StartTsyncTimer

SYNC_SWIM_GATE_OPEN

StopTopenTimer, ReleaseAllConnections

ScreenOnIndScreenOnInd

Start Tsync periodic

timer on 1st entrance

to this state

Page 17: Infinite offload

17QUALCOMM Proprietary

Substate Transitions with IOL

• ForceWifiUp locks WiFi up and flags the SWIM framework to not apply

hysteresis timer to long-lived connections in interface selection

• ReleaseForceWifiUp unlocks WiFi Up if it was locked and flags the SWIM

framework to restore hysteresis timer in interface selection

• IOL should not be applied if WiFi is explicitly disabled by the end user

Page 18: Infinite offload

18QUALCOMM Proprietary

B A C K U P

Page 19: Infinite offload

19QUALCOMM Proprietary

TCP connections blocked, WiFi enabled at opening gate

[WifiState == ENABLED]Stay in WiFi but do not force WLAN scan,

release all connections via default interface

opt

[N_blockedTCPConn != 0]opt

[WifiState == ENABLED]Stay in WiFi but do not force WLAN scan,

release all connections via default interface

opt

[N_blockedTCPConn != 0]opt

:NsrmCSS

Are blocked TCP connections?Are blocked TCP connections?

NsrmGate

State

ReleaseAllConnections(INFINITE_OFFLOAD)

TSyncTimerInd()

TransitionState()

ConnectionsBlockedInd()

StartTopenTimer()

TOpenTimerInd()

TransitionState()

ReleaseAllConnections(INFINITE_OFFLOAD)

TSyncTimerInd()

TransitionState()

ConnectionsBlockedInd()

StartTopenTimer()

TOpenTimerInd()

TransitionState()

WifiService

(?)

Is WiFi enabled?Is WiFi enabled?

Tsync fires

Open

gate

Topen fires

Close

gate

C layer Java layer

Page 20: Infinite offload

20QUALCOMM Proprietary

WiFi enabled at opening gate. WLAN_GOOD before Ttest fires

[WifiState == DISABLED]opt [WifiState == DISABLED]opt

[WiFiState == enabled]opt [WiFiState == enabled]opt

:NsrmCSS

startTtestTimer()

cancelTtestTimer()

startTtestTimer()

cancelTtestTimer()

NsrmGate

State

TransitionState()

TOpenTimerInd()

StartTopenTimer()

ConnectionsBlockedInd()()

TransitionState()

TOpenTimerInd()

StartTopenTimer()

ConnectionsBlockedInd()()

WifiService

(?)

getWifiEnabled()

setWifiEnabled(true)

setWifiEnabled(false)

getWifiEnabled()

setWifiEnabled(true)

setWifiEnabled(false)

setForcedWlanOffloadFlag(true)

:SwimDefaultInterface

SelectorDefaultState

getForcedWlanOffloadFlag()

true

setForcedWlanOffsetFlag(false)

setForcedWlanOffloadFlag(true)

getForcedWlanOffloadFlag()

true

setForcedWlanOffsetFlag(false)

:SwimInterface

Selection

Reselect()

getForcedWlanOffloadFlag()

true

Ignore

hysteresis timer

Reselect()

getForcedWlanOffloadFlag()

true

Ignore

hysteresis timer

:SwimInterface

Manager

Start WQE

WLAN_GOOD_EVENT

Start WQE

WLAN_GOOD_EVENT

:CNE

WLAN Address AvailableWLAN Address Available

Open

gate

Topen fires

Close

gate

C layer Java layer

WQE

successful,

WLAN good

Page 21: Infinite offload

21QUALCOMM Proprietary

WiFi enabled at opening gate. WLAN is not GOOD when Ttest fires

[WifiState == DISABLED]opt [WifiState == DISABLED]opt

:NsrmCSS

startTtestTimer()startTtestTimer()

ConnectionsBlockedInd()

NsrmGate

State

ConnectionsBlockedInd()

StartTopenTimer()

TOpenTimerInd()

TransitionState()

StartTopenTimer()

TOpenTimerInd()

TransitionState()

Is WiFi enabled?

WifiService

(?)

setWifiEnabled(true)

setWifiEnabled(false)

Is WiFi enabled?

setWifiEnabled(true)

setWifiEnabled(false)

setForcedWlanOffloadFlag(true)

:SwimDefaultInterface

SelectorDefaultState

getForcedWlanOffloadFlag()

true

setForcedWlanOffloadFlag(false)

setForcedWlanOffloadFlag(true)

getForcedWlanOffloadFlag()

true

setForcedWlanOffloadFlag(false)

Reselect()

:SwimInterface

Selection

Reselect()

getForcedWlanOffloadFlag()

true

Ignore

hysteresis timer

getForcedWlanOffloadFlag()

true

Ignore

hysteresis timer

:SwimInterface

Manager

Start WQEStart WQE

WLAN Address Available

:CNE

WLAN Address Available

Open

gate

Topen fires

Close

gate

C layer Java layer

Ttest fires

Page 22: Infinite offload

22QUALCOMM Proprietary

No blocked TCP connections at opening gate

[N_blockedTCPConn == 0]opt [N_blockedTCPConn == 0]opt

:NsrmCSS

Are blocked TCP connections?Are blocked TCP connections?

NsrmBackground

EvtHdlr

Background event

NsrmGate

State

ReleaseAllConnections(DEFAULT)

TransitionState()

StartTopenTimer()

TOpenTimerInd()

TransitionState()

TSyncTimerInd()

ReleaseAllConnections(INFINITE_OFFLOAD)

NoConnectionsBlockedInd()

CONNECTIONS_BLOCKED

TransitionState()

Background event

ReleaseAllConnections(DEFAULT)

TransitionState()

StartTopenTimer()

TOpenTimerInd()

TransitionState()

TSyncTimerInd()

ReleaseAllConnections(INFINITE_OFFLOAD)

NoConnectionsBlockedInd()

CONNECTIONS_BLOCKED

TransitionState()

Open

gate

Topen fires

Release all

connections

via default IF

Close

gate

Tsync fires

NO_OP, gate

remains closed,