IPv6 Network Stack Auto-Loading via Kernel Thread
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Information handling systems (IHSs) with limited CPU, memory, and I/O resources face inefficiencies and performance issues due to the manual loading of IPv6 network stacks, which are not always needed, leading to resource wastage and suboptimal performance.
Innovation Solution
An IPv6 module management kernel thread registers with the ethernet driver and kernel socket layer to receive notifications for IPv6 socket library calls and incoming data, determining if an IPv6 stack is required based on specific conditions, such as the presence of an IPv6 EtherType and MAC address, and initializes the IPv6 kernel module only when necessary.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the IPv6 network stack is manually loaded to ensure IPv6 networking capability, then the system meets interoperability requirements and can handle IPv6 traffic, but CPU, memory, and I/O resources are wasted when IPv6 networking is not needed
Solution Approach 1:
The network stack loading state is changed from static (manually loaded and fixed) to dynamic (automatically loaded or unloaded based on real-time detection of IPv6 networking needs). The system continuously monitors for IPv6 traffic and socket library calls, and adjusts the network stack loading state accordingly, allowing the system to adapt its resource consumption to actual networking requirements.
Solution Approach 2:
The system implements automatic detection and loading of the IPv6 network stack through kernel threads that monitor socket library calls and Ethernet traffic. The system serves itself by automatically determining when IPv6 networking is needed and loading the appropriate stack without requiring manual administrator intervention, thereby optimizing resource usage while ensuring capability when needed.
2Loss of energy
If the IPv6 network stack is not loaded to conserve resources, then CPU, memory, and I/O resources are preserved, but the system cannot process IPv6 traffic or meet dual-stack interoperability requirements
Solution Approach 1:
The system performs preliminary actions by registering kernel threads with the Ethernet driver and socket library in advance, before any IPv6 traffic is detected. These kernel threads are prepared and waiting to detect IPv6 networking needs. When IPv6 traffic or socket calls are detected, the pre-prepared detection mechanism can immediately trigger the loading of the IPv6 network stack, ensuring rapid adaptation without resource waste during idle periods.
3Ease of operation
If manual loading of network stacks is used, then administrative control is maintained, but the system lacks automation and cannot respond dynamically to changing networking needs
Solution Approach 1:
The system implements feedback mechanisms through kernel threads that continuously monitor socket library calls and Ethernet traffic for signs of IPv6 networking activity. This feedback loop allows the system to automatically detect when IPv6 networking is needed and trigger the loading of the IPv6 network stack accordingly, providing dynamic automation while maintaining the ability to meet changing networking requirements.
Data Source
AI summary
The disclosure provides a method and system for loading a first and second Internet Protocol network communication stacks in an information handling system (IHS). The method and system include loading the first Internet Protocol network communication stack and creating and registering a module management kernel thread to automatically load the second Internet Protocol network stack only when called upon. The kernel thread registers with the IHS′ kernel socket layer and Ethernet driver to receive notice of calls corresponding to the second Internet Protocol network communication stack. Upon receiving notice, the kernel thread loads the second Internet Protocol network communication stack and subsequently deregisters from the IHS′ kernel socket layer and Ethernet driver.


