|
NDIS DDK Driver Sample for Fasr Forward Path Support
NDIS ŽºÅ© ¿ÀÇÁ·Îµå(task offload) ´É·ÂÀº ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®
À©µµ¿ìÁî 2000 DDK ¹®¼³»¿¡ ¹®¼È µÇ¾î ÀÖ´Ù.
À©µµ¿ìÁî 2000 RC3 DDK ³»¿¡¼ »õ·Î¿î »ùÇà ÄÚµå´Â NDIS ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö³»¿¡¼
Fast Forward Path(FFP)Áö¿øÀ» Ãß°¡ÇÏ´Â ¹æ¹ýÀ» Áõ¸íÇÏ´Â(demonstrates) °ÍÀ»
Á¦°øÇÑ´Ù.
ÀÌ ³»¿ëÀº µå¶óÀ̹ö °³¹ßÀÚ°¡ »ç¿ëÇϱâ À§ÇØ ÀÌ µå¶óÀ̹ö »ùÇðú °ü·ÃµÈ
¹é±×¶ó¿îµå Á¤º¸¸¦ Á¦°øÇÑ´Ù.
FFP´Â ¾î¶»°Ô ¸ÖƼÆ÷Æ® ³×Æ®¿öÅ© ¾î´ðÅ͵é°ú(IEEE 802.3, DIX, TR, Fast-Ethernet,
FDDI, µîµî) ȤÀº µÎ°³ ȤÀº ´õ À¯»çÇÑ ÇϳªÀÇ Æ÷Æ®´Ì ³×Æ®¿öÅ© ¾î´ðÅ͵éÀÌ
À©µµ¿ìÁî 2000 ¿î¿µÃ¼Á¦ ½Ã½ºÅÛ¿¡¼ ¶ó¿ìÆÃ ÄÚµå¿Í °áÇÕÇØ¼ ½Ã½ºÅÛ ÆÛÆ÷¸Õ½º(¼º´É)¸¦
Çâ»ó½Ã۱â À§ÇØ »ç¿ëµÉ ¼ö ÀÖ´ÂÁö¸¦ Á¤ÀÇÇÑ´Ù.
ÆÐŶ Æ÷¿öµù À²Àº ¸ÖƼ Æ÷µå ¾î´ðÅÍ¿¡¼ ȤÀº À¯»çÇÑ ¾î´ðÅ͵鿡¼ È£½ºÆ® ÇÁ·Î¼¼¼¸¦
ÆÐŶµéÀÌ Áö³ªÁö ¾Ê°í ÇϳªÀÇ Æ÷Æ®¿¡¼ ´Ù¸¥ Æ÷Æ®·Î ÆÐŶµéÀ» Æ÷¿öµù ÇÔÀ¸·Î½á ¸Å¿ì
Áõ°¡½Ãų ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î CPU¿¡¼ ÀÎÅÚ¸®ÀüÆ® ¾î´ðÅÍ·Î Æ÷¿öµù °áÁ¤À» ó¸®ÇÏ´Â
ÀÓ¹«(task)ÀÇ ºÎÇϸ¦ Àû°Ô ÇÑ´Ù.
µÎ°³ÀÇ ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º¸¦ °¡Áø ³×Æ®¿öÅ© ¾î´ðÅ͸¦ °í·ÁÇØº¸ÀÚ : NET1 °ú NET2.
ÆÐŶÀÌ NET1¿¡ µµÂøÇÏ°í ³×Æ®¿öÅ© ¾î´ðÅÍ¿¡ ÀÇÇØ NDIS µå¶óÀ̹ö¿¡ Áö½ÃµÇ¾ú´Ù.
±×·¯¸éÀº ÆÐŶÀº ¶ó¿ìÅÍ·Î ÀεðÄÉÀÌÆ®µÈ´Ù.
¶ó¿ìÅÍ´Â ÆÐŶÀ» ºÐ¼®Çϰí(looks at) ÆÐŶ ÇÊÅ͸µ Äڵ带 ÅëÇÏ¿© ±×°ÍÀ» NET2·Î Æ÷¿öµå
ÇÑ´Ù.
³×Æ®¿öÅ© ¾î´ðÅÍ´Â NET2·Î º¸³»Áø ÆÐŶÀÌ Packet Identifier tuple¸¦ Á¶»çÇÔÀ¸·Î½á
NET1¿¡¼ ¼ö½ÅµÈ ÆÐŶ°ú °°Àº Áö¸¦ °áÁ¤ÇÒ ¼ö ÀÖ´Ù.
¸¸¾à ±×·¸´Ù¸éÀº ³×Æ®¿öÅ© ¾î´ðÅÍ´Â ¹ÛÀ¸·Î ³ª°¡´Â ÆÐŶ Çϵå¿þ¾î ÁÖ¼Ò¿Í ÇÔ²²,
Packet Identifier tuple¸¦Fast Forwarding Cache(FFC)¿¡ Ãß°¡ÇÒ ¼ö ÀÖ´Ù.
¿¬¼ÓÇØ¼ ÆÐŶÀÌ NET1¿¡ µµÂøÇÒ ¶§¸¶´Ù, ³×Æ®¿öÅ© ¾î´ðÅÍ´Â FFC¿¡ ¾î¶² Packet
Identifier tuple¿Í ÀÏÄ¡ÇÏ´ÂÁö¸¦ ¾Ë±â À§ÇØ Á¶»çÇÑ´Ù.
¸¸¾à ±×·¸´Ù¸éÀº È£½ºÆ®¸¦ ÀÎÅÍ·´Æ®ÇÏ´Â °Í ¾øÀÌ ÆÐŶÀ» Æ÷¿öµåÇÒ °ÍÀÌ´Ù.
FFP´Â ¶ÇÇÑ ÇϳªÀÇ NDIS ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö¸¦ °¡Áö´Â ¸ÖƼÇà ³×Æ®¿öÅ© ¾î´ðÅ͵éÀ»
°¡·ÎÁú·¯ »ç¿ëµÇ¾îÁú ¼ö ÀÖ´Ù.
ÀÌ·¯ÇÑ ¸ðµ¨¿¡¼, óÀ½ ÆÐŶÀÌ ³×Æ®¿öÅ© ¾î´ðÅÍ #1¿¡ NET1À¸·Î µé¾î¿À°í ³×Æ®¿öÅ©
¾î´ðÅÍ #2·Î NET2·Î Æ÷¿öµåÇÑ´Ù.
°è¼ÓÇØ¼, ³×Æ®¿öÅ© ¾î´ðÅÍ #1Àº È£½ºÆ®¸¦ ÀÎÅÍ·´Æ® ÇÏ´Â °Í ¾øÀÌ °øÀ¯µÈ PC ¹ö½º¸¦
ÅëÇØ ³×Æ®¿öÅ© ¾î´ðÅÍ #2·Î ÆÐŶÀ» Æ÷¿öµåÇÑ´Ù.
ÀÌ·¯ÇÑ ±¸Á¶(scheme)´Â µÎ°³ÀÇ ¾î´ðÅ͵éÀ» ÅëÇØ µé¾î¿À´Â ÆÐŶ ij½¬¸¦ À¯ÁöÇÏ´Â °ÍÀ»
¿ä±¸ÇÑ´Ù.
FFP´Â ¶ÇÇÑ È£½ºÆ® ÇÁ·Î¼¼¼¸¦ ÀÎÅÍ·´Æ® ÇÏ´Â °Í ¾øÀÌ ÆÐŶ ÇÊÅ͸µÀ» ÇÏ´Â µ¥ »ç¿ëµÇ¾î
Áú ¼ö ÀÖ´Ù.
±×µéÀÇÆ÷¿öµù ÆÐ½º¿¡¼ ÆÐŶ ÇÊÅ͵éÀ» °¡Áö´Â ´õ ³ôÀº ÃþÀÇ ÇÁ·ÎÅäÄÝ µå¶óÀ̹öµéÀº
¶ÇÇÑ ¾î´ðÅÍ FFP ij½¬³»¿¡ "DISCARD" ij½¬ ¿£Æ®¸®µéÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.
ij½¬ ³»ÀÇ "DISCARD" tuple°ú µé¾î¿À´Â ÆÐŶÀ» ÀÏÄ¡ÇÏÀÚ¸¶ÀÚ, ÆÐŶÀº
Áï½Ã ±×°ÍÀ» µå¶óÀ̹ö¿¡ ÀεðÄÉÀÌÆ® ÇÏ´Â °Í ¾øÀÌ ³×Æ®¿öÅ© ¾î´ðÅÍ¿¡ ÀÇÇØ ¹«½ÃµÇ¾î
Á®¾ß ÇÑ´Ù.(discard)
¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿¡¼ Å×½ºÆ® ÈÄ ¿ì¸®´Â ¶ó¿ìÆÃ ½Ã³ª¸®¿À¸¦ À§ÇØ
´Ù¸¥ Çϵå¿þ¾î¿Í ¼ÒÇÁÆ®¿þ¾î ÃÖÀûȸ¦ Á¶ÇÕÇÑ FFP Áö¿ø ¾î´ðÅ͵éÀ» »ç¿ëÇßÀ» ¶§
ÆÐŶ Æ÷¿öµù À²ÀÌ 200% Áõ°¡¸¦ º¼ ¼ö ÀÖ¾ú´Ù.(FFP ¾øÀÌ ÃÊ´ç 40K ÆÐŶµéÀÌ
FFP·Î ÃÊ´ç 120K ÆÐŶµé·Î).
NDIS ÀÎÅÍÆäÀ̽º´Â FFP¸¦ Áö¿øÇϱâ À§ÇØ ³íÀÇ µÇ¾ú´Ù.(argumented)
FFP¸¦ Áö¿øÇÏ´Â ³×Æ®¿öÅ© ¾î´ðÅÍ/µå¶óÀ̹ö´Â NDIS¿¡¼ »õ·Î¿î °´Ã¼ ID(OIDs)
¸¦ À§ÇÑ Áö¿øÀ» ½ÇÇàÇØ¾ß ÇÑ´Ù.
FFP¸¦ Áö¿øÇÏ´Â ³×Æ®¿öÅ© ¾î´ðÅ͵éÀº ÀÌ·¯ÇÑ OIDµéÀ» »ç¿ëÇØ¼ NDIS¸¦ ÅëÇØ
ÇÁ·ÎÅäÄÝ ½ºÅõ鿡 ´ëÇÑ Áö¿øÀ» ÀεðÄÉÀÌÆ®ÇÑ´Ù.
ÇÁ·ÎÅäÄÝ µå¶óÀ̹öµéÀº FFP¸¦ Áö¿øÇÏ´Â ³×Æ®¿öÅ© ¾î´ðÅ͵é°ú (NdisRequest¸¦
ÅëÇØ) Åë½ÅÇϱâ À§ÇØ ÀÌ·¯ÇÑ OIDµéÀ» »ç¿ëÇÏ¿©, FFP ÇàÀ§¸¦ Á¦¾îÇÒ ¼ö ÀÖ´Ù.
Call to action for NDIS miniports:
- ¸¸¾à ´ç½ÅÀÌ ³×Æ®¿öÅ© ¾î´ðÅÍ Á¦Á¶ÀÚ¶ó¸é, Çϵå¿þ¾î³»¿¡¼¿Í
NDIS miniport driver ³»¿¡¼ Fast Forward Áö¿øÀ» ½ÇÇàÇØ¶ó(Implement).
RRAS¸¦ »ç¿ëÇÑ small office ¶ó¿ìÅ͵é°ú ÀÎÅÍ³Ý ¿¬°á °øÀ¯(
Internet Connection Sharing)À» Áö¿øÇϴ Ȩ PCÀ» Æ÷ÇÔÇÏ¿©.
- °ü·ÃµÈ NDIS ¹Ì´ÏÆ÷Æ® µå¶óÀ̹ö °³¹ßÀ» ´ëÇÑ ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº
Windows 2000 RC3 DDK¸¦ ºÁ¶ó.
|