NDIS_TASK_OFFLOAD_HEADER
typedef struct _NDIS_TASK_OFFLOAD_HEADER
{
ULONG Version;
ULONG Size;
ULONG Reserved;
UCHAR OffsetFirstTask;
NDIS_ENCAPSULATION_FORMAT EncapsulationFormat;
} NDIS_TASK_OFFLOAD, *PNDIS_TASK_OFFLOAD;
|
NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼´Â ¾î´À ¹Ì´ÏÆ÷Æ®°¡ TCP/IP Àü¼Û °èÃþÀ¸·ÎºÎÅÍ ¿ÀÇÁ·ÎµåµÇ´Â ŽºÅ©µéÀ» ÇàÇÏ´Â º¸³»±â ¿Í ¹Þ±â ÆÐŶµéÀ» À§ÇÑ Ä¸½¶È Æ÷¸ËÀ» ÁöÁ¤ÇÑ´Ù.
¸â¹ö
- Version
- TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ Áö¿øµÈ task-offload ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ °ªÀº NDIS_TASK_OFFLOAD_VERSIONÀ¸·Î ¼³Á¤µÈ´Ù.
- Size
- NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼ÀÇ ¹ÙÀÌÆ® Å©±â¸¦ ÁöÁ¤ÇÑ´Ù. Size´Â sizeof(NDIS_TASK_OFFLOAD_HEADER)·Î ¼³Á¤µÇ°í NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼ÀÇ ¹öÀüÀ» °áÁ¤Çϱâ À§ÇØ »ç¿ëµÈ´Ù.
- Reserved
- À̰ÍÀº ¿¹¾àµÇ¾ú´Ù.
- OffsetFirstTask
- ù NDIS_TASK_OFFLOAD ±¸Á¶Ã¼¿¡ ´ëÇÑ InformationBufferÀÇ ½ÃÀÛÀ¸·ÎºÎÅÍ ¿É¼Â ¹ÙÀÌÆ®¸¦ ÁöÁ¤ÇÑ´Ù. ¹Ì´ÏÆ÷Æ®´Â OID_TCP_TASK_OFFLOADÀÇ Äõ¸®¿¡ ÀÀ´äÇÒ ¶§ ÀÌ °ªÀ» ¼³Á¤Çϱâ À§ÇÑ Ã¥ÀÓÀÌ ÀÖ´Ù. TCP/IP Àü¼Û °èÃþÀº OID_TCP_TASK_OFFLOAD¸¦ ¼³Á¤ÇÒ ¶§ ÀÌ °ªÀ» ¼³Á¤ÇÒ Ã¥ÀÓÀÌ ÀÖ´Ù ¸¸¾à NDIS_TASK_OFFLOAD ±¸Á¶Ã¼µéÀÌ InformationBuffer³»¿¡ ¾ø´Ù¸é, OffsetFirstTask´Â 0À¸·Î ¼³Á¤µÈ´Ù.
- EncapsulationFormat
- ¹Ì´ÏÆ÷Æ®ÀÇ NICÀ» ÅëÇØ TCP/IP Àü¼Û °èÃþÀ¸·ÎºÎÅÍ Àü´ÞµÇ´Â º¸³»±â ȤÀº ¼ö½Å ÆÐŶµéÀ» À§ÇÑ Ä¸½¶È Æ÷¸ËÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ·¯ÇÑ Á¤º¸´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇµÈ NDIS_ENCAPSULATION_FORMAT ±¸Á¶Ã¼·Î Æ÷¸ËȵȴÙ:
typedef struct _NDIS_ENCAPSULATION_FORMAT
{
NDIS_ENCAPSULATION Encapsulation
{
ULONG FixedHeaderSize: 1;
ULONG Reserved: 31;
} Flags;
ULONG EncapsulationHeaderSize;
} NDIS_ENCAPSULATION_FORMAT, *PNDIS_ENCAPSULATION_FORMAT;
ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ´ÙÀ½°ú °°Àº Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.
- Encapsulation
´ÙÀ½°ú °°Àº °ªµéÀÇ Çϳª·Î ĸ½¶È ŸÀÔÀ» ÁöÁ¤ÇÑ´Ù:
- UNSPECIFIED_Encapsulation
- ¾Æ·¡ ¸®½ºÆ®µÈ °Í ¿Ü¿¡ ĸ½¶È ŸÀÔ
- NULL_Encapsulation
- À̰ÍÀº ¿¹¾àµÇ¾ú´Ù.
- IEEE_802_3_Encapsulation
- IEEE 802.3 ĸ½¶È(Ethernet_DIX)
- IEEE_802_5_Encapsulation
- IEEE 802.5 ĸ½¶È
- LLC_SNAP_ROUTED_Encapsulation
- RFC 1483³» ¼³¸íµÈ °Íó·³ ¶ó¿ìÆ®µÇ´Â ÇÁ·ÎÅäÄݵéÀ» À§ÇÑ LLC ĸ½¶È.
¶ÇÇÑ Ethernet LLC/SNAP ĸ½¶È¸¦ °¡¸®Å°±â À§ÇØ »ç¿ëµÈ´Ù.
- LLC_SNAP_BRIDGE_Encapsulation
- À̰ÍÀº ¿¹¾àµÇ¾ú´Ù.
- FixedHeaderSize
- À̰ÍÀº ĸ½¶È Çì´õ°¡ °¢ ÆÐŶ³»¿¡ °°Àº Å©±â¸¦ °¡¸®Å°±â À§ÇØ 1·Î ¼³Á¤µÈ´Ù.
- Reserved
- ¿¹¾àµÇ¾ú´Ù.
- EncapsulationHeaderSize
- ĸ½¶È Çì´õÀÇ Å©±â¸¦ ¹ÙÀÌÆ®·Î ÁöÁ¤ÇÑ´Ù. ĸ½¶ÈµÈ Àü¼Û ÆÐŶÀÇ Ã¹ IP Çì´õ´Â ÆÐŶÀÇ ½ÃÀÛÀ¸·ÎºÎÅÍ ÀÌ·¯ÇÑ ¿É¼ÂÀ¸·Î ½ÃÀÛÇÑ´Ù.
ÁÖ¼®
TCP/IP Àü¼Û °èÃþÀº OID_TCP_TASK_OFFLOAD¸¦ Äõ¸®ÇÒ ¶§, Äõ¸®¿Í °ü·ÃµÈ InformationBuffer¿¡ NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼¸¦ ÃʱâÈÇϰí Àü´ÞÇÑ´Ù. ÀÌ·¯ÇÑ Äõ¸®¸¦ ¼ö½ÅÇÑ ¹Ì´ÏÆ÷Æ®´Â TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ 󸮵Ǵ º¸³»±â ¿Í ¼ö½Å ÆÐŶµéÀ» À§ÇÑ Ä¸½¶È Æ÷¸ËÀ» °áÁ¤Çϱâ À§ÇØ NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼¸¦ Á¶»çÇÑ´Ù. ¹Ì´ÏÆ÷Æ® ȤÀº NICÀº NICÀÌ ÀÌ·¯ÇÑ ÆÐŶµé¿¡¼ offload ŽºÅ©µéÀ» ÇàÇÒ ¼ö ÀÖ´Â ±×·¯ÇÑ ÆÐŶµé¿¡¼ ù IP Çì´õÀÇ ½ÃÀÛ°ú ¸¶Âù°¡Áö·Î ĸ½¶È Çì´õÀÇ Æ÷¸ËÀ» °áÁ¤Çϱâ À§ÇÑ Ä¸½¶È Á¤º¸¸¦ »ç¿ëÇÑ´Ù.
¹Ì´ÏÆ÷Æ®´Â InformatioBuffer¿¡ NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼¿¡ ´ëÇÑ Çϳª ȤÀº ±× ÀÌ»óÀÇ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼µéÀ» Ãß°¡ÇÔÀ¸·Î½á OID_TCP_TASK_OFFLOAD Äõ¸®¿¡ ÀÀ´äÇÑ´Ù. °¢ NDIS_TASK_OFFLOAD ±¸Á¶Ã¼´Â ¹Ì´ÏÆ÷Æ®ÀÇ NIC¿¡ ÀÇÇØ Áö¿øµÈ offload ŽºÅ©¸¦ Ç¥½ÃÇÑ´Ù. ¹Ì´ÏÆ÷Æ®´Â NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼ÀÇ OffsetFirstTask ¸â¹ö¸¦ ù NDIS_TASK_OFFLOAD ±¸Á¶Ã¼¿¡ ´ëÇÑ InformationBufferÀÇ ½ÃÀÛÀ¸·ÎºÎÅÍ ¹ÙÀÌÆ® ¿É¼ÂÀ» ¼³Á¤ÇÑ´Ù. ¹Ì´ÏÆ÷Æ®´Â NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼³»¿¡ ¾î¶² ´Ù¸¥ °ªµéÀ» ¹Ù²ÙÁö ¾Ê´Â´Ù. ¸¸¾à NDIS_TASK_OFFLOAD_HEADER³» ÁöÁ¤µÈ Version, Size, ȤÀº EncapsulationFormat °ªµéÀÌ ¹Ì´ÏÆ÷Æ®¿¡ ¼ö¶ôÇÒ ¼ö ¾ø´Ù¸é, ¹Ì´ÏÆ÷Æ®´Â OID_TCP_TASK_OFFLOAD Äõ¸®¸¦ ½ÇÆÐÇØ¾ß ÇÑ´Ù.
ƯÁ¤ ÇÁ·¹ÀÓ Å¸ÀÔÀ» À§ÇÑ Å½ºÅ© offloadµéÀ» Áö¿øÇϱâ À§ÇØ, ¹Ì´ÏÆ÷Æ®ÀÇ NICÀº Àû´çÇÑ Ä¸½¶È ŸÀÔ È¤Àº ŸÀÔµéÀ» Á¦°øÇØ¾ß ÇÑ´Ù. ´ÙÀ½ Å×À̺íÀº ¾î´À ĸ½¶È ŸÀÔµéÀÌ ¹Ì´ÏÆ÷Æ®°¡ ÁÖ¾îÁø ÇÁ·¹ÀÓ Å¸ÀÔÀ» À§ÇÑ Å½ºÅ©µéÀ» offloadÇÒ ¼ö ÀÖ°Ô Áö¿øÇØ¾ß ÇÏ´ÂÁö¸¦ °¡¸®Å²´Ù.
| Frame Type |
Encapsulation Type |
| Ethernet |
IEEE_802_3_Encapsulation |
| Token Ring |
IEEE_802_5_Encapsulation |
| ATM (CLIP) |
LLC_SNAP_ROUTED_Encapsulation |
| Other |
UNSPECIFIED_Encapsulation |
NICÀº °¢ ĸ½¶È ŸÀÔÀ» À§ÇÑ offload ŽºÅ©µéÀÇ °°Àº ¼³Á¤À» Áö¿øÇÒ Çʿ䰡 ¾ø´Ù. ¿¹¸¦ µé¾î, Ethernet NICÀº IEEE_802_3_Encapsulation ŸÀÔ(Ethernet DIX)À» À§ÇÑ Ã¼Å©¼¶°ú IP Security offloadµéÀ» Áö¿øÇÒ ¼ö ÀÖÁö¸¸ LLC_SNAP_ROUTED_Encapsulation ŸÀÔÀ» À§ÇØ Ã¼Å©¼¶µéÀÌ offloadµÈ´Ù.
NICÀº ¸¸¾à ´ÙÀ½°ú °°À¸¸é Å« TCP ÆÐŶµéÀÇ ÆÄÆíȸ¦ offload ÇÒ ¼ö ÀÖ´Ù.
- NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼³» TCP/IP ÇÁ·ÎÅäÄÝ¿¡ ÀÇÇØ ÁöÁ¤µÈ ĸ½¶È Æ÷¸ËÀ» Áö¿øÇÑ´Ù.
- ȤÀº ƯÁ¤ ĸ½¶È ŸÀÔÀº UNSPECIFIED_EncapsulationÀ̰í EncapsulationHeaderSize°¡ ¹Ì´ÏÆ÷Æ®¿Í NIC¿¡ ÀÇÇØ Á¦°øµÈ ¹Ìµð¾î¸¦ À§ÇÑ Ä¸½¶È Çì´õÀÇ Å©±â¸¦ ¼³Á¤ÇÑ´Ù.
NDIS_TASK_OFFLOAD_HEADER ±¸Á¶Ã¼³» TCP/IP Àü¼Û °èÃþ¿¡ ÀÇÇØ ÁöÁ¤µÈ ĸ½¶È Æ÷¸ËÀº NICÀ» ÅëÇØ TCP/IP Àü¼Û °èÃþÀ¸·ÎºÎÅÍ Àü´ÞµÈ º¸³»±â¿Í ¼ö½Å ÆÐŶµéÀ» Àû¿ëÇÑ´Ù. ´ÜÁö ÇϳªÀÇ Ä¸½¶È Æ÷¸ËÀº NIC´ç ÁÖ¾îÁø ½Ã°£¿¡¼ Áö¿øµÈ´Ù.
¸ðµç NICÀÇ Å½ºÅ© offload ´É·ÂµéÀ» ºÒ°¡´ÉÇÏ°Ô Çϱâ À§ÇØ, TCP/IP Àü¼Û °èÃþÀº InformationBuffer³» NDIS_TASK_OFFLOAD_HEADER ¿¡ Àü´ÞµÇ´Â OID_TCP_TASK_OFFLOAD¸¦ ¼³Á¤ÇÑ´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡, TCP/IP Àü¼Û °èÃþÀº NDIS_TASK_OFFLOAD_HEADERÀÇ OffsetFirstTask ¸â¹ö¸¦ 0À¸·Î ¼³Á¤ÇÑ´Ù.
|