code: def from_bytes(self, raw):
          '''Return an Ethernet object reconstructed from raw bytes, or an
          Exception if we can't resurrect the packet.'''
          if len(raw) < Ethernet._MINLEN:
              raise NotEnoughDataError("Not enough bytes ({}) to reconstruct an "
                  "Ethernet object".format(len(raw)))
          dst,src,ethertype = struct.unpack(Ethernet._PACKFMT, 
              raw[:Ethernet._MINLEN])
          self.src = src
          self.dst = dst
          if ethertype <= 1500:
              self.ethertype = EtherType.NoType
          else:
              self.ethertype = ethertype
          return raw[Ethernet._MINLEN:f from_bytes(self, raw):
          '''Return an Ethernet object reconstructed from raw bytes, or an
          Exception if we can't resurrect the packet.'''
          if len(raw) < Ethernet._MINLEN:
              raise NotEnoughDataError("Not enough bytes ({}) to reconstruct an "
                  "Ethernet object".format(len(raw)))
          dst,src,ethertype = struct.unpack(Ethernet._PACKFMT, 
              raw[:Ethernet._MINLEN])
          self.src = src
          self.dst = dst
          if ethertype <= 1500:
              self.ethertype = EtherType.NoType
          else:
              self.ethertype = ethertype
          return raw[Ethernet._MINLEN:]
docs: Return an Ethernet object reconstructed from raw bytes, or an
          Exception if we can't resurrect the packet.