Loading services/core/java/com/android/server/connectivity/tethering/OffloadController.java +30 −2 Original line number Original line Diff line number Diff line Loading @@ -77,8 +77,36 @@ public class OffloadController { mControlInitialized = mHwInterface.initOffloadControl( mControlInitialized = mHwInterface.initOffloadControl( new OffloadHardwareInterface.ControlCallback() { new OffloadHardwareInterface.ControlCallback() { @Override @Override public void onOffloadEvent(int event) { public void onStarted() { mLog.log("got offload event: " + event); mLog.log("onStarted"); } @Override public void onStoppedError() { mLog.log("onStoppedError"); } @Override public void onStoppedUnsupported() { mLog.log("onStoppedUnsupported"); } @Override public void onSupportAvailable() { mLog.log("onSupportAvailable"); // [1] Poll for statistics and notify NetworkStats // [2] (Re)Push all state: // [a] push local prefixes // [b] push downstreams // [c] push upstream parameters pushUpstreamParameters(); } @Override public void onStoppedLimitReached() { mLog.log("onStoppedLimitReached"); // Poll for statistics and notify NetworkStats } } @Override @Override Loading services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java +31 −4 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.android.internal.util.BitUtils.uint16; import android.hardware.tetheroffload.control.V1_0.IOffloadControl; import android.hardware.tetheroffload.control.V1_0.IOffloadControl; import android.hardware.tetheroffload.control.V1_0.ITetheringOffloadCallback; import android.hardware.tetheroffload.control.V1_0.ITetheringOffloadCallback; import android.hardware.tetheroffload.control.V1_0.NatTimeoutUpdate; import android.hardware.tetheroffload.control.V1_0.NatTimeoutUpdate; import android.hardware.tetheroffload.control.V1_0.OffloadCallbackEvent; import android.os.Handler; import android.os.Handler; import android.os.RemoteException; import android.os.RemoteException; import android.net.util.SharedLog; import android.net.util.SharedLog; Loading Loading @@ -53,7 +54,11 @@ public class OffloadHardwareInterface { private ControlCallback mControlCallback; private ControlCallback mControlCallback; public static class ControlCallback { public static class ControlCallback { public void onOffloadEvent(int event) {} public void onStarted() {} public void onStoppedError() {} public void onStoppedUnsupported() {} public void onSupportAvailable() {} public void onStoppedLimitReached() {} public void onNatTimeoutUpdate(int proto, public void onNatTimeoutUpdate(int proto, String srcAddr, int srcPort, String srcAddr, int srcPort, Loading Loading @@ -108,7 +113,7 @@ public class OffloadHardwareInterface { (controlCb == null) ? "null" (controlCb == null) ? "null" : "0x" + Integer.toHexString(System.identityHashCode(controlCb))); : "0x" + Integer.toHexString(System.identityHashCode(controlCb))); mTetheringOffloadCallback = new TetheringOffloadCallback(mHandler, mControlCallback); mTetheringOffloadCallback = new TetheringOffloadCallback(mHandler, mControlCallback, mLog); final CbResults results = new CbResults(); final CbResults results = new CbResults(); try { try { mOffloadControl.initOffload( mOffloadControl.initOffload( Loading Loading @@ -206,15 +211,37 @@ public class OffloadHardwareInterface { private static class TetheringOffloadCallback extends ITetheringOffloadCallback.Stub { private static class TetheringOffloadCallback extends ITetheringOffloadCallback.Stub { public final Handler handler; public final Handler handler; public final ControlCallback controlCb; public final ControlCallback controlCb; public final SharedLog log; public TetheringOffloadCallback(Handler h, ControlCallback cb) { public TetheringOffloadCallback(Handler h, ControlCallback cb, SharedLog sharedLog) { handler = h; handler = h; controlCb = cb; controlCb = cb; log = sharedLog; } } @Override @Override public void onEvent(int event) { public void onEvent(int event) { handler.post(() -> { controlCb.onOffloadEvent(event); }); handler.post(() -> { switch (event) { case OffloadCallbackEvent.OFFLOAD_STARTED: controlCb.onStarted(); break; case OffloadCallbackEvent.OFFLOAD_STOPPED_ERROR: controlCb.onStoppedError(); break; case OffloadCallbackEvent.OFFLOAD_STOPPED_UNSUPPORTED: controlCb.onStoppedUnsupported(); break; case OffloadCallbackEvent.OFFLOAD_SUPPORT_AVAILABLE: controlCb.onSupportAvailable(); break; case OffloadCallbackEvent.OFFLOAD_STOPPED_LIMIT_REACHED: controlCb.onStoppedLimitReached(); break; default: log.e("Unsupported OffloadCallbackEvent: " + event); } }); } } @Override @Override Loading Loading
services/core/java/com/android/server/connectivity/tethering/OffloadController.java +30 −2 Original line number Original line Diff line number Diff line Loading @@ -77,8 +77,36 @@ public class OffloadController { mControlInitialized = mHwInterface.initOffloadControl( mControlInitialized = mHwInterface.initOffloadControl( new OffloadHardwareInterface.ControlCallback() { new OffloadHardwareInterface.ControlCallback() { @Override @Override public void onOffloadEvent(int event) { public void onStarted() { mLog.log("got offload event: " + event); mLog.log("onStarted"); } @Override public void onStoppedError() { mLog.log("onStoppedError"); } @Override public void onStoppedUnsupported() { mLog.log("onStoppedUnsupported"); } @Override public void onSupportAvailable() { mLog.log("onSupportAvailable"); // [1] Poll for statistics and notify NetworkStats // [2] (Re)Push all state: // [a] push local prefixes // [b] push downstreams // [c] push upstream parameters pushUpstreamParameters(); } @Override public void onStoppedLimitReached() { mLog.log("onStoppedLimitReached"); // Poll for statistics and notify NetworkStats } } @Override @Override Loading
services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java +31 −4 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.android.internal.util.BitUtils.uint16; import android.hardware.tetheroffload.control.V1_0.IOffloadControl; import android.hardware.tetheroffload.control.V1_0.IOffloadControl; import android.hardware.tetheroffload.control.V1_0.ITetheringOffloadCallback; import android.hardware.tetheroffload.control.V1_0.ITetheringOffloadCallback; import android.hardware.tetheroffload.control.V1_0.NatTimeoutUpdate; import android.hardware.tetheroffload.control.V1_0.NatTimeoutUpdate; import android.hardware.tetheroffload.control.V1_0.OffloadCallbackEvent; import android.os.Handler; import android.os.Handler; import android.os.RemoteException; import android.os.RemoteException; import android.net.util.SharedLog; import android.net.util.SharedLog; Loading Loading @@ -53,7 +54,11 @@ public class OffloadHardwareInterface { private ControlCallback mControlCallback; private ControlCallback mControlCallback; public static class ControlCallback { public static class ControlCallback { public void onOffloadEvent(int event) {} public void onStarted() {} public void onStoppedError() {} public void onStoppedUnsupported() {} public void onSupportAvailable() {} public void onStoppedLimitReached() {} public void onNatTimeoutUpdate(int proto, public void onNatTimeoutUpdate(int proto, String srcAddr, int srcPort, String srcAddr, int srcPort, Loading Loading @@ -108,7 +113,7 @@ public class OffloadHardwareInterface { (controlCb == null) ? "null" (controlCb == null) ? "null" : "0x" + Integer.toHexString(System.identityHashCode(controlCb))); : "0x" + Integer.toHexString(System.identityHashCode(controlCb))); mTetheringOffloadCallback = new TetheringOffloadCallback(mHandler, mControlCallback); mTetheringOffloadCallback = new TetheringOffloadCallback(mHandler, mControlCallback, mLog); final CbResults results = new CbResults(); final CbResults results = new CbResults(); try { try { mOffloadControl.initOffload( mOffloadControl.initOffload( Loading Loading @@ -206,15 +211,37 @@ public class OffloadHardwareInterface { private static class TetheringOffloadCallback extends ITetheringOffloadCallback.Stub { private static class TetheringOffloadCallback extends ITetheringOffloadCallback.Stub { public final Handler handler; public final Handler handler; public final ControlCallback controlCb; public final ControlCallback controlCb; public final SharedLog log; public TetheringOffloadCallback(Handler h, ControlCallback cb) { public TetheringOffloadCallback(Handler h, ControlCallback cb, SharedLog sharedLog) { handler = h; handler = h; controlCb = cb; controlCb = cb; log = sharedLog; } } @Override @Override public void onEvent(int event) { public void onEvent(int event) { handler.post(() -> { controlCb.onOffloadEvent(event); }); handler.post(() -> { switch (event) { case OffloadCallbackEvent.OFFLOAD_STARTED: controlCb.onStarted(); break; case OffloadCallbackEvent.OFFLOAD_STOPPED_ERROR: controlCb.onStoppedError(); break; case OffloadCallbackEvent.OFFLOAD_STOPPED_UNSUPPORTED: controlCb.onStoppedUnsupported(); break; case OffloadCallbackEvent.OFFLOAD_SUPPORT_AVAILABLE: controlCb.onSupportAvailable(); break; case OffloadCallbackEvent.OFFLOAD_STOPPED_LIMIT_REACHED: controlCb.onStoppedLimitReached(); break; default: log.e("Unsupported OffloadCallbackEvent: " + event); } }); } } @Override @Override Loading