# File lib/snmp/pdu.rb, line 313
    def self.decode(pdu_data)
      oid_data, remainder = decode_object_id(pdu_data)
      enterprise = ObjectId.new(oid_data)
      ip_data, remainder = decode_ip_address(remainder)
      agent_addr = IpAddress.new(ip_data)
      generic_trap, remainder = decode_integer(remainder)
      specific_trap, remainder = decode_integer(remainder)
      time_data, remainder = decode_timeticks(remainder)
      timestamp = TimeTicks.new(time_data)
      varbind_list, remainder = VarBindList.decode(remainder)
      assert_no_remainder(remainder)
      SNMPv1_Trap.new(enterprise, agent_addr, generic_trap, specific_trap,
                      timestamp, varbind_list)
    end