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À¸·Î ¼³Á¤ÇÑ´Ù.