U •v«`Lã@sŠdZddlmZddlZddlmZddlmZGdd„dejƒZ dZ dZ d Z d d „Z d d „Zdd„Zdd„Zdd„Zdd„Zdd„ZdS)zATA over Ethernet Protocol.é)Úabsolute_importNé©Údpkt)Ú iteritemsc@sleZdZdZdZiZedd„ƒZejdd„ƒZedd„ƒZ e jdd„ƒZ e d d „ƒZ e d d „ƒZ d d„Z dS)ÚAOEzÇATA over Ethernet Protocol. See more about the AOE on https://en.wikipedia.org/wiki/ATA_over_Ethernet Attributes: __hdr__: Header fields of AOE. data: Message data. ))Úver_flÚBé)Úerrr r)ÚmajÚHr)Úminr r)Úcmdr r)ÚtagÚIrcCs |jd?S)Né©r©Úself©rú`/private/var/folders/0j/yyfkg7712236ncpm167bvylc27vst9/T/pip-unpacked-wheel-y9gppv54/dpkt/aoe.pyÚver szAOE.vercCs|d>|jd@B|_dS)Nrér)rrrrrr$scCs |jd@S)NrrrrrrÚfl(szAOE.flcCs|jd@|B|_dS)Néðr)rrrrrr,scCs||j|<dS©N©Ú_cmdsw)ÚclsrZpktclassrrrÚset_cmd0sz AOE.set_cmdcCs |j|Srr)rrrrrÚget_cmd4sz AOE.get_cmdc Csbtj ||¡z0|j|j|jƒ|_t||jjj  ¡|jƒWnt t j tj fk r\YnXdSr)rÚPacketÚunpackrrÚdataÚsetattrÚ __class__Ú__name__ÚlowerÚKeyErrorÚstructÚerrorZ UnpackError)rÚbufrrrr#8s z AOE.unpackN)r'Ú __module__Ú __qualname__Ú__doc__Z__hdr__rÚpropertyrÚsetterrÚ classmethodr r!r#rrrrr s        réc Csˆd}tƒ}t|ƒD]p\}}| |¡rd|t|ƒd… ¡}z(t||dd}t |t||  ¡ƒ¡Wqt t fk r€YqYqXqdS)NZAOE_CMD_Úaoer)Úlevel) ÚglobalsrÚ startswithÚlenr(Ú __import__rr ÚgetattrÚupperÚ ImportErrorÚAttributeError)ÚprefixÚgÚkÚvÚnameÚmodrrrÚ _load_cmdsFs rDcCstjs tƒdS)zAPost-initialization called when all dpkt modules are fully loadedN)rrrDrrrrÚ _mod_initTsrEcCsntƒ}|jdkst‚|jdks"t‚|jdks0t‚|jdks>t‚|jdksLt‚|jdksZt‚t|ƒdksjt‚dS)Nr rs ) rrÚAssertionErrorr r rrrÚbytes©r4rrrÚ test_creationZsrIcCsjtƒ}|jdkst‚|jdks"t‚d|_|jdks6t‚|jdksDt‚d|_|jdksXt‚|jdksft‚dS)Nrréé é é,)rrrFrrrHrrrÚtest_propertiesfsrNcCsNddlm}|dƒ}t|ƒ}|jdks*t‚|dƒ}t|ƒ}|j|jksJt‚dS)Nr)Ú unhexlifyZ10000000000000000000óZt10000000000000000000030a6b190000000045000028941f0000e30699b4232b2400de8e8442abd100500035e12920d9000000229bf0e204656b)ÚbinasciirOrr$rFÚaoeata)rOr,r4rrrÚ test_unpackvs ÿÿ rScCs8ddl}t t¡|jjkst‚t t¡|jj ks4t‚dS)Nr) rrr!Ú AOE_CMD_ATArRZAOEATArFÚ AOE_CMD_CFGZaoecfgZAOECFGrrrrÚ test_cmdsŽsrVcCs8tj}it_tjrt‚dtƒd<tƒtj|ks4t‚dS)NÚFAILZ AOE_CMD_FAIL)rrrFr6rE)Z standard_cmdsrrrÚtest_cmd_loading”s   rX)r/Ú __future__rr*ÚrÚcompatrr"rrTrUZ AOE_FLAG_RSPrDrErIrNrSrVrXrrrrÚs   6