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

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

ข้อกำหนด

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

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

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

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

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

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

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

การใช้งาน

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

Config HAL: IOffloadConfig

IOffloadConfig HAL เริ่มการติดตั้งใช้งานการโอนข้อมูลจากการเทอร์มินัล เฟรมเวิร์กจะจัดเตรียมการใช้งาน 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 สำหรับการโอนข้อมูลจากการเทอร์มินัล