การโอนงานไปยังฮาร์ดแวร์การเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ

การออฟโหลดการแชร์อินเทอร์เน็ตช่วยให้อุปกรณ์ประหยัดพลังงานและปรับปรุงประสิทธิภาพได้โดยการ ออฟโหลดการรับส่งข้อมูลการแชร์อินเทอร์เน็ต (ผ่าน USB, Wi-Fi) ไปยังฮาร์ดแวร์ ระบบจะออฟโหลดการรับส่งข้อมูลผ่านการแชร์อินเทอร์เน็ตโดยการระบุเส้นทางโดยตรงระหว่างโมเด็มและอุปกรณ์ต่อพ่วง โดยข้ามโปรเซสเซอร์ของแอป

ข้อกำหนด

ตั้งแต่ Android 8.1 เป็นต้นไป อุปกรณ์จะใช้การส่งต่อข้อมูลผ่านการเชื่อมต่ออินเทอร์เน็ตเพื่อ ส่งต่อ IPv4, IPv6 หรือ IPv4+IPv6 ไปยังฮาร์ดแวร์ได้

ฟีเจอร์การออฟโหลดไม่จำเป็นต้องออฟโหลดแพ็กเก็ตทั้งหมด เฟรมเวิร์กนี้ สามารถจัดการแพ็กเก็ตใดก็ได้ในซอฟต์แวร์ โดยปกติแล้วแพ็กเก็ตควบคุมจะ ได้รับการประมวลผลในซอฟต์แวร์ เนื่องจากพอร์ต IPv4 ใช้ร่วมกันระหว่างการรับส่งข้อมูลผ่านการเชื่อมต่ออินเทอร์เน็ต และการรับส่งข้อมูลของอุปกรณ์ แพ็กเก็ตการตั้งค่า/การเลิกเซสชัน IPv4 (เช่น SYN/SYN+ACK, FIN) จึงต้องได้รับการประมวลผลในซอฟต์แวร์เพื่อให้เคอร์เนลสร้างสถานะโฟลว์ได้ เฟรมเวิร์กมีระนาบควบคุมและเครื่องสถานะ นอกจากนี้ ยังให้ข้อมูลเกี่ยวกับอินเทอร์เฟซ/คำนำหน้าต้นทางและปลายทางแก่ฮาร์ดแวร์ด้วย

สำหรับ IPv4 ฮาร์ดแวร์จะอนุญาตให้แพ็กเก็ตการตั้งค่าเซสชันการแปลที่อยู่เครือข่าย (NAT) ของ IPv4 ไปถึง CPU เคอร์เนลจะสร้างรายการ NAT และการใช้งาน HAL จะสังเกตรายการจากตัวอธิบายไฟล์ที่เฟรมเวิร์กจัดเตรียมให้ และจัดการโฟลว์เหล่านี้ในฮาร์ดแวร์ ซึ่งหมายความว่าการใช้งาน HAL ไม่ ต้องใช้ CAP_NET_* เนื่องจาก HAL จะเปิดซ็อกเก็ต NF_NETLINK_CONNTRACK จากเฟรมเวิร์ก ฮาร์ดแวร์จะส่งการอัปเดตสถานะ NAT สำหรับ โฟลว์ที่ใช้งานอยู่ในปัจจุบันไปยังเฟรมเวิร์กเป็นระยะๆ ซึ่งจะรีเฟรชรายการสถานะการติดตามการเชื่อมต่อเคอร์เนลที่เกี่ยวข้อง

สำหรับ IPv6 เฟรมเวิร์กจะตั้งโปรแกรมรายการคำนำหน้าปลายทาง IPv6 ที่ต้องไม่มีการส่งต่อทราฟิก และสามารถส่งต่อแพ็กเก็ตอื่นๆ ที่เชื่อมต่อได้

สำหรับการบัญชีการใช้ข้อมูล NetworkStatsService การสำรวจการใช้ข้อมูลจะทำให้ เฟรมเวิร์กขอสถิติการเข้าชมจากฮาร์ดแวร์ นอกจากนี้ เฟรมเวิร์กยัง สื่อสารขีดจำกัดการใช้ข้อมูลกับฮาร์ดแวร์ผ่าน HAL

ข้อกำหนดเกี่ยวกับฮาร์ดแวร์

หากต้องการใช้การออฟโหลดการแชร์อินเทอร์เน็ต ฮาร์ดแวร์ต้องสามารถส่งต่อแพ็กเก็ต IP ระหว่างโมเด็มกับ Wi-Fi/USB โดยไม่ต้องส่งการรับส่งข้อมูลผ่าน โปรเซสเซอร์หลัก

การใช้งาน

หากต้องการเปิดใช้ฟีเจอร์การออฟโหลดการแชร์อินเทอร์เน็ต คุณต้องใช้ HAL การกำหนดค่า (IOffloadConfig) และ HAL การควบคุม (IOffloadControl) ทั้ง 2 รายการต่อไปนี้

HAL การกำหนดค่า: IOffloadConfig

HAL จะเริ่มการติดตั้งใช้งานการออฟโหลดการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือIOffloadConfig เฟรมเวิร์กจะให้การติดตั้งใช้งาน HAL ด้วยซ็อกเก็ต NF_NETLINK_CONNTRACK ที่เชื่อมต่อไว้ล่วงหน้า ซึ่งการติดตั้งใช้งานสามารถใช้เพื่อสังเกตโฟลว์ IPv4 ได้ ต้องเร่งเฉพาะโฟลว์ที่ส่งต่อ

HAL การควบคุม: IOffloadControl

HAL IOffloadControl ควบคุมการติดตั้งใช้งานการออฟโหลด ต้อง ใช้วิธีการต่อไปนี้

  • เริ่ม/หยุดฮาร์ดแวร์การออฟโหลด: ใช้ initOffload/stopOffload และยกเว้นที่อยู่ IP ในเครื่องหรือเครือข่ายอื่นๆ จากการออฟโหลดด้วย setLocalPrefixes
  • ตั้งค่าอินเทอร์เฟซต้นทาง ที่อยู่ IPv4 และเกตเวย์ IPv6: ใช้ setUpstreamParameters และกำหนดค่าช่วงที่อยู่ IP ปลายทางด้วย addDownstream/removeDownstream
  • การบันทึกการใช้ข้อมูล: ใช้ getForwardedStats/setDataLimit

นอกจากนี้ HAL ของผู้ให้บริการต้องส่งการเรียกกลับผ่านอินเทอร์เฟซ ITetheringOffloadCallback ซึ่งจะแจ้งให้เฟรมเวิร์กทราบข้อมูลต่อไปนี้

  • เหตุการณ์แบบไม่พร้อมกัน เช่น การเริ่มและหยุดการออฟโหลด (OffloadCallbackEvent)
  • การอัปเดตการหมดเวลา NAT ซึ่งต้องส่งเป็นระยะเพื่อระบุว่าโฟลว์ IPv4 ที่เฉพาะเจาะจงมีการรับส่งข้อมูลและเคอร์เนลต้องไม่ปิด

การตรวจสอบความถูกต้อง

หากต้องการตรวจสอบการติดตั้งใช้งานการออฟโหลดการเชื่อมต่ออินเทอร์เน็ตผ่านโทรศัพท์ ให้ใช้การทดสอบด้วยตนเองหรือแบบอัตโนมัติ เพื่อยืนยันว่าการเชื่อมต่ออินเทอร์เน็ตผ่านโทรศัพท์และฮอตสปอต Wi-Fi ทำงานได้ตามที่คาดไว้ ชุดทดสอบของผู้ให้บริการ (VTS) มีการทดสอบสำหรับ HAL การออฟโหลดการเชื่อมต่ออินเทอร์เน็ต