From 124da630e9faa1c920402c56c9c79cd552d261fc Mon Sep 17 00:00:00 2001 From: Wouter de Bie Date: Thu, 4 Apr 2013 08:29:12 +0000 Subject: [PATCH] Release 1.0 Change-Id: If354739a0b661f9d1bd99f5d4084361ccce43df2 --- .gitignore | 8 + LICENSE | 202 + README.rst | 14 + bin/snakebite | 296 + debian/changelog | 5 + debian/compat | 1 + debian/control | 11 + debian/rules | 4 + doc/Makefile | 177 + doc/doctrees/environment.pickle | Bin 0 -> 6774 bytes doc/doctrees/index.doctree | Bin 0 -> 96019 bytes doc/html/.buildinfo | 4 + doc/html/_sources/index.txt | 127 + doc/html/_static/ajax-loader.gif | Bin 0 -> 673 bytes doc/html/_static/basic.css | 540 + doc/html/_static/comment-bright.png | Bin 0 -> 3500 bytes doc/html/_static/comment-close.png | Bin 0 -> 3578 bytes doc/html/_static/comment.png | Bin 0 -> 3445 bytes doc/html/_static/default.css | 256 + doc/html/_static/doctools.js | 235 + doc/html/_static/down-pressed.png | Bin 0 -> 368 bytes doc/html/_static/down.png | Bin 0 -> 363 bytes doc/html/_static/file.png | Bin 0 -> 392 bytes doc/html/_static/jquery.js | 4 + doc/html/_static/minus.png | Bin 0 -> 199 bytes doc/html/_static/plus.png | Bin 0 -> 199 bytes doc/html/_static/pygments.css | 62 + doc/html/_static/searchtools.js | 622 + doc/html/_static/sidebar.js | 159 + doc/html/_static/underscore.js | 31 + doc/html/_static/up-pressed.png | Bin 0 -> 372 bytes doc/html/_static/up.png | Bin 0 -> 363 bytes doc/html/_static/websupport.js | 808 + doc/html/genindex.html | 229 + doc/html/index.html | 593 + doc/html/objects.inv | Bin 0 -> 341 bytes doc/html/py-modindex.html | 112 + doc/html/search.html | 105 + doc/html/searchindex.js | 1 + doc/source/conf.py | 250 + doc/source/index.rst | 128 + protobuf/ClientNamenodeProtocol.proto | 534 + protobuf/IpcConnectionContext.proto | 43 + protobuf/RpcPayloadHeader.proto | 77 + protobuf/hadoop_rpc.proto | 46 + protobuf/hdfs.proto | 389 + setup.py | 27 + spotify/__init__.py | 17 + spotify/snakebite/__init__.py | 14 + spotify/snakebite/channel.py | 408 + spotify/snakebite/client.py | 765 + spotify/snakebite/errors.py | 44 + spotify/snakebite/formatter.py | 187 + spotify/snakebite/glob.py | 40 + spotify/snakebite/logger.py | 58 + .../protobuf/ClientNamenodeProtocol_pb2.py | 4095 +++++ .../protobuf/IpcConnectionContext_pb2.py | 104 + .../protobuf/RpcPayloadHeader_pb2.py | 207 + spotify/snakebite/protobuf/__init__.py | 14 + spotify/snakebite/protobuf/hadoop_rpc_pb2.py | 75 + spotify/snakebite/protobuf/hdfs_pb2.py | 1905 +++ spotify/snakebite/service.py | 41 + test/chgrp_test.py | 43 + test/chmod_test.py | 49 + test/chown_test.py | 57 + test/count_test.py | 43 + test/delete_test.py | 39 + test/df_test.py | 31 + test/du_test.py | 43 + test/glob_test.py | 24 + test/list_test.py | 92 + test/minicluster.py | 187 + test/rename_test.py | 39 + test/test.py | 51 + test/testfiles/test1 | 13921 ++++++++++++++++ test/testfiles/zerofile | 0 test/util.py | 49 + 77 files changed, 28742 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.rst create mode 100755 bin/snakebite create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100755 debian/rules create mode 100644 doc/Makefile create mode 100644 doc/doctrees/environment.pickle create mode 100644 doc/doctrees/index.doctree create mode 100644 doc/html/.buildinfo create mode 100644 doc/html/_sources/index.txt create mode 100644 doc/html/_static/ajax-loader.gif create mode 100644 doc/html/_static/basic.css create mode 100644 doc/html/_static/comment-bright.png create mode 100644 doc/html/_static/comment-close.png create mode 100644 doc/html/_static/comment.png create mode 100644 doc/html/_static/default.css create mode 100644 doc/html/_static/doctools.js create mode 100644 doc/html/_static/down-pressed.png create mode 100644 doc/html/_static/down.png create mode 100644 doc/html/_static/file.png create mode 100644 doc/html/_static/jquery.js create mode 100644 doc/html/_static/minus.png create mode 100644 doc/html/_static/plus.png create mode 100644 doc/html/_static/pygments.css create mode 100644 doc/html/_static/searchtools.js create mode 100644 doc/html/_static/sidebar.js create mode 100644 doc/html/_static/underscore.js create mode 100644 doc/html/_static/up-pressed.png create mode 100644 doc/html/_static/up.png create mode 100644 doc/html/_static/websupport.js create mode 100644 doc/html/genindex.html create mode 100644 doc/html/index.html create mode 100644 doc/html/objects.inv create mode 100644 doc/html/py-modindex.html create mode 100644 doc/html/search.html create mode 100644 doc/html/searchindex.js create mode 100644 doc/source/conf.py create mode 100644 doc/source/index.rst create mode 100644 protobuf/ClientNamenodeProtocol.proto create mode 100644 protobuf/IpcConnectionContext.proto create mode 100644 protobuf/RpcPayloadHeader.proto create mode 100644 protobuf/hadoop_rpc.proto create mode 100644 protobuf/hdfs.proto create mode 100755 setup.py create mode 100644 spotify/__init__.py create mode 100644 spotify/snakebite/__init__.py create mode 100644 spotify/snakebite/channel.py create mode 100644 spotify/snakebite/client.py create mode 100644 spotify/snakebite/errors.py create mode 100644 spotify/snakebite/formatter.py create mode 100644 spotify/snakebite/glob.py create mode 100644 spotify/snakebite/logger.py create mode 100644 spotify/snakebite/protobuf/ClientNamenodeProtocol_pb2.py create mode 100644 spotify/snakebite/protobuf/IpcConnectionContext_pb2.py create mode 100644 spotify/snakebite/protobuf/RpcPayloadHeader_pb2.py create mode 100644 spotify/snakebite/protobuf/__init__.py create mode 100644 spotify/snakebite/protobuf/hadoop_rpc_pb2.py create mode 100644 spotify/snakebite/protobuf/hdfs_pb2.py create mode 100644 spotify/snakebite/service.py create mode 100644 test/chgrp_test.py create mode 100644 test/chmod_test.py create mode 100644 test/chown_test.py create mode 100644 test/count_test.py create mode 100644 test/delete_test.py create mode 100644 test/df_test.py create mode 100644 test/du_test.py create mode 100644 test/glob_test.py create mode 100644 test/list_test.py create mode 100644 test/minicluster.py create mode 100644 test/rename_test.py create mode 100755 test/test.py create mode 100644 test/testfiles/test1 create mode 100644 test/testfiles/zerofile create mode 100644 test/util.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..96a6cb4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +*.pyc +*~ +.nicesetup +*.rej +*.orig +*/build +build/ +snakebite.egg-info/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..95c6a2b --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2012 Spotify AB + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..680bfad --- /dev/null +++ b/README.rst @@ -0,0 +1,14 @@ +========= +Snakebite +========= +Snakebite is a pure python HDFS client, that uses protobuf for communicating +with the NameNode and comes in the form of a library and a command line interface. +Currently, snakebite only supports actions that only involve the Namenode. + +Snakebite uses python-protobuf 2.3, since that's what is available at Spotify. + +Snakebite has been tested against Cloudera CDH4.1.3 (hadoop 2.0.0) + +For more information and documentation, please see /doc/html + +Copyright 2013 Spotify AB diff --git a/bin/snakebite b/bin/snakebite new file mode 100755 index 0000000..7bf25f5 --- /dev/null +++ b/bin/snakebite @@ -0,0 +1,296 @@ +#!/usr/bin/env python +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +import optparse +import sys +import logging +import os +import json +import xml.etree.ElementTree as ET +from urlparse import urlparse + +from spotify.snakebite.client import Client +from spotify.snakebite.errors import FileNotFoundException +from spotify.snakebite.errors import DirectoryException +from spotify.snakebite.errors import FileException +from spotify.snakebite.formatter import formatListing +from spotify.snakebite.formatter import formatResults +from spotify.snakebite.formatter import formatCounts +from spotify.snakebite.formatter import formatFsStats +from spotify.snakebite.formatter import formatStat +from spotify.snakebite.formatter import formatDu + +log = logging.getLogger(__name__) + + +def exitError(error): + print str(error) + sys.exit(-1) + + +class MyParser(optparse.OptionParser): + def format_epilog(self, formatter): + return self.epilog + + +class Commands(object): + methods = {} + + +def command(args="", descr="", allowed_opts=""): + def wrap(f): + Commands.methods[f.func_name] = {"method": f, "args": args, "descr": descr, "allowed_opts": allowed_opts} + return wrap + + +class SnakebiteCli(object): + def __init__(self): + (self.cmd, self.opts, self.args) = self._parseOpts() + self._readConfig() + self._setupClient(self.opts.namenode, self.opts.port) + self._setupLogging() + + def _readConfig(self): + ''' Try to read the config from ~/.snakebiterc and if that doesn't exist, check $HADOOP_HOME/core-site.xml + and create a ~/.snakebiterc from that. + ''' + config_file = os.path.join(os.path.expanduser('~'), '.snakebiterc') + if os.path.exists(config_file): + config = json.loads(open(os.path.join(os.path.expanduser('~'), '.snakebiterc')).read()) + self.opts.namenode = config['namenode'] + self.opts.port = config['port'] + else: + hdfs_conf = os.path.join(os.environ['HADOOP_HOME'], 'conf', 'core-site.xml') + if os.path.exists(hdfs_conf): + tree = ET.parse(hdfs_conf) + root = tree.getroot() + for p in root.findall("./property"): + if p.findall('name')[0].text == 'fs.defaultFS': + parse_result = urlparse(p.findall('value')[0].text) + + # Set config + self.opts.namenode = parse_result.hostname + self.opts.port = parse_result.port + + # Write config to file + f = open(config_file, "w") + f.write(json.dumps({"namenode": self.opts.namenode, "port": self.opts.port})) + f.close() + + def _parseOpts(self): + usage = "usage: %prog [options] cmd [args]" + + epilog = "\nCommands:\n" + epilog += "\n".join(sorted([" %-30s %s" % ("%s %s" % (k, v['args']), v['descr']) for k, v in Commands.methods.iteritems()])) + epilog += "\n\n" + + parser = MyParser(usage=usage, epilog=epilog) + self.parser = parser + # Generic options + parser.add_option('-D', '--debug', help='Show debug information', + action='store_true') + parser.add_option('-j', '--json', help='JSON output', action='store_true') + parser.add_option('-n', '--namenode', help='namenode host (default: %default)', + default='localhost') + parser.add_option('-p', '--port', help='namenode RPC port (default: %default)', + default=54310) + + parser.add_option('-R', '--recurse', help='recurse into subdirectories', + action='store_true') + parser.add_option('-d', '--directory', help='show only the path and no children / check if path is a dir', + action='store_true') + parser.add_option('-H', '--human', help='human readable output', + action='store_true') + parser.add_option('-s', '--summary', help='print summarized output', + action='store_true') + parser.add_option('-z', '--zero', help='check for zero length', + action='store_true') + parser.add_option('-e', '--exists', help='check if file exists', + action='store_true') + + opts, args = parser.parse_args() + + if len(args) == 0: + parser.print_help() + sys.exit(-1) + + command = args.pop(0) + + return (command, opts, args) + + def _setupLogging(self): + if self.opts.debug: + loglevel = logging.DEBUG + else: + loglevel = logging.INFO + logging.basicConfig(level=loglevel) + + def _setupClient(self, host, port): + self.client = Client(host, port) + + def execute(self): + if not Commands.methods.get(self.cmd): + self.parser.print_help() + sys.exit(-1) + try: + return Commands.methods[self.cmd]['method'](self) + except FileNotFoundException, e: + exitError(e) + except DirectoryException, e: + exitError(e) + except FileException, e: + exitError(e) + + @command(args="[path]", descr="list a path", allowed_opts=["d", "R"]) + def ls(self): + # Mimicking hadoop client behaviour + if self.opts.directory: + include_children = False + recurse = False + include_toplevel = True + else: + include_children = True + include_toplevel = False + recurse = self.opts.recurse + + listing = self.client.ls(self.args, recurse=recurse, + include_toplevel=include_toplevel, + include_children=include_children) + + print formatListing(listing, json_output=self.opts.json, + human_readable=self.opts.human) + + @command(args="[paths]", descr="create directories") + def mkdir(self): + creations = self.client.mkdir(self.args) + print formatResults(creations, json_output=self.opts.json) + + @command(args="[paths]", descr="create directories and their parents") + def mkdirp(self): + creations = self.client.mkdir(self.args, create_parent=True) + print formatResults(creations, json_output=self.opts.json) + + @command(args=" [paths]", descr="change owner", allowed_opts=["R"]) + def chown(self): + owner = self.args.pop(0) + try: + mods = self.client.chown(self.args, owner, recurse=self.opts.recurse) + print formatResults(mods, json_output=self.opts.json) + except FileNotFoundException, e: + exitError(e) + + @command(args=" [paths]", descr="change file mode (octal)", allowed_opts=["R"]) + def chmod(self): + mode = int(self.args.pop(0), 8) + mods = self.client.chmod(self.args, mode, recurse=self.opts.recurse) + print formatResults(mods, json_output=self.opts.json) + + @command(args=" [paths]", descr="change group", allowed_opts=["R"]) + def chgrp(self): + grp = self.args.pop(0) + mods = self.client.chgrp(self.args, grp, recurse=self.opts.recurse) + print formatResults(mods, json_output=self.opts.json) + + @command(args="[paths]", descr="display stats for paths") + def count(self): + counts = self.client.count(self.args) + print formatCounts(counts, json_output=self.opts.json) + + @command(args="", descr="display fs stats") + def df(self): + result = self.client.df() + print formatFsStats(result, json_output=self.opts.json, + human_readable=self.opts.human) + + @command(args="[paths]", descr="display disk usage statistics", allowed_opts=["s"]) + def du(self): + if self.opts.summary: + include_children = False + include_toplevel = True + else: + include_children = True + include_toplevel = False + result = self.client.du(self.args, include_toplevel=include_toplevel, include_children=include_children) + print formatDu(result, json_output=self.opts.json, human_readable=self.opts.human) + + @command(args="[paths] dst", descr="move paths to destination") + def mv(self): + paths = self.args[:-1] + dst = self.args[-1] + result = self.client.rename(paths, dst) + print formatResults(result) + + @command(args="[paths]", descr="remove paths", allowed_opts=["R"]) + def rm(self): + result = self.client.delete(self.args, recurse=self.opts.recurse) + print formatResults(result) + + @command(args="[paths]", descr="creates a file of zero length") + def touchz(self): + result = self.client.touchz(self.args) + print formatResults(result) + + @command(args="", descr="show server information") + def serverdefaults(self): + result = self.client.serverdefaults() + print result + + @command(args="[dirs]", descr="delete a directory") + def rmdir(self): + result = self.client.rmdir(self.args) + print formatResults(result) + + @command(args=" [paths]", descr="set replication factor", allowed_opts=['R']) + def setrep(self): + rep_factor = int(self.args.pop(0)) + result = self.client.setrep(self.args, rep_factor, recurse=self.opts.recurse) + print formatResults(result) + + @command(args="", descr="show cmd usage") + def usage(self): + if len(self.args) != 1: + self.parser.print_help() + sys.exit(-1) + sub_cmd = self.args[0] + + cmd_entry = Commands.methods.get(sub_cmd) + if not cmd_entry: + self.parser.print_help() + sys.exit(-1) + + cmd_args = [] + allowed_opts = cmd_entry.get('allowed_opts') + if allowed_opts: + cmd_args += ["[-%s]" % o for o in allowed_opts] + args = cmd_entry.get('args') + if args: + cmd_args.append(args) + + print "snakebite [general options] %s %s" % (sub_cmd, " ".join(cmd_args)) + + @command(args="[paths]", descr="stat information") + def stat(self): + print formatStat(self.client.stat(self.args)) + + @command(args="path", descr="test a path", allowed_opts=['d', 'z', 'e']) + def test(self): + path = self.args[0] + if self.client.test(path, exists=self.opts.exists, directory=self.opts.directory, zero_length=self.opts.zero): + sys.exit(0) + else: + sys.exit(1) + +cliclient = SnakebiteCli() +cliclient.execute() diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..f5d1c16 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +snakebite (1.0.0) unstable; urgency=low + + * Initial release. + + -- Wouter de Bie Thu, 04 Apr 2013 08:29:10 +0000 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..45a4fb7 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +8 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..4051cf3 --- /dev/null +++ b/debian/control @@ -0,0 +1,11 @@ +Source: snakebite +Section: net +Priority: extra +Maintainer: Wouter de Bie +Build-Depends: python (>= 2.6.6-3~), debhelper (>= 8), python-unittest2, python-protobuf, hadoop-client, hadoop-mapreduce, oracle-java6-jre +Standards-Version: 3.9.3 + +Package: spotify-snakebite +Architecture: all +Depends: ${python:Depends}, python-protobuf +Description: Pure Python HDFS client diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..4647c9c --- /dev/null +++ b/debian/rules @@ -0,0 +1,4 @@ +#!/usr/bin/make -f + +%: + dh $@ --with python2 diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 0000000..30a3b52 --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,177 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = . + +# User-friendly check for sphinx-build +ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) +$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) +endif + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " xml to make Docutils-native XML files" + @echo " pseudoxml to make pseudoxml-XML files for display purposes" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/snakebite.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/snakebite.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/snakebite" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/snakebite" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +latexpdfja: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through platex and dvipdfmx..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." + +xml: + $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml + @echo + @echo "Build finished. The XML files are in $(BUILDDIR)/xml." + +pseudoxml: + $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml + @echo + @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/doc/doctrees/environment.pickle b/doc/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..c6a5adb2f0fd2c79c6c58f98bdc2c730ac372fb6 GIT binary patch literal 6774 zcmb7J2YB1Y6_zb)(WZuX;y9+GB&K4Ev=e7f57|*^7xj&!$ao3`mr+q6yhc<(?`qD=a8zE1*(!~ef~_ut*ScZb{N zCk?M8EN3#sokNy%og#Pq*w(M0t8e*a zd|?QSGA&I_O_pQwNr)S!YfwF2%5hEZ#S|Bd3H^ByeEvS!QlU`3X-M9`JlfVCR} z#gN>A)3R{-Tu1iuNo>@r%nI~%%+U|>oaOTbc}qg-zU4Y_#?d3NI)pQmqUWTzHLSIy zV?{nBL|2g0S(~pH$Prk}T2zbStRUyHnCTXE6h`-T=ndiQBy0A36V3_YTVS9kHCX-U{!iyW?pltn_0)FSuPLmI-J zaNzn{-}fR-z%u)*^4N+iL-6wXj?28gv7U33@FuS5FHMBMum~ zKyx~C##}8@9+wy=OrF;R8^=7arQ~szw?%4rPzXVY8}4yTbt|4}6qY-u?*T24VT zT*tIjc%D4YIt(j{)gDZR=;C=8@T5VN-I_^1naavb&{J3|+Rs}BI9v&K(Q|B@Dvm*j zE7wy)cv_NmmZl1{R(P7{PvP*p4eM4bG8|z&!Y|r_+a)chd(qr|I$Kn2A2yA}2%`Cd zkGJ-b^5$m!Uc+ZL>BP; zEWCilv}!55P-k8AesY#JFUrD;lj06kvoh9F2oQIPyD^ODPN3U9yaav6-)OafL;R&# zcv(_Ri#x?#S$Mg)TOXR|!z*;wt@@89u4P0HyfO=~Vr@7Ys0d!Iv(Bh?j6iCfz-vO* z;o?x1777Wk4Ov@RL3mxJ14nDsCldmclKiT<8B`WEr870()TP*2@k0Vg(1*w-r48Dr? z9t`1YReN8rXYT>B_l>!3VLpvrFC!&hQzZsBA_lzl7^3GpD+^c`{XT>HD2Ykx0k@XIRr zS2fCHI&m)dM$2%2H2h9gsz<1TU!zoHB1%s&^5!H>-rt}?zYXDcSZlr4zemv?RYHhJ zDG|vcDq1`i!XK(0|FK^4loo$dT09=YpR3@%)B`_8uKrbN@k9uJtAhVtqXk>oiwZnR z6&@$k|3DRDq{6PjL?j~o6BYPZ2>&Jp=Dhk3w*HBewf?^${IBApY?{~9RIg1WfSiXf zNdq|_e}uAGVWZhC7c?OLmxwJy#IYe;6|rqLv7H`jrcZk>CBT@`oZ{FRCwHit4!W<( zw4pY8BMUNyMMsawg?J0)BD|79vjK79B*w|HlZYfcm4U9vfQo0bTRqGTX;CgeMx^#$+cGe1;HRn+c|_Ip(LEYcy9T!n437=S^RNh| zT93C-Zoq40NL2v+#7T^kV<%H9r3|Da1Cd%A)k6cdHsMR9*7=Hf!EEB@`owXngPL(6 z-AS#B@JA>wR`9Y~m(W9vT1$E{wMMd!3T};8sUd(@wV3(KS20h zGkEF`bu84FvYRNoXDHO{=+LP#XNWk%GaRZ$ohdb@j1XmHhO!PRwMQC_xtMYKa?cEx zT#SyJ8gs^obNviwHF0o%)|g=sW3-k*3w2`#BgWVagZzq)6dQB45oa%QFyyrBwykzR zl3_t8Z@{aF@7(f`e%ZZ!*WQN!Y$YWMp4_JZ8N4RhGQ)QDgBr&ZWn07TfaG*AE^ow_ z$JlDzoE5da>-vuCbFG?0YaVVExV#BL$MFOLce|R+4{=-W$C9BI+-1^HYLHVKFKsgK z%A!1=z}*}-ab|SX;R%k%d|6e#sKlc~4lR(jycx^b8sYn;%hKtIiHTHc3J+7Alq(Bq zlOIYW*h@=|P@TBxn_bN<%3LRXRG?!X56^z|qSUdpvge`i2<6WR`y$ks0>xwwQ5g0O zyoJ)lE1s-lqa`P{#KUabGvJ4gn9O4dTYn&#+&-|C?L0gzAdA}gTp%y4~&kE zj2<2vxM5&)pfA0DWB=ytfj(J4#!%Drs1!tPuYB~77CzFxxf#E|$Z>oS^VuSqH`Ixb z65}8dR+Yu@T^B!sSlrJmG3f9hEp0+9r_VCD7sYu%$6C0vrlrV~MSOXTb(PQ9RTFTd zCmmJXX*s39N321g1q#w7OC5oq@4uwqvoQ4HbHKXQ7a!brqZsr#$CQBOAs(IJE*`r& h+L?P&s?sjavHX%{9Mr6W>%?%$Q_Oc&>OrwjR|gZwh}Ei3ow z)2Fqg9cT?>ZPHQ5_g&DkVpN{!XrF0PW`2IziB+)MX65@WXjvB6#dM+A-ZeYle`3pO z5wT<1Ij61N9q}Guw;lgsWJp*q-akuQ0J? z)tEdglV5RxAnjdk?XBrTBGuKFD5hq1pzbSG)3G(vnQP0hyr5bwd-AI+Xjz)I%(dn6 zt5y?PD5i?})fTj@9#cG(F+CktHpTpA6P9RR zmio8174n-0`7P=*eet&}*vW|pJD(kp>4(4m&C5FPtk2ZpZ#n!ekG~a~*NWU~aJgFz z%&dsNm6}%#-Dfb|XK?5~TV__q-zxZ9wRvfI#8#Qr@V7et*1+GI_*)BqYd6Xk) z%O-MNiK#v5#7^BN(Ks|QY}lB_(PNUy#PFfR8XM~N%k?B$Q(cKvTdKR5C}!FVVwr$y z-E97j`H5mKF&{07L1PXEgF%UzJ;g+OF;U3mdOF$?sbZod4PEM5b6v$$dlz`569#RY zm{H8N!dcTZ5*Q8At;P1a>4xUM@EG_;KABmvxo=p}5tVjGRt(*QJU@(~e5Pf42?t+o25(?(7&-=uW|Rw{Py(ZPMyI`5l^zSGAnOSLo0(~XdRhQob zy<*QGKhdEtnHiDUI)lawG4gw5&|s75GdoYqjGdO*XdMOHaRfJPlNOfB{WyH33^Rxwn=qo>hcFc-RVJo2GuQ~XOz@M-%TaDdrUgfJ-?Vi zw{IG^%arhG(vaA#nCO9LCb~_on48%%E8#}%L=I1eL{q9Qm+P*ZJZUUDJi7;bAV!tM zy!K*7y_){ac}PP(<(Z;?q+5O_&Cy!T9Q|A?w80$zx3o^f)U$&8Y?_)im@ZRiXwXcM zZ>K?zFEc0y#+hlF4dWb*8$N?H?|_M5O&KR8dvP+tex7LW!WcCR!$+ci>>j%fY^a-x zArW_p&h}1@$};ARj0`>_Y#;KUoy$p1cdk%q$E2oYV*U(SX^GHEXaQ<;W{^M2 z(`aI5Oh)2=(u?@B>ocdftX;Bdy(R}39zr)6m|27J&Y`@Ck+{}MyI|qhT9-c;N}Lzu z&o5V^d1*rP7tj(H)?)&lv!=P|_~yQCxlYW-@)x%(2^G5M=P!vFDmOFBg=7BGmStod zOkMJqVTuBlDqonn%u_9Yd3{ygrWe{Vtt#TVQP_zD2pUD-9gA(02 zQyhr)Kd-z+uR@EiNSP%@`Kwu>pV7AYYcgx3n)})o%U_!rsU8~6zpsO5T_5CcnCUw} z{zg*to7L0Nq1oO|qOh9eZ*E>jt&qQ^xli*lv)VaB{Q2>IEpM$+%TyOuD_X+T@7J}ap{C6fG|tk7LmdXH=P{N3T;V|nH8LDlXJ^7py+zP);< zv2xIb@NBNj{{nj5ALJjPUR=OiGc|aME$`jedhsFt8@hNEWn;`$R)8esSwBYmv0g|-o zXvZog{|wZ5HpoBcNL`DqDs{?`^S`BD&-bR+3pJc2;!~G@5dvQd@-IW6!VT;TAfKTzLWH(BxS(aK8dP#elGhk;MV0ofb|2-A@IId7M z0OtQtuNm1VLH<)#WHT6IEEiRnHDRrpYAs?S#<`gFZBAA>&27m45x(_dW<<*YAoyOZ z#rXO$>@MB&$KX*@z(b^Kb|N<`loZCj@_)k6uj$xlRcbN8JvQ>6!?fR9_b*`jFN6G_ zQQ-{h@rnFdcK9mDe@#0qk7{kX<@keBT$hj8a?AWTw!WE2pTAVoXDRov|2DSFDwf`jHs-&q&! z3kyPmSrQ=Cr&0qLnK7K{GdpsvbLz}ez#Dj!Sz7#-vHV*0g}Cjv-##(RwF*HLp;nis=jCu!LDw zN^GCmq2kHO1zz9Ku%;i8oBo}On*I<0OV=R@%yLpnmd?^vRZYvlTAf)QU|4ho(XD9d zS}ub{XUynM6*GkyGZN7VQsBG<<76h+hTerWWNsGvHQ)$mXjQ`DvoI)u`4kp5x$d+L z=M@w^nwK+k7-#B4aIqc!Sts@l2`+q08dHO=#N1Rz57tZQPQH*-$Gp`10_L0GO&DS= zj8F23<=SRx*2Sy@?b#$Ns}|mZ-_AkZQ`D?NJgn%=P-%{x;o67p6#u&4@ z^p90{LVt8evj%~covH)jbd&0+Giw40JFJByFl&oXV@rR(@oCR>1gI2{%+h?6u`bgl z%@5V4W<3LA@+Z&tC@|UC2EvF5}1u~<#78y zS>udt9zB;4Kg)*Qd=ph*)35@0n0%6(`ml%1NhfB^KNK-jhi0eN~q5H`DL7S=V7VlRlLW7Cr9G z=76iiZXxvt{NGhSOC$OnuwMGa)Ss{dJI6o)o3y)BX=}43fN-m=kOXFsFdM64qB&W2 zG-TLi2aBX3B;n>$wT5Hw9U`1c?JPekI23SnKkf)tw!9ez81x&CBruI)WFIONua2CJ z`Y%_IgAyibNk)idq$Sbna!?{xiBUq@Iz%e3M9I%siP6HTU5PP(S5(3=FxvozN^FZH zFx!cdtpvqaRDx?<`L)^JQtcqB9W9lHIDunT*-3aihj`1WJ))k$8jKaFb`8b>jv83xVmQ~C8%+oaVXy$q|)jN&djyVuQStu0R?9u2}}ytNWq!P)K;(+ z@Jh}z5gADr!&Ynq0$8V!1ZI}Fg=U?tOq?~fVBIr>SMsK7OvmHDv(B^w4$fI5ftf>O zXVng6;+&}jId?MUB(4iLfyoIy)T&#VI4#AHHZM39HOAmBFa_nymfohQvN#WlBaa@Y zr8T&ji#*zM9+JQujH_!;im;t^N!@{nLuI1g%tsz1had^ep}0B{%0K|SGRW7R#*v1u z+0ze35WCJC1|-xV5cS~^H5~E?W}24;79(`cOCf}3jzk$Yj!~2{v(rUIr0nX|9OXbZ z7?=rTfX&M>R(^0dwyWEV$48;l9`t@^gQG!N*|_P>?o6uCUZ^w2015?vgd{M>;)?2J zDUAK`$I8de%j(d)$1$~$_E60QD1o((M-rG5aCO$A0NY{uIpOBSsBC%PYUU)BgE7)R z1HtZO+yv$nTpc@W{IF>gg9j(fsel6YG@+he4Rs4}Yr?vbT{V$2iQOh)vmAT+h)7_; z!rktPfK0@`m^s5TJ5$Wgvdmf*gZ?KV37Y_uJH{Do-TOzq%A5@p%oM`Db&e#RYbDvi z@H}PW#&><|e8APWE)ea7KJ7&{Xeovbcd_8?TbJN2FqbNC`&JliGMA|=E}!DaV?K63Nvb31z@IVek2w;MYWOc;>atM7<|l*>RRa zQ)BbaTn99DsPEltT_H{d=nH&P@z2YIq{+@yTmKGc@>xtVEGi&NzmWMQ74 zBMHo{xH|KYyERYLAF{C?aGS_(_sFb?{2p)zppbB1l&K)2l>oKWzQXzo`jkrBkloWwj}(d>4O zc@Vk4JcMg#FNPD`rj2=6<+Zkr%r6B#y=6nxyOoEt>IWvUcjKL?3u71qGizZ3$NUQT z<$E|8?ADk^P#l;?#f%Rxg*2!GcWcaJD!=IXjN6|vkE5g_(3H7UgSm~Em?wy^Fw4Z- zurN=G6LwzAuW=Wcr<8AO83^@lM6AKqLJRmoiPfMxR&k0nBRs}Hz{=KE0Vbd8v$jTF6Mb4 z*JrR*U|tZr7nN_c`%-KI=*QZH`fZDkzD#@@x={ViD=2`%uObP|??kP3 z$xut-c6h$GEcd9Z;W+|Qn!MjZT z$jf^ufcozv3Cst$x}ktV)I%7n=PrQxP&gl19Enw==RFba|s9Yp;6VNZOOr`i_mZC_%0@K)1Zbg*B3M(N&@EKRv=_o;N zmpup~G3%IaC9fjPRU=GDUQLj+h)nv5c!%u`C2u|DT#`&O}Lv8u7gZq))h%u z@%5C6i>D~kug{cTz5#9mv!T#K+KrTn(^3p+6M}O_xH0Ymvx)L{+*Ws>dzzm~U^eD2Wk%lWDHxf0bks6uW zd9&0>B997>KoXddxVj3Hy|qy<6T?v=+u9?ub_ykEX*3#8NEjp3ZK|QJ3ES)e+eCw( zjt=s1ZML<<+lhF4OWaZ$9|ML}AT}R#j=h68?PxjK9=($?ag#a6-WhN?_E^!5^J&M| zprsg^dl$j!*t_B`Fipx^$Bv$*yQwg)0OgU%?o6#?+h^$n6u_i=APLN#xVlE8kP649 z(UBz-4WANkq>sP(PR$p1Jgmt7){8Qmg-bKZYe5FOLZ}|mU0^9P=soCBMD3%S66LH zSmc0WL{{*~thFE{a^xbQkkBL4xz$j4MsKp#CHS#G!p_>~S*n9YHQ!R{Fkb~CoZ5iKzIX`oV#2jkHa3WK-a6C-qH5ZP7z;5A)BWtx6jw^HF zcsTH@EF6zOabS)VGtF_G4q7-KrE-7acr;3ST{s>?goRlq{=)G`;>3mHvA9FrPWi@` zdbC2cUSlo7g(Gh9Ta&VBIoFL;*IzdtCpK6&E+Am#*t+p}6vGWpKoXb}aV=jro)l75 ztQ#S`%DVAnAlr50DPni3@^0Nonq-!h^Vf~138%7el&1Zs6W^^H!NQz@0w{bYlE9oL zYBfuiGSM@_b>mM2Kih+QlC^F;N3hzG&lQ{txbwv8e9NnR-FQJ&Cdn+tvuj_-)SpdV zgaW94F_OSsf~)J;6rzqDts5^D&Se%y9hYs+0cD}eDpfB@y&Ukcuam_56nO}}0!d)5 z6tT4#MU)G@N;p?rocPL*(tjpkZRytl4(ah#nw&bS(cWc+*i2P}v{Fxf$ltjg!CEQK%pF<`vzZFSX z@#mF^i>D~kzrd7z?M2)mBq;Qd_GM+_v=l?yR|Myz^Htm-BB*@D+VwRR#+gtanY_-_ zA8p@20gV18lEA!$t1~)6VCSpe?Nkwbv|IG_JlK9yM72f zf3{hgG4!%_byfTb#BR3vd)x=+V~WLWlWggpe^5SdBx+0}eZtgRyMBs1Z1hJYf%y}z z&PHT!ZPd%!^)r!u?vYtLg%Y%8`T|f$_)@5Uu7+A;Ey^+ND@**fh`+JKwbrh{$ADoK zh)q15WB)~*zO|fekN&GNag#a6{tj?C_TNPNcc1njHE1b@=KiPPbnHIZMndooS6I00 zdA_8|;_@kuJeC4HG$@}`W@+SM&}EPWrmu+YgOnnwyY;e`q@PIodnA-ma_c(5my6)= zr{$Tc?bd*5n{EZ%EVfs>3a$uZ=hZ9W9??Bq>D6RQuUY%u3HV2PQ6!aG1ZY^qb2Io4YL~(Lr0Am zG0?1MiPsnL29{V(T^%1zZ562L)EkP^MwXLx>Vz_Ji#ey>7;riDCZgTcr`@auEyd8< zn+r~--U4?B3o0KA5!9@gPBomF+OF+~2pWO9*zWD>nFO(O?-961jF6Jy-egPn9;JNTQdF9j+L~#3 zh+s5|V5u=k0<#US&Qg@HNEhE$WZQXU)>^)cZx1LW>>$(~tD#ng2smKxWT|!*)mTdv z3lZ3n+KP-h^&&$A?vU*`$rvBX*dG0jXWVff5pO}j$=UE#2RSo8!CzzB)9vBW%eI8h z&CYNO=&7bBJ;Uq*R?(C*Yp2uE;n`g!r?QPoYmFunbNaIzZUVEr&>OQMPwJW(5%RR> z$tMUS#&AL%TYL`zn_7nc3$-$Pf*36~5ebg@iBsdh#0kb=ZLp}uk9f@_@!LD(#~+uL z+mD_+STEYX_s2XE5qO;8zJoO+zsvuVNj&U}3sZ0EP2N0%JsNJ(n`!xnV@AAb8P(dy*BA>JhBAypl zjt2m0oPY%JPjRtoP-vuv7n3?km?wLfo`WkUb&6n>x|AH~RKfY6I8D4xx4c>=VMz31 zQZiF{PzpyL*~#=PFT4t)(4B5=$AK&TB5Vd;jA3T*Or-9{Xpd_K{F@4w1_}OH(wrfQ zF%3(xp)-Zh)H3G3q>?!cY+&4TqPD(X$p*#hWons+SS7R znTJ{CAJO@cYlKm$PRWU{1>D8ht`pDeBc7 zI9F|t;tr=Cm9L1gJ+8ty6Url#Cz$%rk0((8qyHKSjyvM&j7}le=#??H-&m5TMe>YC zLLsFU+p~f{7s1gwzh$QOiYTE>z)<(U=*j^Xe8y=apQz$_(wl@KVgtvtH zb~V&qVr=hN;&(;-o+a)*#%2|Wt=ybrzb{T7SWdP_f2d5{WX`ca0$h&$d(nRE)Bd3b zEyd8>p9oIJ{uFnC`J?jIv7;HvpHvuEfbz)XGp5$D?F{8}6u_ikAPLNuxVlE8km`>8 zXG`*xNWS(+D5T`r-w6Jf2o8_>mYLd)%|~1K^Nha&bFp39Rq{I!JJS>)s>G$)YedOTm?!bn>Cr1N7U9r5sbGs68yp(SJylgRNal& zwIu6_WPOi>VoGkjf#4fPaCpx~%+z*cKcbcZ>SFt`tLMfbc7D7G?s2Y>lHtc>OF!OB z`M9O1G%d9`)AESg7AS(H1|SJcJ+97Dl(0xg9w@RcJu+)8-;uWh6cPprb#OJ*%7_}g z)ihYDA)*>;sbUc|AY#gCMaGOfJW zP!C0ob`s2w8tsgdUZX~1iLfxs#E%+{6DLNE#^Ww9yC~nN_forKOsa{ZMm(`Z?fm%A zuA)GEsEL3zWAUNgP>ir(dmP|i66#?$ihrU0TiBs1V4`!wOS!dnet5i(xqAOeLT1)S@EHL1*0$492O5`>QC>dp#a(+gd{N2adm?tg=kRZfhF6$GW@B> z3}L1`Os|C%Aekvx?RvBd&P7g}c%?0`mNoE@A4`+!t;l*u4qmZ}cjuT{zq@Tw$w!A(V zrLe?&B!M{uSLX_pAXlhZULPvV!y-&*9w<{=^5KB%VRVFOkMwDeszFOJ)cR<_Ifpt1 zcZez~U$MSDR)ui|D345j%+&7y$DshVUVtPp$K&d1O(C|{mFwFREXj!?ImsiTkkb6= zWWi5~;4sgr%+#Jg0cwB$a2oFX$x~^#?qz-Js(3nx-Q?*E+y~}NTv4qo*>du9mhy2U zQDYkECrrKd?b*n~M&}?2%(=Ka862M%#5VdFQ~Ps-@D*`|G3FW+!i?7<3Cwl4 zx`v_*-XP2_Sg1TPFH(2DBJ5a^aJKY*uX|VbO1`HW6ZD8F2hYrx2+Q;U)3ivce z+ki2N;Uk9*+j_(vgAxPsJ$Pd$ONJ#!CAV%InHH`MD}>XCiE3w0_wf`Bq`wR>E=z-?iU)yUJ_M zT<;M0^p=g_E%wtDwWqEdaO!#|2&zn7??N#Sjfz_|b&Y2=zA9}yO2 znfTMzUx*W@t@q;&Ff@n0UN}ou@9pd zZShMaI8ush`84*Ckm@GwS(T|!Wghz|u(eh=gPx*D-;XI>xj$|KQz!J$Xv--RmrXIGU0!g`saC*UU{+MVVui4h3gb*Dk4#o( z>W?d{pa4c+6$yS{j;k{|g;=9kt`JtYBx{IdO^<{^N-Ko51YbLX!@TP-^F3Aw>jKYT zA(Wnsy{r&i71sl?TOq8Ed%RqfVzELXTe|0l%EygFjcKHfn0hOO1oE)a#z^qPbX=W{ z$llthmleXMBHPR(vvvw4XoavjppdYIPzO{)Wo&g4W{7xubuJN(J@uAqps2RAREn)u zAYv4;BE2<%eMgRS<*meGkY!=}@L*-)Mslv)0JvOvh-ioUw8Lu9QVb0|TyVN_Bklr| zR6e$0Fha#~6)2HxMlvnmFc^g*7;X_z1|L*z4EHecnU9^3w z#MfN2Gz)yXz6aAbtM+=OAJ;4U0J+L~WnUEIt(D@WNu5INp%MzU?{l39e$#(d}9k=hw9b}r~%rJ3i->DgM^7?$#eqx#g-*APz;AlA;C}d zaV=k#w1!kSX*)F%Rb@%i228soNsHGkA^j*T8eZDR#U8&#ENU@#H!n4<=IxV@OZsaqFe;ELmyI5d#(s$I+rHN^GMTF zi}AsL!glkKAdV|ujoDBdHM8cUo`(wMFpHw4OnG!G0HnH#hl?hzqWc7bIfA5od>x6K zz#Jv~#;iDEG(Ng2eKJdpI2s?rv@*K&BNU=y$0ETG=y7%9F=hBqE-$)uoRAk-lFq|@&l^i{6#PFdEG_|JiMZ)&td=w7jw;M-|7&dy?&?G@U_}HPr=dbua zPksjyC?e@>$A`r5Qc--wy&k zC5|3Ba`f=gBSL}rn5XIK4!_)B87tOR<~UKT>v+|)daNt@jKT>(f_49&v4%Mj6@q7+ zgd{L0(mm~5A(3P#S4 zd03r=;=uewoJtR?PzgP(&KAsjSebKB((4oJTp}#YGVz~S=ZO=aSm)y|Fc&D_*s_E7 z#OiTBC2+4tcgGCuYY_)wbS!^i{&xJ;4xe(YiT{+lP~7p9yNG~QVo$k?Q4Dvu1PNZ8 zifj2(?y``o{3+K{A;iYTD5`KJ@x!NFkGTpt z=y^2~ymvvQ_9;hcrKj9Af?w;wJ+XSqT_;#=vDXXEfZGk?b))6QiA*0wJUK(YNrjb6 zl39x9n0zx+e_?zJ3ZVYak>Gu)xVm0PAsUaPfZJ`tx!vMuZ^kutxf4*2JA_qRk2?W} z9^4SB&cxgW3@COtlEB;}cGj*`qg=6jg>#?9(KfN;=|0;aFQi_-5K?Wu?gt!taT~iT z5Ay&Jpw@#(@V-=WvuaU^NG&fi_^>d4>0x?3L35H{30A37X;$@!;C$9UDqfFSUM-tI z$;tXyOaWh+IfUQQjAkaKA0?Q_fetUH9+;zqLx<)lPl!=WaA}V6Bx#zyub^K88>V>* z2|~}}-IxufQ*(6&7v6hXSkG82h4;!7jCSFl6-G?Qs53rCxQp@qR!pCdn4-a7s7j9z zFv{5>UL@Sb_+CN=Cx=DCRt5bl%2divW+{sFuQH9r_o@;Os~DEk5hF#4BB z5ZlGo8J$9`(JNzoUs;l`Me>bDLLsG~$X^8iHiDyd{>n`4pa=q~_7uQ(!1E&_=OAw% z&b`F=TowNYWET`U4=IRvGeUsagXD`lnmb{TbgWh<>Mx!(lpr?Ov|Hv15gA@ z)guYaKwO=rC}ENAy`{*u^2n^UeD@v%C?pIPYC|U2vpmNBOi{*Px{sw*P3s*#*bo4lh_xzPt;%2_XGxTfyVH zP&D~%$F#f)I&!l;U}*Lokl>guuFkP2x_TGf$&&0WlCd5M<(0bNIKjt9a45P9GvBWZ z?h4e!?t-quO(1q%a5voJg$R_4E=aaC*#za|CZp0c*&a;GyWpNEf~6)R!FvsGb(W%p zMRvhSBHP;|v)1yv;AB7{VTw?vRzu~?*!2Z9AwI>1&(&7+Khta(?IT9}T1J}eE}9md z!73K(484ck-At9ADZo2ltxVfh_E#ouYd2FpfN(ccJy7)1eENfG&{GuKYC2QfR^h6_ z%s>$=nL>g{GOn(z$lkV9`OCUnh1nKi!bQ@`#MO3UX92DrK3lXIpSHaQEyYmfEYqeI zehkgM->-T2*J)j>(!|)*E(ZV{$VpSgGYwPh&G4iR&c5f$|!uNlI>P+%Lv?4&Mh;zOiK@TsGVZMm6Yl_%e0b`Ph=1x@E^ABl@hE zAJM;3!VuBFih#bci2l_mhIjl7NnozQwLGGKZAeuX(eEf!iRfPkOdHX^Uc7El-bVC6 zkj%33enkI9A;boXD2R9y@ohvO{&6#M(DN1~ID#!wJ91H)9l7|~qgw^P&4YVl716(4 zu-anp5S$VHJH_iR%c}*Um{LUl?y5|ZS&HX`;2x%a80=mYK>hoWAl{9u>x2{n_2K&N zWkL4~=K+foKL*Pcz=Hx-)}bW+A;2L%euVa60HDS%k>K#OxL7MvXt^4X21s!;0N=*fg~_*N_t~9)Q`1?g)s}AV1G{YmayKoSXiA^R3X}&ct;qq zT14Z@yM((X-+N;Ee#8_`^FdYmWR~*Tw?8D@E%`n|2A?An2|WY!A1hNSKbfT{(*J>J zY;)ohl)@CBBEfq&aCHL&CCJk%HYffh%+DfBNd8=z+LFHj+-**LDe^!2J07f(^7|0`2E_IJ3!DQlsJw0~D7PD?SQ{fFROq5Ttgf$4*g zCoEJxDlehJI1|bvlO+L%<)e|@EQJCXeQ6|tSw_^hdsB!tdgbOsUrVyANcwps6jBNx z^%uM@f}?eoW2SZhDcTKK9(aEAs5I^9Wplz+aRm^&=+TO}56nswi|7&A(mhvJK5isx zOe3wr)Z3g`6?xcbH6(bu2CmLA$==$im(7VaM7E|!X6+P8(B{NifI`CBLS3gCDj#H% zI6vY6WPLblT}!i`Xx6thdft_zZ2$-c3M(@f6>`43p}1^hx!6veP$q6A=gS+DF@1Rx z(QfL~ZdQYqVrb#b1*b1>fjhheSozoq1W!*%C#t)Nz2qyRGb+-aTHNcCnnSckil9++fbTo5+~n zy_;xv_h~28prsfZdk?|s-FxCLFcXz8-vDr{88+Ttg2#2CX!4uHw0r}=k(<2%gN-L6 z3Ct8+T`N*_b$_2~Nt#8nk4HjzC4b*n@RkS;MfYRo`}zC+KwWHqcNIPW#LnLj#633jqDI^FgQViXoAUJzs5qF4UD_`CdUHFS`HCOPsE)-3E^O% zd*VreLc+;HJ*65df1T}mqMERLE6#O8bE@TZnmCCdY{Pf={L^O@Qvb31Yupa=%N5DDIJ zi>qrgvbRlEz9VExz@h(D zNbvd#T%mu>9Xazea!Y2Zhw8SdZMkd2_S%qbd|U21%dbkj;d;?j+GPBMXzS_*l5zmM z5jQwTEBwZ+IKrkkSEa|fT9Uyow=k{TmisvhVT@am1m-qeU1L&)KT^4Ex!Z+#hsD%P zth5>8CT({D3Y%4_<6WYQ*KsAcA#gWIn`-dA2S6x$FOtCACsvKwP#E=sz8ERPZMt6w z>wb&XatU4{>1~K0!hFCcLpHH58__$iu}{}CpwQEuHa3f$I^65m7P&3}lf#Fih+(7Y z#rfT7ZtKnBj!3GtHC-r7FSd8GY*^#SQH{e!H4aaX-g-EH#-X2SL_g!et}u~MjxSf> zo!j_j2a00EBN~$rEZVq(Ka2#go>%9#ab`ZU z^$ge4?^l99V&Qtn%r1EPD&Wb;(4zoUpJY5HlK3QJbvMa)oTT>UFJ&yBKsgk95(&25 z#HBGC%Aq!8^NXj1^&5-TvK)40V)G04;Qjw@p22sdRUgZrmc6QvTX~-19jk*nX8EZNH%_mio=}g1=zlE$d)$%U^{@Z@Tk;f@NL=R%Kh+LxL}f zKHiDeagFpcNt+hI{}muX)v{5w9%UyBn@p>66olu_ zOT{h};~ixBA2IR$VP;Hk$cEK>+4`;l-vkmG@IQ90wQh=Lrsge}3U2&1lEAzp`ka8e*nzDtP>h!O5($1# zhimzPt*=6=ve$S^qbg^%z6P>Av-OSG{Y81Zt8QuV-Ze5Dk+}-Z`2<6r-wG!-Oh(5m z{z`ni$u1V=I}||Szaha_Gem7&i8AdV&XZgJ5d5DW+>@-6TYdUb+uD+s5S%Bsmc$)? zNvC|p8G)s%GD&7Bo-w0k01wqy3!1(tfcncK2~0mxTlFaf>U$@*`U|Jd;^@uoRa&1m zTuvyJH7O~vJm64bHTYB&4rT>_q0)*-u)i-}RwXJ>uF}fFS;gYCAnD_Lk9w@C^4fZ= z1~~Na$;|4=LHHU-@B=zrUHpuqBH`YVsI`Q-wukAtypBYzBUq&xr6W=63eH`S^~7s^ z%d2HA_Br)0{7fr)-0Rh~W&_}$cTxBc@Lfym=^Ij5_&&ysq+_g3rL$BCA~*F~hmC;( zQ*VL<-{}y;#%x$IT0))29go^fSesicgvwpr{Z}(?A!tmgsP7H{+=brj#cyE55AL#M zRq|w(qS<%0BHV@E2O$%f!6Kn|g1$kSO7Y1oMUj38)7Z(Vp(uqFh9SYB16-ZMQGy(< z;$&2#Fq07`B#%(0w&an3yOU9)M8368KDq`uB~kG)guBxu+aQDAwTUFG_;$*~#ZwgN zw`WTK-T^oGDVxwk+MSe%(^3p+cNUyM^0BzX>)4d981=@hFwTVX$Yd9${>i9aQ2?Vi zAqmWGxH_X#h&6iU$*A2e$pn$?;gL{CX+LjI!6!y=w9a14)ZWkI>jxQVPvmAL?6;f> zW)evJeZA7-yq7~#uC{xF*zN00#y!psPy_7iku5!Ss`7DrQF+>{nW_B^L#1Z>00hhJ ziv%w;!_`@ilC0%=IWM)J$oBWhto0y_2gGz<>Ht6?;Xt8ItA<+k!bbZ9F$Y7trp zsmfp2Xb~}RSdpx|%Z@OIn< zCaZj-PJ5L-9ocYm1dJ;}xn$PC)SiqkqcxoXz^GkF0+YklH5-Licld5gk{5~bNGPo2 z@CCt(5gc0fFjL#%F%^l9PR#}CVmrF4?K}`WM?V<%_#GN0!_mo>_BurQxV@+}?R6;A z@(t|6Py|Z_NCI;>uFg`Fut*0#LS#pJWY$`~gC7MbBpfZ&W2&L@x1>9D6mkjMi24Dy zonlAx0R9y5N0!mCV)SFnNWUdrG%dP;Rjg(=I8Iy_Sgy7k9Is5=nywq10JyrriK0Ep zr#-m_Eyb`UP7$2l;8fh<=TXWxYFOZ$j;(pR%Hr}Vjy%p_YDW^1m@|=wq0d5s_gUfU znvx=_JN?;~yc1K$?4A%{QL+GZHJ0DC;&+|p*RohF;QCh0 znCtg`Xaif(UQpnADR6^Tfb&teAXiY}MwQnL3fv^H{R{#Y&Z*9H{lG+hYezd4(G7N) zo#;##Gr6{bnROWzxETahq5`*|7(W*hH!YEz5{e4ks&YRna2rZ`jSAdOgoRlqepKKN zabi^9PTb*RxXL#wRv1PF!fJ$Jfwn@Ci+}3pFaGZq9Txxh5U_4+@qaIh;Vkzd!Ow_r zEnocKA5xWl{J;vXvig4j*mm{*p!hwcy#4q=NR-U7KK}CmVIfuapVC_Gm&CUpKd?N^ zuTTP=A3+kBM@6ot$Wki0Q255t#{_@egL|U2{(nNS+M=Hnoa_Hzi`P?@SLwVz`~PpM zGD&7Bp8fx6rv6O$85BVMXORTvIb7WcKp`3dqF-+PRyfaF91S68W(s{lMU|SDguV!P zIOu@Fyo4-7zKjI#x)QCm7zIQky(RXm!u*|w={c5`*slpzsX?jPUKgB8kT=BZP0Oog z3yeLJ)d3Urow>Q`fqG|3ePJL^;$zXB=AmW#+SRu}0+*&PKfostLg#v$(!wS8JJLB; z$I_DfT_QIvPMzKZ1zO^LB=}*F_%~+5iqcSWU$+APP*@*XERJ}gE&LVu?*)zN7_GoR z2HdT{{~&&!MEu}LpH?MLW+|H9`$xjv3j9yV1m-i5gp0|~m8le;%u*ETzhD|$fq#io zSmDn|0`nEFt_x6t{IOyM{TMcqbqT+ui+$~W4 zfehZlC6ch>eej{%c;kMZByfE+2RL z)nGz-WYV9hKkn3_07hR9Nnn=8)ft^atkEl1;44^?6-Ba=M?xW`x!KBsuM)x0I;%2M zdu|r}Hfc5B`IEEK^Rky^x2xjnAa;|pHE@scA;n^HMz$O$*HS+2B-EHjTAQi&+oW}n zhmF=n5}5UHbv7bpYtT{*O}mxg zbmBp{L*P#NM*k_+prW{VN+XLQOzqT}PqCrM!gRxsAZ~}NYa9xw?!b+fBq@>+9tlO1 z9C)PQqarvwXKQ9^J1~Bm=RN~I8kmdi!mf&AKI^PlCrT8bu7 z>}DzS_CF5^E^I}`TzGMo3A;jP@$ zuMhSW1=a_AJy2%3*!o~U6r-j0M-rF=a4laS92ioSZ4OFgmF2-SAlv1^L1H&uc^g=^ zH2C^08G4(8GlWy={iSJUium>^Cl+QV3ZQT+lEAcyS}l;JOgMkII7kaV%Y%E8wK$k9 zSZ&D}!1ayacCpG@R^`v=IaPTe5JXz^-43SyGrAK6(7p=^f`+)du1g{6x?CIBb+NvM z&@Ifohv~JjChA78+Vv<1&WUnS~={yPx=i~=V zy;yZhbMpB_wqIPRqW&R(!oY_j3Cv;Qh1exYl3CVY#&z@WKv;)cEX}`dwf*_`5rW3_ ziRRx&0`BJDM~UCj5kHLX$5bUxW+|E;@*~3C{QFpB@HqvMgj31ml&KV-%u*ET7ch;@ zzmG>LtZ)L7z?_Jyb2Cbin^nxePZH+I5hgT0MVZ=?PX%0ahtouRx=(vX4O)t!)@KUN zxx-nwLnKl8iY=(KRTx)*^2p>Irhex-7X_&Gc}N0tKCZ6T6k=;#IRU=Fl3XZ~i#!qv zDa{`)7W|S34)a{fOzrtYGy%R0c>e66^eE_M0_>`|5X5fwa5?S~QKVSR9>|unhbxqi z8;KgzNLMoTCcsxA4;x*L1n;@W)!B&bt&Mt_0AC}rYdtb+r%-|>z}Eo^3D*nthH9u~ zn@#pRO6EpOb(5%Wwp8VtO%@T|*oyS#5Y@gIJQTilicgP$9);9~8`+b@e*odI;EGTn~#0 zCtSb89o~4Pe4{;dVS~w)wSmJ>Ie*gih^R2>dX#|mVw0}NP>hy;97$lFz_onR^<+qO zlio8FMuW@6R+)YM8dP@n^_2MjM)}5;6=N*`jafT?8uql1D~FNNH0&ATH&x+fo&^MT zc@7Cq+=`9$Vrn5T)|YCZ7yJbe?x~>p*o%VIRH5{FsF%d*Wsj9-e@%&A>7A8%Rd7y; zekWe9SzbCm#e=}s)`(Sxe*Ze)Fd7Bp1xTUO=>J|roh#UJ4YCnAO4 zm=#A1eIHk)PiCnQpD=%5YL9${Uq2sXK0z6(^(hj(n+R9;l%WXwl(A1@%yiw45&tCQ z&n$Aw%kWz7#{%Wvk55G%I$)k@FQzA@TIZyTQ|zzBMvfTKI5PZA-p)Oex?4Uv?seCkkEv#=!SZ*<{=hRcte%AMb9UmXx6jo?<)76P39jc>Gc8iPa-VLGVvc!ed^em_<&jhclaQ% z@{KJ+(O;q`g{l$m8+uM(@vcaQ3#hjLkDTCi=*h9*ZQ2sZYWS?4NAf{0vy5_-18_+0>w~a zV;Z+jnwdV zIkyz%RvxD3@0uwL60A~}(!6J|;C%izh}RIyt7S7-XbNTu_B#;v1B7_2Bxa@f&SUSh zO+!I|enw4xfIUvzYs@f83*#xnrE#o=r5Q>ik(<7Mjgr7eD~v#b7i)=oV>YZNjiess zA}phXwY9}kgvDCIkFbmuG^SzHqsIX5A}rg8-?kAyxYKr3$&*=%W{29Ia2H|O0T~>Z z6$yO@^gAh2DL$E{DAMoDG!|hQi&9u&9Fo9{$JO;pN{}yBL|Aqa=B^PYBsVEjTk>vz zyB*HmMLxkN-=hXOB~kG`33r=A6OqBWS&@VlpQKD&JVlXyZ>Dtp$+*FZSD}ZrQV8q-J_re1)j9eLO&iv)*TadkE#duyX!0z4fe>-5O1ok9r;@N@wR2|1y5S3~9d zGAHrvizaVzjc^MVSIQ9x6E9_AuN9CQ#mf?b&-EvRw`rD6R&jlGPDR7h)$o$w69w)*DmQaEJI4;`4a;w=E$BWAemWyqR z6P1Y@!L`LnfU7M|7VRlM?Wr|rDTW3-O>nlw>9`Bb8Oq0AdU>Xb<0?=h*__4Ho=0{s zz5EG^&<1BC!TarTb!|XF6>Y$eXea8;xt8QSk(}?5P)unUxj^s>BRKrzB4%n2BmT+l zi-Ee>BZ;f$B_MVq$)>%w?2}k%VmNu?v-tTZ&54QkOF=Ke_!=6v0wgAPLNsxH?Nw z!XgKgt3-CSM`o=BA(3nU3{Xh8MyS_TL)FRc?(UBHcxiQPqGg*DuLU&MSw`23(G8Z7 zJ-NL|TDZPdEav(s=;fVbcAF0K&CCh#(iU&5!zx3XIUZC#bs}i z0yWpWKNtA)mJOg+0kpMOyQ^`vdn?eZtafihabRv2FU|;5*KDYUR=jrz=C63~L`knJ z-n)pfFw4YW@!l;?T=Cw6yTIJ5e4~ajx8h|*qAhSL=dWq+69Lw=zaU_>*qZi!6vG7{ zK!O+L<66F^eJG^5Ny{QnVwDx`!@#vG+Fy#>uavh(?rCj!8Y|(iXCDztWv?u)KprK& z?J(qE9z!15K8^&jV-c$bvXqD}8SZ~SDfq8FxF=Yv*{1}nE%-NpYybOcv3ka`DqqY# zTa`yLOX(a^o@46I;C_n&X#YGC9CF3g4JZ_%0i|O9`$b{CJ^T&hlzm89iVMEQ&*^e2JI+5$J0GqLC;Sk>1du73qClWHB+Nb<`WAu`j!fv3(OT zRQoL?fq7e;8ndA+YNd8_Yo>RE^{&NY=PFkxdTsrC!iZ@Ut()El+^w5F5YG=Io_HL5 zRFyoLrFgd8?+JJ7rjL=q*I`8xE&)DKrc!(|OHri%lxb|;^hcD!5`RL1lcu;j2cQJ| zL@9qW;^)HrBEp2`Un)~u@}B|Mtm7-ue(lqKQ-hXbsP$h2=d9yf+~EVU%2zC0zEfdb z0m>tjzcKaQ{_iM2t^a`p$4qf`wWbhT>&k^o9|U1QvIG)D`EYe46jGXTEG78T5gg`O zhMC$k4)0`JUtszZj?xg_%hJVFa#;|&2}eKN2c|y-W5PkUoN&}BA2$FzM7FX=W^Dx-(R^bSKp|mOp{`a7m8%o8xsB2nO zF(MSb(lYnv4Au6bIqs|_4r_-Tc>J?$>t-DQDm%G-!OXfMsWjmD3DJ)8dL*T@u8*6* zY#{u`tT>_pHmpjI-+7Y^4X_c@imjUj%3z?4ks#KGt7`&^@Lkp0y4h67n_1+Rwaed1 z!>1NM_*U`eF8f}|#d_Ia^a{Q3O@ZZaT8!Q+>E25C{a$8M z(Z5zRS7!&phWs${CvLP z-aZrkgwPcnk~X>NwmXJzkHP@Pn)vhXQIddp_tpfg7@K#GMlo7y3=(`%0oU?*_qHKb z*}R)7R+)Ei2V6Vv-d@~xP~OhFMUu?2*8aSEN1?>V)@b&$6Y=eXgB;Ax$V1z)Nbt%8 z5nI2aMERA@IgA&47Z2_U*1UUH!D|gdM1mkNu5M7L2o37d9?~S?>}_#$&cOEt3ZE=kWd%yYrvMJ&e9rl#W-7{| zL^BecWEK-^L5eI_Vqf8K!39Ni46MQhsmFc-*Vbcyz@Z0En^jPo0|0_52O`1862!-< zLc!]-6S7Dq2#jyXS-nIVMQ%A^2?GW;w@jNZ%y5bCrd!I@@pvg%NHq>i_-l@{hK z57X;>S{2O}tWuxSvN9t$XD99Am9@NDMnS=;@b^UfEG&$=Q<cW_nm zWR{{i5X>jsE#eMACNPJJg#HEk!<4BMpUhGe=>w**Mcm;ig%yrKf^RF}>V^|akiS-J zejO#uqa#d6K1P|^l79ra+x$9K1L*WQ{8-mL*%d=R)PMTVGi*)9vMD`nx%v#HL=BELLglB~MY&F!i;mkT7$r%BUyKn>x*9Yb~Oa5Dt zKX1ufdZU1oTP12b`3vIpqUB|s{3T`LmUB-2GT?IZS48`&Py4$Xv=l?Dza}`H{B_&~ z<_+Z=TW~I}G;3t@y(vIk3Cbj+x0u>bheVSk^EL`$-gl4$=3QJ}15#Lpt4ATK_bk!- zBKp81qA2b5_GV%8p(X!Fe>g-9XA9mfqR6F zape$1wzSq#%EzrmrD?6D0k0T>mO&9L)fWj4e2U&KO(UQLrqj2g0LQ8lMW6SA1hckD~ioZmQBm|p~R46m5RAP3VPrD%`R^z`YTK5DxuKL z{Gmf%TaFe&R{~46)oS8a*;b_m-0CFe1a%GE z;Kc|+Z_I`~sS!4?EKeIuUP~A;h7*=&%dbs*dk8QZy?Rr99pIzU);it;wBA(Zeza{fl=K>H+nfjsvrPPG+ZN))XxjkX1*Ts4#+H$EW&1m#uo`@v7I-o{ zI@_?_#9S9%(;kJ!mFHn?D(?r_28t;HY+DkrdMv=U6^hYFgOK3$47ipD*cw8rvcuX| zt12P3A;7jFwxQxTOnEyS42hCiR@M))4Hr_(=c3hZBk}Fz(DE=zltAYZND!kGxgBpP zRW7A4+bF@e_TZjqh1o_6R$KHK!5L=TM!dGQyvp~tx2wtoXG>AeZnHg8f1_^)6hQqQ zk>F%0uI|A?AsQ~DK-an>_)6A`_7y{3te75sHlz@#0&P zgt@ne>G{6mTayK=RHigMP7$2r<5cl#w!B)J*a6)eprdgaGg_VjU{I^4yA7{j$9JPK z)#Vq>>M7S{U-;A~ODxqVc7W*M3B9`tPmv z{@{t$JOBw!;Yx$XY-kD^TfNl9z@`c7AdAIOKeUz~1Dh^r?Y5i&xQl_M#BXNA4}RHN zl{}fHXm-*z!d(n3jSLRiiiAE0`q|1yc1MY2N;0!H2+qF7AY$(HVUvhr~wQDYkE6s9&(D0NOn9yU4+3EuCDtFsZ=TO0Kf z0XsuvXL@ATPN4)vz|H~`5`H4ov#X(&4uGFyanBX*c^0>H0Nk995{wB}Mr;D^eD?xT zUudaqr@cs-xK*6*UQEXH-AhD!sZV=Z4O)t!MHdQA-@P1nc;|xhRZoFmAy8ZmN+qi+ znZ{3nUxi{=@MBzcvq5eat6MB9+aNzzCTyZ{A*-kp{J1GeWh0W&jJbw&k6On)li4PGCOzVTIVGA z_0vRsdsjlg-X6%8{ByF_m7a$);`a64ZFYY4yyg0WxV~t)w)`uMUIHz8h1EOOD;60i zuru4}n%M)M{IZmK#VW;#QD#Z3oVLcyZZEdbs{(i}WPV2-2Bk9N5VYj&+FagFSks*i zdR+ul!TAl`AzrC`V+&3T_8Gg!Zi!Z{I?Y=oO=c-Q6xTv=ZwuQK2Qg*r-ywmW1bN)v zMJbx?JtTp7Up(-(Q=%rbR0F=zGqbfV*VJo{;IJq)-a3i-;O zB9p@|e0}&1iZKbeeyW3I1F1oGV$xodr;>Ab&J?#}CXt9pCr=uiV7W)muZ#{A>10xc zKZS`@aCwY9xkRC7rV9e$o%j^jMjBT(Kctdfb6x0k(Y8RUs|_E9Pq;73C5GS@Z&u*e zfwm3W$*uZ7oh_iOCd$h6bf$dk+C0{6ZK;`Dr$uH)=w$FWt?7#M7KdbPz{!1 zuxRt}4=rM6= zA*H~?&h@}5RrImCwY3+zJ5uxU!IV_7Q2GTk2-{})+Q;r4;jDtCB}GqdIiPnGNarMa z)Eg-klj-(WdPqmXl9ySnBv&6$;o+2G2FUu7Qf+bJ_a2<{T89=*cTJ)=jYbQ&dAosF zyh*x9H9O}<9Ps+ml78VG-+nD65lqPWFTMt;>5NEYbSNGFTkvebqo}2Q~&Hjcwu`R+$)!Y$aKUf+5;++EdTZ)?AWx?f=xHoRcg_wFQ z5IAaP8~vy$z&06=DA_>HtctE|y=+@NIJU1QOy=NIMR;Wo$mSKw9$4o0ctr7$`LP~V z)lck3UjY3Bk(>VWI7|QMarU3bnL6Ho9%q%~&wn0ge z_9+s)j!n-khH>!~2;6IphPA0yrGFC2XC;*KRq5vfc*{id1xhmYT9tmu+x}XW?%-CX ze-;5(rC;GLFkdTgf5bl(kAHrp{u|OIvlQ(wN&g~LPgb}jjd*`c0()S}vHB~DP|@#@ z;ALE5(3lPRQvuagQK-KQYU$)k{H#j*qM0yRBd`Z!Wz#*D5UraXkrn9-0J z+haKU>zF?XTS8d*V4abkZL~1dd<89L(skV?H@CeF>kh7mdJ1W9>1^+6Z|&$QVCmb? zJ%7dwP6-R$DNNrXuxZ>bQxZN#xjFRv(|=0UxH)!ortX6mCe_0pYu2obSpq09&yq-R z7)1Duz2HL&nhEi&HSIZvrA4?*NQk6QnRz%X>MLNSnwAkGOUnWdC3(CmGOX!`Lg>{W z34S#w4%R;@(8iZGga(Rnjt1qw+zw_rD`|O2TER+c`7g1I8EHlFUMb|gs*L2fEnAE_S6ZbaT6*%6>E`(TRu-mghJLQ_Nt|!0^G08BIHl+iR~$ z)0_6%b3D37x@&H`$#o%WQcTRnDqhQegmBOo8|tQlz_SUvnBB02Wm9drT=(G4RJTdD z^|Yo3+ql=@Y;LB#YuFYqizpzBwEbZ9>V|B}KpuK(U8;bPfjB`B{$t3ch+d3PV}*JR z390~|VOY(sRlrH(M~dGW#2`}WPPgKhg6X!pne(BeGeX2`_q}#TEN%S6snd7gX>yG^ z^L@nL$f%)UU75JjbH+~?>xP2$gwWKo6&imr+Q6(2Iylw_NbuuPF=<>}CeW9TP#QEg z61POijlaf;3}D-uond2vE30H#aoE@daC8P7k?Q05iP;pzPC+mndaO|jB1;65a2N92*~-DI*b_% z1~7aBlE4g+G;4TPq{8qC8h#P|%M7&)hl$~E%TUMn7DX8|WusUmLl!msZG^zJ4Kxz) zD*iSK#i;hyNCGojJZ!Zow4&PEq1ykYal(wT(zcPbZLPGH|1#T{!L}3s?L+=NTO4)J ziV=#gwS(|#TW&|dVY$`8ChVzYOw3Mz!-P8{3CvhAvnHe(6(;0VrfLssFykzn@nW-! zWuvJ~b^NH(?qRj72%AE}?IDO?crAZ4@u{@?PW$ZieV$2XH?V?~%CUNPNvJf}_z6vJ ztezkQYp`l6m_2|1gYAhVFcXE{DDzgsh6b!zY4qJoWRpTNBxqc(PHfS=1*}xjGUC`f z8E~{Hr)&|WnSw%SH5Ex=@02=J6{Fb9CXtTCfw zxd)1KrLjuq&Zd!)v!R1<6PW2jZ_I`asa?3n(UW|Jz%gzUcBkD_L~d&NSL-knd zdo(k=?y+p}#6URg%i@vAkvfm>=lHGU1j-G7hjT?@|8_jL$r z@*6p?br^?khpZ!kc0C)z|+n~oH-BTQ}Dg0Yzusc@a*e%QC zPKSa;b@G5_H*iaxO`SYQaQA_T{}3pluZI!TR=3MzAZxCx$CY72?Lu8WK}zcCNknS$R)r@WpCN^c z>gsKp-M}rifx3D-!QJ~S`a3`cJ-rhFekiW|!{RAZTu<*(;8O;u$Ff*3r6IcnXBnI+ zj&5JSrr24#u$`Y0d_NW!u249t0UsKXFE&1I!1cp*3+S?zw6`?Z-Mh7rhT4X@dk^we zcTcNK|LV)M8g2J~mr34B?wt?<2Uo?;uI=esDw6d;kGF{A$D8Iu3j8+%?CXabdWQLp7bCX*QeK@tmL|5eaaq4@u%EGAZ5tT6+X@x@6U5E; zCsw+WJuT7R-rkQU8?F>>{kYX;8m|sqQg1Xm$p@qQhqd$u^@MHq5#+}`t>8R_&(8Fj zN^_B^MVu?SamkQ#}V#>eHuPm!!7a&AW_CA5!B>U zxbhWfOEaAvRE@Dt#+GLX5yrx~L&8+69nHjGqzS*N*pFtMt^;rZp z`J6II>b{$}Ey(AQ2?M7Fe2FHJg?xbtkl>3-Jca~cBFJp$X<+iXT`6OX4Nyaf017Vtb+FaB@$}#D_q&W&trlDoAx`tVZNQm`cHdDr3%-$ zez+5{bHL|!Tnj@bK-Wk%+Jy#)a%JaQyfmz%cVuFvI!OlIY+@z6vQ7(m0lBGcaHDvl zm{F{KE~9AS%-5Xj5WJ!Gmm6q?ZGi*embOwcsFM*rS|~lhCRQ~fgQ^)h8@a(NbzJp$ znC3trj9n|~KozRZvv4<*cl)TfS zDeomkI7Tlc{{sxVW7>^hS}-R6O{vEy?GP-&qDMZ;yu>u?zvNIr(8C^v088t*qQi6i z;wYc?u#P|ePEyolgED46MQ`He`=X-4FG7AW{!Uf$X;JbP-i$x~vQVmSx$^ZH;u3Z` zL46kz$NCO9srL2&m3WP1sKP{ASuHF>GB3`?XK zW2oR|ia*}q`;OQ4&F;Hvlb3^nsyIO@q>2*DwYx4y&p2RfdDFLM}Rd*WgV7GamG-|a>buy@VbZ#t2mIC134KysHCLwidUqHIP^nJ^3#e@c0vx-lg@v+E zz%kUeQt_`gc>OUg1ZW(>!!tX6o^QSwfQrA3vpMziDG zx>EgA%IO4mk0VnT0I2d>1T{HBS%oFB_%W*7t@s{;*L`FAIXcVhKucw$lt*0rx-!-g zM`fIe2v+$No^+JF)1e$uWvtiiIJd6U1ysga1a}{hv}c19YTAGRzx&ccLK!I77;4(2 zc+24Rmn*8KabHPfGvL(BIZ76nhkq992+51dDkJ$2u94 zv9F#%iO9<}Xr(~A`hU#C20PAwfFf5Nkj8Xl|6@P`n>z}rp%oXHH zC4oob_7YgnX^_&C2~2pF4duA^JE|EV-4G zoergnD&{uj5HGOH%&~4KxLZ9z_rd)RAfcl>5nu^Tc_tmdNQxTM(dhls(N9WF_yq}{ zm;%RyyOizShAn1Gv7OTQXhx(CaxYTyZR(hCAEOJ^F<~fhOt@bO=$PQXSUrLyDCbcGIO{3|WzZ;OK2X40 zNoOV<;}`HY03rI@5!B=z$~NivrBc|s=zZgj0qcF&Ig{)n2;aF2G<*+72AKz7# z4ED|@{G4Tp&BhToadP|e#9{&#`B{sWyehG?T!o+TPHZRkTIfQr8@T-)w^_S_1IoFA zh_8u-Oet#{XMOVUS+pn4^%;~0@JWKlH}NGOhXu4mPzn4{>s=7Ki58#Ix-@Fh3AFfb z(slp;s_T0oGaB@11UR`@YnXI=1+WS04f z`pysY-kJhRH5t;u)rtK&b22t+I&XsmY{I%rstF9JHclYMQnPn^5BIbe6AMV5&*A=;R4pG zai)W=U>6I+1?~gqy;djsthUQ1p}i(%^(j?qqghn~vwDtn-TzSf0V(}?C=W*eX#_R- zjH){6_$@)Bu6G%qRmkTIq_2!IU}JgMR?iOjw7H1^_b`SH1`!^zbDFHTkkqCHF}MiKrF0r}}-@SCss#K6yI| z-9J6Z*Fee_g)v&*HubO4RyW2yiwwu0fZ_ifEVTn0^lI z`E_wZ?IhneT)(4SziYTooIF%&1aCCW75qlA z{yM>LmHY1ucm1W#3XF6sw!%G0|Le9@evdq;fMOUGgq|yZP^tzkgbRXyBnjtoe?kO* zTvT|{@fot@=#=Hpn%%$+a>LO7f=p+ZS=#t3;y8R;;UPB`;fr?-V0@DPMnrfbSKr~V zVpL5NFvgbT5NsjYqXWAKe?IsFABu#&selEQj~vvcf5qL05gfJ8X* zXHcdi!OpMhr(`_f3Hvgs5NK`&a$t$kYROEb!TwqiU=aw{;Nhnz=Hb5@N>np6zU0Bm z%WNf?V@M+A!e8fMImwBY5xy(ld2VW~3hfg!P(_zU`b2&=0 z8@Q!vtn`bK8JNq_h}Yy8g@@c&M9f?k5Yb>Rj#`NmnnqC3W~Q-_OtrHf<9tYmCgB8z zppqWTls6c|{wKt1avZKS1g$p=A))ui5MIK#qb9(@Mw!4OB#brz)|}dSDMModf%x(= zq`?G^M^KZO;~JO%g&5ZaPEeA?hNKTxc8KXQTstG#{8su7H0djrD88Y&!p2{Ud~N&_ zmHjfGJr-C;vzImkaUeB=$Oo`?C1~KEdOa1;fy}@hmLp!1lN6qGd~Pf>W)3G4F|Il2 z|5mlq&5R*QmJ>Gym9rBxfib)SaV#lO3K)aR31fJr-Wy{$g>hpHENql9oQj0e#=v@0 z7b_V0f7VgqK%v@QeiL047+ub=lP%fqeDp%GZ8LL0coRg_~(bn{ z%$*k_HGne|&`rR!Y%uST9!-56t{e!h8CkRA9}Z4%#7!Z&*P0vFB^@~7$~q-G6IV*l zT^^`sufnGma%t>55>M9SK6R)yGb*erXDR8~B%K+^VI{H5mX)_AB zvPsD-W=_Q>D$WdD*^JwW|03SBaX5&OlVkOFb}zFun~TD&Z2=!v7;P}To3;TCgh@A{`GSUPX91mk$;LZsi*g>jJ)ZW>{Rs z&S$gnQyd#V4X0mJ1?KJ{)0&FBw&Ry~=A_EoIXq#J*6&qaUyIwxda^YoTP_V2hGaxp zYMaBjw-?+3oZV%Irq0h6%b9Iydl=4X=}a!ij}FlIPGs(}jzv|6!``57MrjGB^ifdPMsO4}`c4_i#e9XWJA8DTCAth|xmzt)}rS@9KZ4iQ7XL{n$QT1+lQvNgHt4Yr*kmoeVrv*JVa2E(aP!lF>v z$Z|Ph)0Cvmg}Scb{j4;;>u}})TURAsskGD3(ZIk53p?a0!uZ5x2GS#i9DV`12Pvtk zR_kaZmAwQ`wl=MWNdL_Ei_%6Wxte#UPUsJgu$>M=<^SbbU@zB@eimMsxiG<}8O`F! zwMfO=bhxcSu0ukv)v8umZ-X~#>I@eLIC|*|s~99)xgKeItr;}Fu;;k}Y1VOm&%;lX zm7QL`T+*H=XK(KS*zJ%TiNg3%@-jQpd3;YV@|(Kc#NA zF8T!w6dq2sMU$8}l}AuSO&(=IEAZw30p3y [paths] change group + chmod [paths] change file mode (octal) + chown [paths] change owner + count [paths] display stats for paths + df display fs stats + du [paths] display disk usage statistics + ls [path] list a path + mkdir [paths] create directories + mkdirp [paths] create directories and their parents + mv [paths] dst move paths to destination + rm [paths] remove paths + rmdir [dirs] delete a directory + serverdefaults show server information + setrep [paths] set replication factor + stat [paths] stat information + test path test a path + touchz [paths] creates a file of zero length + usage show cmd usage + +Testing +======= +Tests can be run with ``nosetests``. Currently, only integration tests are +provided and use ``minicluster.py`` to spawn an HDFS minicluster. + +When running the tests, make sure that the ``HADOOP_HOME`` environment variable is set. +The minicluster uses the ``hadoop-mapreduce-client-jobclient.-tests.jar`` and +assumes this is located in ``HADOOP_HOME``. The job client test jar can also be specified +by using the ``HADOOP_JOBCLIENT_JAR`` environment variable. + +Also, make sure the ``JAVA_HOME`` environment variable is set. + +.. note:: A hadoop installation is only required for testing. + +TODO +==== +* Only supports Auth method SIMPLE. We might want to have SASL or KERBEROS as well +* More tests. Currently only integration tests with a minicluster are available. +* Tests for the CLI. +* Move to argparse to have arguments per command +* Return correct exit codes from cli client. +* Use generators when receiving messages (if and wherever possible). + +* Improve methods: + * [-rm [-f] [-r|-R] [-skipTrash] ...] (implement -f and -skipTrash) + +* Implement more methods: + * [-expunge] + * [-cat [-ignoreCrc] ...] + * [-copyFromLocal ... ] + * [-copyToLocal [-ignoreCrc] [-crc] ... ] + * [-cp ... ] + * [-get [-ignoreCrc] [-crc] ... ] + * [-getmerge [-nl] ] + * [-moveFromLocal ... ] + * [-moveToLocal ] + * [-put ... ] + * [-tail [-f] ] + * [-text [-ignoreCrc] ...] + +LICENSE +======= +Copyright (c) 2013 Spotify AB + +Licensed under the Apache License, Version 2.0 (the "License"); you may not +use this file except in compliance with the License. You may obtain a copy of +the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations under +the License. + +Some code was borrowed from https://code.google.com/p/protobuf-socket-rpc/ and +carries it's respective license. + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/doc/html/_static/ajax-loader.gif b/doc/html/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@Cw{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN literal 0 HcmV?d00001 diff --git a/doc/html/_static/basic.css b/doc/html/_static/basic.css new file mode 100644 index 0000000..a04c8e1 --- /dev/null +++ b/doc/html/_static/basic.css @@ -0,0 +1,540 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + width: 170px; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + width: 30px; +} + +img { + border: 0; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/doc/html/_static/comment-bright.png b/doc/html/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..551517b8c83b76f734ff791f847829a760ad1903 GIT binary patch literal 3500 zcmV;d4O8-oP)Oz@Z0f2-7z;ux~O9+4z06=<WDR*FRcSTFz- zW=q650N5=6FiBTtNC2?60Km==3$g$R3;-}uh=nNt1bYBr$Ri_o0EC$U6h`t_Jn<{8 z5a%iY0C<_QJh>z}MS)ugEpZ1|S1ukX&Pf+56gFW3VVXcL!g-k)GJ!M?;PcD?0HBc- z5#WRK{dmp}uFlRjj{U%*%WZ25jX z{P*?XzTzZ-GF^d31o+^>%=Ap99M6&ogks$0k4OBs3;+Bb(;~!4V!2o<6ys46agIcq zjPo+3B8fthDa9qy|77CdEc*jK-!%ZRYCZvbku9iQV*~a}ClFY4z~c7+0P?$U!PF=S z1Au6Q;m>#f??3%Vpd|o+W=WE9003S@Bra6Svp>fO002awfhw>;8}z{#EWidF!3EsG z3;bXU&9EIRU@z1_9W=mEXoiz;4lcq~xDGvV5BgyU zp1~-*fe8db$Osc*A=-!mVv1NJjtCc-h4>-CNCXm#Bp}I%6j35eku^v$Qi@a{RY)E3 zJ#qp$hg?Rwkvqr$GJ^buyhkyVfwECO)C{#lxu`c9ghrwZ&}4KmnvWKso6vH!8a<3Q zq36)6Xb;+tK10Vaz~~qUGsJ8#F2=(`u{bOVlVi)VBCHIn#u~6ztOL7=^<&SmcLWlF zMZgI*1b0FpVIDz9SWH+>*hr`#93(Um+6gxa1B6k+CnA%mOSC4s5&6UzVlpv@SV$}* z))J2sFA#f(L&P^E5{W}HC%KRUNwK6<(h|}}(r!{C=`5+6G)NjFlgZj-YqAG9lq?`C z$c5yc>d>VnA`E_*3F2Qp##d8RZb=H01_mm@+|Cqnc9PsG(F5HIG_C zt)aG3uTh7n6Et<2In9F>NlT@zqLtGcXcuVrX|L#Xx)I%#9!{6gSJKPrN9dR61N3(c z4Tcqi$B1Vr8Jidf7-t!G7_XR2rWwr)$3XQ?}=hpK0&Z&W{| zep&sA23f;Q!%st`QJ}G3cbou<7-yIK2z4nfCCCtN2-XOGSWo##{8Q{ATurxr~;I`ytDs%xbip}RzP zziy}Qn4Z2~fSycmr`~zJ=lUFdFa1>gZThG6M+{g7vkW8#+YHVaJjFF}Z#*3@$J_By zLtVo_L#1JrVVB{Ak-5=4qt!-@Mh}c>#$4kh<88)m#-k<%CLtzEP3leVno>={htGUuD;o7bD)w_sX$S}eAxwzy?UvgBH(S?;#HZiQMoS*2K2 zT3xe7t(~nU*1N5{rxB;QPLocnp4Ml>u<^FZwyC!nu;thW+pe~4wtZn|Vi#w(#jeBd zlf9FDx_yoPJqHbk*$%56S{;6Kv~mM9!g3B(KJ}#RZ#@)!hR|78Dq|Iq-afF%KE1Brn_fm;Im z_u$xr8UFki1L{Ox>G0o)(&RAZ;=|I=wN2l97;cLaHH6leTB-XXa*h%dBOEvi`+x zi?=Txl?TadvyiL>SuF~-LZ;|cS}4~l2eM~nS7yJ>iOM;atDY;(?aZ^v+mJV$@1Ote z62cPUlD4IWOIIx&SmwQ~YB{nzae3Pc;}r!fhE@iwJh+OsDs9zItL;~pu715HdQEGA zUct(O!LkCy1<%NCg+}G`0PgpNm-?d@-hMgNe6^V+j6x$b<6@S<$+<4_1hi}Ti zncS4LsjI}fWY1>OX6feMEuLErma3QLmkw?X+1j)X-&VBk_4Y;EFPF_I+q;9dL%E~B zJh;4Nr^(LEJ3myURP{Rblsw%57T)g973R8o)DE9*xN#~;4_o$q%o z4K@u`jhx2fBXC4{U8Qn{*%*B$Ge=nny$HAYq{=vy|sI0 z_vss+H_qMky?OB#|JK!>IX&II^LlUh#rO5!7TtbwC;iULyV-Xq?ybB}ykGP{?LpZ? z-G|jbTmIbG@7#ZCz;~eY(cDM(28Dyq{*m>M4?_iynUBkc4TkHUI6gT!;y-fz>HMcd z&t%Ugo)`Y2{>!cx7B7DI)$7;J(U{Spm-3gBzioV_{p!H$8L!*M!p0uH$#^p{Ui4P` z?ZJ24cOCDe-w#jZd?0@)|7iKK^;6KN`;!@ylm7$*nDhK&GcDTy000JJOGiWi{{a60 z|De66lK=n!32;bRa{vGf6951U69E94oEQKA00(qQO+^RV2niQ93PPz|JOBU!-bqA3 zR5;6pl1pe^WfX zkSdl!omi0~*ntl;2q{jA^;J@WT8O!=A(Gck8fa>hn{#u{`Tyg)!KXI6l>4dj==iVKK6+%4zaRizy(5eryC3d2 z+5Y_D$4}k5v2=Siw{=O)SWY2HJwR3xX1*M*9G^XQ*TCNXF$Vj(kbMJXK0DaS_Sa^1 z?CEa!cFWDhcwxy%a?i@DN|G6-M#uuWU>lss@I>;$xmQ|`u3f;MQ|pYuHxxvMeq4TW;>|7Z2*AsqT=`-1O~nTm6O&pNEK?^cf9CX= zkq5|qAoE7un3V z^yy=@%6zqN^x`#qW+;e7j>th{6GV}sf*}g7{(R#T)yg-AZh0C&U;WA`AL$qz8()5^ zGFi2`g&L7!c?x+A2oOaG0c*Bg&YZt8cJ{jq_W{uTdA-<;`@iP$$=$H?gYIYc_q^*$ z#k(Key`d40R3?+GmgK8hHJcwiQ~r4By@w9*PuzR>x3#(F?YW_W5pPc(t(@-Y{psOt zz2!UE_5S)bLF)Oz@Z0f2-7z;ux~O9+4z06=<WDR*FRcSTFz- zW=q650N5=6FiBTtNC2?60Km==3$g$R3;-}uh=nNt1bYBr$Ri_o0EC$U6h`t_Jn<{8 z5a%iY0C<_QJh>z}MS)ugEpZ1|S1ukX&Pf+56gFW3VVXcL!g-k)GJ!M?;PcD?0HBc- z5#WRK{dmp}uFlRjj{U%*%WZ25jX z{P*?XzTzZ-GF^d31o+^>%=Ap99M6&ogks$0k4OBs3;+Bb(;~!4V!2o<6ys46agIcq zjPo+3B8fthDa9qy|77CdEc*jK-!%ZRYCZvbku9iQV*~a}ClFY4z~c7+0P?$U!PF=S z1Au6Q;m>#f??3%Vpd|o+W=WE9003S@Bra6Svp>fO002awfhw>;8}z{#EWidF!3EsG z3;bXU&9EIRU@z1_9W=mEXoiz;4lcq~xDGvV5BgyU zp1~-*fe8db$Osc*A=-!mVv1NJjtCc-h4>-CNCXm#Bp}I%6j35eku^v$Qi@a{RY)E3 zJ#qp$hg?Rwkvqr$GJ^buyhkyVfwECO)C{#lxu`c9ghrwZ&}4KmnvWKso6vH!8a<3Q zq36)6Xb;+tK10Vaz~~qUGsJ8#F2=(`u{bOVlVi)VBCHIn#u~6ztOL7=^<&SmcLWlF zMZgI*1b0FpVIDz9SWH+>*hr`#93(Um+6gxa1B6k+CnA%mOSC4s5&6UzVlpv@SV$}* z))J2sFA#f(L&P^E5{W}HC%KRUNwK6<(h|}}(r!{C=`5+6G)NjFlgZj-YqAG9lq?`C z$c5yc>d>VnA`E_*3F2Qp##d8RZb=H01_mm@+|Cqnc9PsG(F5HIG_C zt)aG3uTh7n6Et<2In9F>NlT@zqLtGcXcuVrX|L#Xx)I%#9!{6gSJKPrN9dR61N3(c z4Tcqi$B1Vr8Jidf7-t!G7_XR2rWwr)$3XQ?}=hpK0&Z&W{| zep&sA23f;Q!%st`QJ}G3cbou<7-yIK2z4nfCCCtN2-XOGSWo##{8Q{ATurxr~;I`ytDs%xbip}RzP zziy}Qn4Z2~fSycmr`~zJ=lUFdFa1>gZThG6M+{g7vkW8#+YHVaJjFF}Z#*3@$J_By zLtVo_L#1JrVVB{Ak-5=4qt!-@Mh}c>#$4kh<88)m#-k<%CLtzEP3leVno>={htGUuD;o7bD)w_sX$S}eAxwzy?UvgBH(S?;#HZiQMoS*2K2 zT3xe7t(~nU*1N5{rxB;QPLocnp4Ml>u<^FZwyC!nu;thW+pe~4wtZn|Vi#w(#jeBd zlf9FDx_yoPJqHbk*$%56S{;6Kv~mM9!g3B(KJ}#RZ#@)!hR|78Dq|Iq-afF%KE1Brn_fm;Im z_u$xr8UFki1L{Ox>G0o)(&RAZ;=|I=wN2l97;cLaHH6leTB-XXa*h%dBOEvi`+x zi?=Txl?TadvyiL>SuF~-LZ;|cS}4~l2eM~nS7yJ>iOM;atDY;(?aZ^v+mJV$@1Ote z62cPUlD4IWOIIx&SmwQ~YB{nzae3Pc;}r!fhE@iwJh+OsDs9zItL;~pu715HdQEGA zUct(O!LkCy1<%NCg+}G`0PgpNm-?d@-hMgNe6^V+j6x$b<6@S<$+<4_1hi}Ti zncS4LsjI}fWY1>OX6feMEuLErma3QLmkw?X+1j)X-&VBk_4Y;EFPF_I+q;9dL%E~B zJh;4Nr^(LEJ3myURP{Rblsw%57T)g973R8o)DE9*xN#~;4_o$q%o z4K@u`jhx2fBXC4{U8Qn{*%*B$Ge=nny$HAYq{=vy|sI0 z_vss+H_qMky?OB#|JK!>IX&II^LlUh#rO5!7TtbwC;iULyV-Xq?ybB}ykGP{?LpZ? z-G|jbTmIbG@7#ZCz;~eY(cDM(28Dyq{*m>M4?_iynUBkc4TkHUI6gT!;y-fz>HMcd z&t%Ugo)`Y2{>!cx7B7DI)$7;J(U{Spm-3gBzioV_{p!H$8L!*M!p0uH$#^p{Ui4P` z?ZJ24cOCDe-w#jZd?0@)|7iKK^;6KN`;!@ylm7$*nDhK&GcDTy000JJOGiWi{{a60 z|De66lK=n!32;bRa{vGf6951U69E94oEQKA00(qQO+^RV2oe()A>y0J-2easEJ;K` zR5;6Jl3z%jbr{D#&+mQTbB>-f&3W<<%ayjKi&ZjBc2N<@)`~{dMXWB0(ajbV85_gJ zf(EU`iek}4Bt%55ix|sVMm1u8KvB#hnmU~_r<Ogd(A5vg_omvd-#L!=(BMVklxVqhdT zofSj`QA^|)G*lu58>#vhvA)%0Or&dIsb%b)st*LV8`ANnOipDbh%_*c7`d6# z21*z~Xd?ovgf>zq(o0?Et~9ti+pljZC~#_KvJhA>u91WRaq|uqBBKP6V0?p-NL59w zrK0w($_m#SDPQ!Z$nhd^JO|f+7k5xca94d2OLJ&sSxlB7F%NtrF@@O7WWlkHSDtor zzD?u;b&KN$*MnHx;JDy9P~G<{4}9__s&MATBV4R+MuA8TjlZ3ye&qZMCUe8ihBnHI zhMSu zSERHwrmBb$SWVr+)Yk2k^FgTMR6mP;@FY2{}BeV|SUo=mNk<-XSOHNErw>s{^rR-bu$@aN7= zj~-qXcS2!BA*(Q**BOOl{FggkyHdCJi_Fy>?_K+G+DYwIn8`29DYPg&s4$}7D`fv? zuyJ2sMfJX(I^yrf6u!(~9anf(AqAk&ke}uL0SIb-H!SaDQvd(}07*qoM6N<$g1Ha7 A2LJ#7 literal 0 HcmV?d00001 diff --git a/doc/html/_static/comment.png b/doc/html/_static/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..92feb52b8824c6b0f59b658b1196c61de9162a95 GIT binary patch literal 3445 zcmV-*4T|!KP)Oz@Z0f2-7z;ux~O9+4z06=<WDR*FRcSTFz- zW=q650N5=6FiBTtNC2?60Km==3$g$R3;-}uh=nNt1bYBr$Ri_o0EC$U6h`t_Jn<{8 z5a%iY0C<_QJh>z}MS)ugEpZ1|S1ukX&Pf+56gFW3VVXcL!g-k)GJ!M?;PcD?0HBc- z5#WRK{dmp}uFlRjj{U%*%WZ25jX z{P*?XzTzZ-GF^d31o+^>%=Ap99M6&ogks$0k4OBs3;+Bb(;~!4V!2o<6ys46agIcq zjPo+3B8fthDa9qy|77CdEc*jK-!%ZRYCZvbku9iQV*~a}ClFY4z~c7+0P?$U!PF=S z1Au6Q;m>#f??3%Vpd|o+W=WE9003S@Bra6Svp>fO002awfhw>;8}z{#EWidF!3EsG z3;bXU&9EIRU@z1_9W=mEXoiz;4lcq~xDGvV5BgyU zp1~-*fe8db$Osc*A=-!mVv1NJjtCc-h4>-CNCXm#Bp}I%6j35eku^v$Qi@a{RY)E3 zJ#qp$hg?Rwkvqr$GJ^buyhkyVfwECO)C{#lxu`c9ghrwZ&}4KmnvWKso6vH!8a<3Q zq36)6Xb;+tK10Vaz~~qUGsJ8#F2=(`u{bOVlVi)VBCHIn#u~6ztOL7=^<&SmcLWlF zMZgI*1b0FpVIDz9SWH+>*hr`#93(Um+6gxa1B6k+CnA%mOSC4s5&6UzVlpv@SV$}* z))J2sFA#f(L&P^E5{W}HC%KRUNwK6<(h|}}(r!{C=`5+6G)NjFlgZj-YqAG9lq?`C z$c5yc>d>VnA`E_*3F2Qp##d8RZb=H01_mm@+|Cqnc9PsG(F5HIG_C zt)aG3uTh7n6Et<2In9F>NlT@zqLtGcXcuVrX|L#Xx)I%#9!{6gSJKPrN9dR61N3(c z4Tcqi$B1Vr8Jidf7-t!G7_XR2rWwr)$3XQ?}=hpK0&Z&W{| zep&sA23f;Q!%st`QJ}G3cbou<7-yIK2z4nfCCCtN2-XOGSWo##{8Q{ATurxr~;I`ytDs%xbip}RzP zziy}Qn4Z2~fSycmr`~zJ=lUFdFa1>gZThG6M+{g7vkW8#+YHVaJjFF}Z#*3@$J_By zLtVo_L#1JrVVB{Ak-5=4qt!-@Mh}c>#$4kh<88)m#-k<%CLtzEP3leVno>={htGUuD;o7bD)w_sX$S}eAxwzy?UvgBH(S?;#HZiQMoS*2K2 zT3xe7t(~nU*1N5{rxB;QPLocnp4Ml>u<^FZwyC!nu;thW+pe~4wtZn|Vi#w(#jeBd zlf9FDx_yoPJqHbk*$%56S{;6Kv~mM9!g3B(KJ}#RZ#@)!hR|78Dq|Iq-afF%KE1Brn_fm;Im z_u$xr8UFki1L{Ox>G0o)(&RAZ;=|I=wN2l97;cLaHH6leTB-XXa*h%dBOEvi`+x zi?=Txl?TadvyiL>SuF~-LZ;|cS}4~l2eM~nS7yJ>iOM;atDY;(?aZ^v+mJV$@1Ote z62cPUlD4IWOIIx&SmwQ~YB{nzae3Pc;}r!fhE@iwJh+OsDs9zItL;~pu715HdQEGA zUct(O!LkCy1<%NCg+}G`0PgpNm-?d@-hMgNe6^V+j6x$b<6@S<$+<4_1hi}Ti zncS4LsjI}fWY1>OX6feMEuLErma3QLmkw?X+1j)X-&VBk_4Y;EFPF_I+q;9dL%E~B zJh;4Nr^(LEJ3myURP{Rblsw%57T)g973R8o)DE9*xN#~;4_o$q%o z4K@u`jhx2fBXC4{U8Qn{*%*B$Ge=nny$HAYq{=vy|sI0 z_vss+H_qMky?OB#|JK!>IX&II^LlUh#rO5!7TtbwC;iULyV-Xq?ybB}ykGP{?LpZ? z-G|jbTmIbG@7#ZCz;~eY(cDM(28Dyq{*m>M4?_iynUBkc4TkHUI6gT!;y-fz>HMcd z&t%Ugo)`Y2{>!cx7B7DI)$7;J(U{Spm-3gBzioV_{p!H$8L!*M!p0uH$#^p{Ui4P` z?ZJ24cOCDe-w#jZd?0@)|7iKK^;6KN`;!@ylm7$*nDhK&GcDTy000JJOGiWi{{a60 z|De66lK=n!32;bRa{vGf6951U69E94oEQKA00(qQO+^RV2nzr)JMUJvzW@LNr%6OX zR5;6Zk;`k`RTRfR-*ac2G}PGmXsUu>6ce?Lsn$m^3Q`48f|TwQ+_-Qh=t8Ra7nE)y zf@08(pjZ@22^EVjG*%30TJRMkBUC$WqZ73uoiv&J=APqX;!v%AH}`Vx`999MVjXwy z{f1-vh8P<=plv&cZ>p5jjX~Vt&W0e)wpw1RFRuRdDkwlKb01tp5 zP=trFN0gH^|L4jJkB{6sCV;Q!ewpg-D&4cza%GQ*b>R*=34#dW;ek`FEiB(vnw+U# zpOX5UMJBhIN&;D1!yQoIAySC!9zqJmmfoJqmQp}p&h*HTfMh~u9rKic2oz3sNM^#F zBIq*MRLbsMt%y{EHj8}LeqUUvoxf0=kqji62>ne+U`d#%J)abyK&Y`=eD%oA!36<)baZyK zXJh5im6umkS|_CSGXips$nI)oBHXojzBzyY_M5K*uvb0_9viuBVyV%5VtJ*Am1ag# zczbv4B?u8j68iOz<+)nDu^oWnL+$_G{PZOCcOGQ?!1VCefves~rfpaEZs-PdVYMiV z98ElaJ2}7f;htSXFY#Zv?__sQeckE^HV{ItO=)2hMQs=(_ Xn!ZpXD%P(H00000NkvXXu0mjf= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/doc/html/_static/down-pressed.png b/doc/html/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..6f7ad782782e4f8e39b0c6e15c7344700cdd2527 GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}Z23@f-Ava~9&<9T!#}JFtXD=!G zGdl{fK6ro2OGiOl+hKvH6i=D3%%Y^j`yIkRn!8O>@bG)IQR0{Kf+mxNd=_WScA8u_ z3;8(7x2){m9`nt+U(Nab&1G)!{`SPVpDX$w8McLTzAJ39wprG3p4XLq$06M`%}2Yk zRPPsbES*dnYm1wkGL;iioAUB*Or2kz6(-M_r_#Me-`{mj$Z%( literal 0 HcmV?d00001 diff --git a/doc/html/_static/down.png b/doc/html/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..3003a88770de3977d47a2ba69893436a2860f9e7 GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}xaV3tUZ$qnrLa#kt978NlpS`ru z&)HFc^}^>{UOEce+71h5nn>6&w6A!ieNbu1wh)UGh{8~et^#oZ1# z>T7oM=FZ~xXWnTo{qnXm$ZLOlqGswI_m2{XwVK)IJmBjW{J3-B3x@C=M{ShWt#fYS9M?R;8K$~YwlIqwf>VA7q=YKcwf2DS4Zj5inDKXXB1zl=(YO3ST6~rDq)&z z*o>z)=hxrfG-cDBW0G$!?6{M<$@{_4{m1o%Ub!naEtn|@^frU1tDnm{r-UW|!^@B8 literal 0 HcmV?d00001 diff --git a/doc/html/_static/file.png b/doc/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..d18082e397e7e54f20721af768c4c2983258f1b4 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP$HyOL$D9)yc9|lc|nKf<9@eUiWd>3GuTC!a5vdfWYEazjncPj5ZQX%+1 zt8B*4=d)!cdDz4wr^#OMYfqGz$1LDFF>|#>*O?AGil(WEs?wLLy{Gj2J_@opDm%`dlax3yA*@*N$G&*ukFv>P8+2CBWO(qz zD0k1@kN>hhb1_6`&wrCswzINE(evt-5C1B^STi2@PmdKI;Vst0PQB6!2kdN literal 0 HcmV?d00001 diff --git a/doc/html/_static/jquery.js b/doc/html/_static/jquery.js new file mode 100644 index 0000000..198b3ff --- /dev/null +++ b/doc/html/_static/jquery.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
"+""+"
",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
t
",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/doc/html/_static/minus.png b/doc/html/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..da1c5620d10c047525a467a425abe9ff5269cfc2 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?>< z>&kweokM_|(Po{+Q=kw>iEBiObAE1aYF-J$w=>iB1I2R$WLpMkF=>bh=@O1TaS?83{1OVknK< z>&kweokM`jkU7Va11Q8%;u=xnoS&PUnpeW`?aZ|OK(QcC7sn8Z%gHvy&v=;Q4jejg zV8NnAO`-4Z@2~&zopr02WF_WB>pF literal 0 HcmV?d00001 diff --git a/doc/html/_static/pygments.css b/doc/html/_static/pygments.css new file mode 100644 index 0000000..1a14f2a --- /dev/null +++ b/doc/html/_static/pygments.css @@ -0,0 +1,62 @@ +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #303030 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0040D0 } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/doc/html/_static/searchtools.js b/doc/html/_static/searchtools.js new file mode 100644 index 0000000..56676b2 --- /dev/null +++ b/doc/html/_static/searchtools.js @@ -0,0 +1,622 @@ +/* + * searchtools.js_t + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for the full-text search. + * + * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + + +/** + * Simple result scoring code. + */ +var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [filename, title, anchor, descr, score] + // and returns the new score. + /* + score: function(result) { + return result[4]; + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: {0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5}, // used to be unimportantResults + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + // query found in terms + term: 5 +}; + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, + dataType: "script", cache: true, + complete: function(jqxhr, textstatus) { + if (textstatus != "success") { + document.getElementById("searchindexloader").src = url; + } + }}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + var i; + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + } + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $('
'); + } + // Prettify the comment rating. + comment.pretty_rating = comment.rating + ' point' + + (comment.rating == 1 ? '' : 's'); + // Make a class (for displaying not yet moderated comments differently) + comment.css_class = comment.displayed ? '' : ' moderate'; + // Create a div for this comment. + var context = $.extend({}, opts, comment); + var div = $(renderTemplate(commentTemplate, context)); + + // If the user has voted on this comment, highlight the correct arrow. + if (comment.vote) { + var direction = (comment.vote == 1) ? 'u' : 'd'; + div.find('#' + direction + 'v' + comment.id).hide(); + div.find('#' + direction + 'u' + comment.id).show(); + } + + if (opts.moderator || comment.text != '[deleted]') { + div.find('a.reply').show(); + if (comment.proposal_diff) + div.find('#sp' + comment.id).show(); + if (opts.moderator && !comment.displayed) + div.find('#cm' + comment.id).show(); + if (opts.moderator || (opts.username == comment.username)) + div.find('#dc' + comment.id).show(); + } + return div; + } + + /** + * A simple template renderer. Placeholders such as <%id%> are replaced + * by context['id'] with items being escaped. Placeholders such as <#id#> + * are not escaped. + */ + function renderTemplate(template, context) { + var esc = $(document.createElement('div')); + + function handle(ph, escape) { + var cur = context; + $.each(ph.split('.'), function() { + cur = cur[this]; + }); + return escape ? esc.text(cur || "").html() : cur; + } + + return template.replace(/<([%#])([\w\.]*)\1>/g, function() { + return handle(arguments[2], arguments[1] == '%' ? true : false); + }); + } + + /** Flash an error message briefly. */ + function showError(message) { + $(document.createElement('div')).attr({'class': 'popup-error'}) + .append($(document.createElement('div')) + .attr({'class': 'error-message'}).text(message)) + .appendTo('body') + .fadeIn("slow") + .delay(2000) + .fadeOut("slow"); + } + + /** Add a link the user uses to open the comments popup. */ + $.fn.comment = function() { + return this.each(function() { + var id = $(this).attr('id').substring(1); + var count = COMMENT_METADATA[id]; + var title = count + ' comment' + (count == 1 ? '' : 's'); + var image = count > 0 ? opts.commentBrightImage : opts.commentImage; + var addcls = count == 0 ? ' nocomment' : ''; + $(this) + .append( + $(document.createElement('a')).attr({ + href: '#', + 'class': 'sphinx-comment-open' + addcls, + id: 'ao' + id + }) + .append($(document.createElement('img')).attr({ + src: image, + alt: 'comment', + title: title + })) + .click(function(event) { + event.preventDefault(); + show($(this).attr('id').substring(2)); + }) + ) + .append( + $(document.createElement('a')).attr({ + href: '#', + 'class': 'sphinx-comment-close hidden', + id: 'ah' + id + }) + .append($(document.createElement('img')).attr({ + src: opts.closeCommentImage, + alt: 'close', + title: 'close' + })) + .click(function(event) { + event.preventDefault(); + hide($(this).attr('id').substring(2)); + }) + ); + }); + }; + + var opts = { + processVoteURL: '/_process_vote', + addCommentURL: '/_add_comment', + getCommentsURL: '/_get_comments', + acceptCommentURL: '/_accept_comment', + deleteCommentURL: '/_delete_comment', + commentImage: '/static/_static/comment.png', + closeCommentImage: '/static/_static/comment-close.png', + loadingImage: '/static/_static/ajax-loader.gif', + commentBrightImage: '/static/_static/comment-bright.png', + upArrow: '/static/_static/up.png', + downArrow: '/static/_static/down.png', + upArrowPressed: '/static/_static/up-pressed.png', + downArrowPressed: '/static/_static/down-pressed.png', + voting: false, + moderator: false + }; + + if (typeof COMMENT_OPTIONS != "undefined") { + opts = jQuery.extend(opts, COMMENT_OPTIONS); + } + + var popupTemplate = '\ +
\ +

\ + Sort by:\ + best rated\ + newest\ + oldest\ +

\ +
Comments
\ +
\ + loading comments...
\ +
    \ +
    \ +

    Add a comment\ + (markup):

    \ +
    \ + reStructured text markup: *emph*, **strong**, \ + ``code``, \ + code blocks: :: and an indented block after blank line
    \ +
    \ + \ +

    \ + \ + Propose a change ▹\ + \ + \ + Propose a change ▿\ + \ +

    \ + \ + \ + \ + \ + \ +
    \ +
    '; + + var commentTemplate = '\ +
    \ +
    \ +
    \ + \ + \ + \ + \ + \ + \ +
    \ +
    \ + \ + \ + \ + \ + \ + \ +
    \ +
    \ +
    \ +

    \ + <%username%>\ + <%pretty_rating%>\ + <%time.delta%>\ +

    \ +
    <#text#>
    \ +

    \ + \ + reply ▿\ + proposal ▹\ + proposal ▿\ + \ + \ +

    \ +
    \
    +<#proposal_diff#>\
    +        
    \ +
      \ +
      \ +
      \ +
      \ + '; + + var replyTemplate = '\ +
    • \ +
      \ +
      \ + \ + \ + \ + \ + \ + \ +
      \ +
    • '; + + $(document).ready(function() { + init(); + }); +})(jQuery); + +$(document).ready(function() { + // add comment anchors for all paragraphs that are commentable + $('.sphinx-has-comment').comment(); + + // highlight search words in search results + $("div.context").each(function() { + var params = $.getQueryParameters(); + var terms = (params.q) ? params.q[0].split(/\s+/) : []; + var result = $(this); + $.each(terms, function() { + result.highlightText(this.toLowerCase(), 'highlighted'); + }); + }); + + // directly open comment window if requested + var anchor = document.location.hash; + if (anchor.substring(0, 9) == '#comment-') { + $('#ao' + anchor.substring(9)).click(); + document.location.hash = '#s' + anchor.substring(9); + } +}); diff --git a/doc/html/genindex.html b/doc/html/genindex.html new file mode 100644 index 0000000..5dc9639 --- /dev/null +++ b/doc/html/genindex.html @@ -0,0 +1,229 @@ + + + + + + + + + Index — snakebite 1.0 documentation + + + + + + + + + + + + + +
      +
      +
      +
      + + +

      Index

      + +
      + C + | D + | L + | M + | R + | S + | T + +
      +

      C

      +
      + + +
      + +
      chgrp() (client.Client method) +
      + + +
      chmod() (client.Client method) +
      + + +
      chown() (client.Client method) +
      + +
      + +
      Client (class in client) +
      + + +
      client (module) +
      + + +
      count() (client.Client method) +
      + +
      + +

      D

      + + + +
      + +
      delete() (client.Client method) +
      + + +
      df() (client.Client method) +
      + +
      + +
      du() (client.Client method) +
      + +
      + +

      L

      + + +
      + +
      ls() (client.Client method) +
      + +
      + +

      M

      + + +
      + +
      mkdir() (client.Client method) +
      + +
      + +

      R

      + + + +
      + +
      rename() (client.Client method) +
      + +
      + +
      rmdir() (client.Client method) +
      + +
      + +

      S

      + + + +
      + +
      serverdefaults() (client.Client method) +
      + + +
      setrep() (client.Client method) +
      + +
      + +
      stat() (client.Client method) +
      + +
      + +

      T

      + + + +
      + +
      test() (client.Client method) +
      + +
      + +
      touchz() (client.Client method) +
      + +
      + + + + + + +
      +
      + + + + + +
      +
      +
      + + + + + \ No newline at end of file diff --git a/doc/html/index.html b/doc/html/index.html new file mode 100644 index 0000000..0d75124 --- /dev/null +++ b/doc/html/index.html @@ -0,0 +1,593 @@ + + + + + + + + Snakebite documentation — snakebite 1.0 documentation + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Snakebite documentation¶

      +

      Snakebite is a pure python HDFS client. It uses protobuf messages over Hadoop +RPC to communicate with the namenode.

      +

      Snakebite can be used as a library and comes with a command line interface (CLI). +The CLI mimicks the hadoop client as good as possible

      +
      +
      +

      Client library¶

      +
      +
      +class client.Client(host, port)¶
      +

      Class that acts as a client to HDFS.

      +

      Example:

      +
      >>> from spotify.snakebite.client import Client
      +>>> client = Client("localhost", 54310)
      +
      +
      +
      +

      Note

      +

      paths parameters in methods are often passed as lists, since operations can work on multiple +paths. The return values of methods are always lists of results.

      +
      +
      +

      Note

      +

      Parameters like include_children, include_toplevel and recurse are not used +when paths contain globs.

      +
      + +++ + + + +
      Parameters:
        +
      • host (string) – Hostname or IP address of the NameNode
      • +
      • port (int) – RPC Port of the NameNode
      • +
      +
      +
      +
      +chgrp(paths, group, recurse=False)¶
      +

      Change the group of paths.

      + +++ + + + +
      Parameters:
        +
      • paths (list) – List of paths to chgrp
      • +
      • group – New group
      • +
      • recurse (boolean) – Recursive chgrp
      • +
      +
      +
      + +
      +
      +chmod(paths, mode, recurse=False)¶
      +

      Change the mode for paths. This returns a list of maps containing the resut of the operation.

      + +++ + + + +
      Parameters:
        +
      • paths (list) – List of paths to chmod
      • +
      • mode (int) – Octal mode (e.g. 0755)
      • +
      • recurse (boolean) – Recursive chmod
      • +
      +
      +
      +

      Note

      +

      The top level directory is always included when recurse=True

      +
      +
      + +
      +
      +chown(paths, owner, recurse=False)¶
      +

      Change the owner for paths. The owner can be specified as user or user:group

      + +++ + + + +
      Parameters:
        +
      • paths (list) – List of paths to chmod
      • +
      • owner (string) – New owner
      • +
      • recurse (boolean) – Recursive chown
      • +
      +
      +

      This always include the toplevel when recursing.

      +
      + +
      +
      +count(paths)¶
      +

      Count files in a path

      + +++ + + + +
      Parameters:paths (list) – List of paths to count
      +

      Examples:

      +
      >>> client.count(['/'])
      +[{'spaceConsumed': 260185L, 'quota': 2147483647L, 'spaceQuota': 18446744073709551615L, 'length': 260185L, 'directoryCount': 9L, 'path': '/', 'fileCount': 34L}]
      +
      +
      +
      + +
      +
      +delete(paths, recurse=False)¶
      +

      Delete paths

      + +++ + + + +
      Parameters:
        +
      • paths (list) – Paths to delete
      • +
      • recurse (boolean) – Recursive delete (use with care!)
      • +
      +
      +
      + +
      +
      +df()¶
      +

      Get FS information

      +

      Examples:

      +
      >>> client.df()
      +[{'used': 491520L, 'capacity': 120137519104L, 'under_replicated': 0L, 'missing_blocks': 0L, 'filesystem': 'hdfs://localhost:54310', 'remaining': 19669295104L, 'corrupt_blocks': 0L}]
      +
      +
      +
      + +
      +
      +du(paths, include_toplevel=False, include_children=True)¶
      +

      Returns size information for paths

      + +++ + + + + + +
      Parameters:
        +
      • paths (list) – Paths to du
      • +
      • include_toplevel (boolean) – Include the given path in the result. If the path is a file, include_toplevel is always True.
      • +
      • include_children (boolean) – Include child nodes in the result.
      • +
      +
      Returns:

      list of dictionaries

      +
      +

      Examples:

      +

      Children:

      +
      >>> client.du(['/'])
      +[{'path': '/Makefile', 'length': 6783L}, {'path': '/build', 'length': 244778L}, {'path': '/index.asciidoc', 'length': 100L}, {'path': '/source', 'length': 8524L}]
      +
      +
      +

      Directory only:

      +
      >>> client.du(['/'], include_toplevel=True, include_children=False)
      +[{'path': '/', 'length': 260185L}]
      +
      +
      +
      + +
      +
      +ls(paths, recurse=False, include_toplevel=False, include_children=True)¶
      +

      Issues ‘ls’ command and returns a list of maps that contain fileinfo

      + +++ + + + + + +
      Parameters:
        +
      • paths (list) – Paths to list
      • +
      • recurse (boolean) – Recursive listing
      • +
      • include_toplevel (boolean) – Include the given path in the listing. If the path is a file, include_toplevel is always True.
      • +
      • include_children (boolean) – Include child nodes in the listing.
      • +
      +
      Returns:

      list of dictionaries

      +
      +

      Examples:

      +

      Directory listing

      +
      >>> client.ls(["/"])
      +[{'group': u'supergroup', 'permission': 420, 'file_type': 'f', 'access_time': 1367317324982L, 'block_replication': 1, 'modification_time': 1367317325346L, 'length': 6783L, 'blocksize': 134217728L, 'owner': u'wouter', 'path': '/Makefile'}, {'group': u'supergroup', 'permission': 493, 'file_type': 'd', 'access_time': 0L, 'block_replication': 0, 'modification_time': 1367317325431L, 'length': 0L, 'blocksize': 0L, 'owner': u'wouter', 'path': '/build'}, {'group': u'supergroup', 'permission': 420, 'file_type': 'f', 'access_time': 1367317326510L, 'block_replication': 1, 'modification_time': 1367317326522L, 'length': 100L, 'blocksize': 134217728L, 'owner': u'wouter', 'path': '/index.asciidoc'}, {'group': u'supergroup', 'permission': 493, 'file_type': 'd', 'access_time': 0L, 'block_replication': 0, 'modification_time': 1367317326628L, 'length': 0L, 'blocksize': 0L, 'owner': u'wouter', 'path': '/source'}]
      +
      +
      +

      File listing

      +
      >>> client.ls(["/Makefile"])
      +[{'group': u'supergroup', 'permission': 420, 'file_type': 'f', 'access_time': 1367317324982L, 'block_replication': 1, 'modification_time': 1367317325346L, 'length': 6783L, 'blocksize': 134217728L, 'owner': u'wouter', 'path': '/Makefile'}]
      +
      +
      +

      Get directory information

      +
      >>> client.ls(["/source"], include_toplevel=True, include_children=False)
      +[{'group': u'supergroup', 'permission': 493, 'file_type': 'd', 'access_time': 0L, 'block_replication': 0, 'modification_time': 1367317326628L, 'length': 0L, 'blocksize': 0L, 'owner': u'wouter', 'path': '/source'}]
      +
      +
      +
      + +
      +
      +mkdir(paths, create_parent=False, mode=493)¶
      +

      Create a directoryCount

      + +++ + + + +
      Parameters:
        +
      • paths (list of strings) – Paths to create
      • +
      • create_parent (boolean) – Also create the parent directories
      • +
      • mode (int) – Mode the directory should be created with
      • +
      +
      +
      + +
      +
      +rename(paths, dst)¶
      +

      Rename (move) path(s) to a destination

      + +++ + + + +
      Parameters:
        +
      • paths (list) – Source paths
      • +
      • dst (string) – destination
      • +
      +
      +
      + +
      +
      +rmdir(paths)¶
      +

      Delete a directory

      + +++ + + + +
      Parameters:paths (list) – Paths to delete
      +
      + +
      +
      +serverdefaults()¶
      +

      Get server defaults

      +

      Example:

      +
      >>> client.serverdefaults()
      +{'writePacketSize': 65536, 'fileBufferSize': 4096, 'replication': 1, 'bytesPerChecksum': 512, 'trashInterval': 0L, 'blockSize': 134217728L, 'encryptDataTransfer': False, 'checksumType': 2}
      +
      +
      +
      + +
      +
      +setrep(paths, replication, recurse=False)¶
      +

      Set the replication factor for paths

      + +++ + + + +
      Parameters:
        +
      • paths (list) – Paths
      • +
      • replication – Replication factor
      • +
      • recurse (boolean) – Apply replication factor recursive
      • +
      +
      +
      + +
      +
      +stat(paths)¶
      +

      Stat a fileCount

      + +++ + + + +
      Parameters:paths (string) – Path
      +

      Example:

      +
      >>> client.stat(['/index.asciidoc'])
      +[{'blocksize': 134217728L, 'owner': u'wouter', 'length': 100L, 'access_time': 1367317326510L, 'group': u'supergroup', 'permission': 420, 'file_type': 'f', 'path': '/index.asciidoc', 'modification_time': 1367317326522L, 'block_replication': 1}]
      +
      +
      +
      + +
      +
      +test(path, exists=False, directory=False, zero_length=False)¶
      +

      Test if a paht exist, is a directory or has zero length

      + +++ + + + +
      Parameters:
        +
      • path (string) – Path to test
      • +
      • exists (boolean) – Check if the path exists
      • +
      • directory – Check if the path exists
      • +
      • zero_length (boolean) – Check if the path is zero-length
      • +
      +
      +
      +

      Note

      +

      directory and zero lenght are AND’d.

      +
      +
      + +
      +
      +touchz(paths, replication=None, blocksize=None)¶
      +

      Create a zero length file or updates the timestamp on a zero length file

      + +++ + + + +
      Parameters:
        +
      • paths (list) – Paths
      • +
      • replication – Replication factor
      • +
      • blocksize (int) – Block size (in bytes) of the newly created file
      • +
      +
      +
      + +
      + +
      +
      +

      CLI client¶

      +
      Usage: snakebite [options] cmd [args]
      +
      +Options:
      +  -h, --help            show this help message and exit
      +  -D, --debug           Show debug information
      +  -j, --json            JSON output
      +  -n NAMENODE, --namenode=NAMENODE
      +                        namenode host (default: localhost)
      +  -p PORT, --port=PORT  namenode RPC port (default: 54310)
      +  -R, --recurse         recurse into subdirectories
      +  -d, --directory       show only the path and no children / check if path is
      +                        a dir
      +  -H, --human           human readable output
      +  -s, --summary         print summarized output
      +  -z, --zero            check for zero length
      +  -e, --exists          check if file exists
      +
      +Commands:
      +  chgrp <grp> [paths]            change group
      +  chmod <mode> [paths]           change file mode (octal)
      +  chown <owner:grp> [paths]      change owner
      +  count [paths]                  display stats for paths
      +  df                             display fs stats
      +  du [paths]                     display disk usage statistics
      +  ls [path]                      list a path
      +  mkdir [paths]                  create directories
      +  mkdirp [paths]                 create directories and their parents
      +  mv [paths] dst                 move paths to destination
      +  rm [paths]                     remove paths
      +  rmdir [dirs]                   delete a directory
      +  serverdefaults                 show server information
      +  setrep <rep> [paths]           set replication factor
      +  stat [paths]                   stat information
      +  test path                      test a path
      +  touchz [paths]                 creates a file of zero length
      +  usage <cmd>                    show cmd usage
      +
      +
      +
      +

      Testing¶

      +

      Tests can be run with nosetests. Currently, only integration tests are +provided and use minicluster.py to spawn an HDFS minicluster.

      +

      When running the tests, make sure that the HADOOP_HOME environment variable is set. +The minicluster uses the hadoop-mapreduce-client-jobclient.<version>-tests.jar and +assumes this is located in HADOOP_HOME. The job client test jar can also be specified +by using the HADOOP_JOBCLIENT_JAR environment variable.

      +

      Also, make sure the JAVA_HOME environment variable is set.

      +
      +

      Note

      +

      A hadoop installation is only required for testing.

      +
      +
      +
      +

      TODO¶

      +
        +
      • Only supports Auth method SIMPLE. We might want to have SASL or KERBEROS as well

        +
      • +
      • More tests. Currently only integration tests with a minicluster are available.

        +
      • +
      • Tests for the CLI.

        +
      • +
      • Move to argparse to have arguments per command

        +
      • +
      • Return correct exit codes from cli client.

        +
      • +
      • Use generators when receiving messages (if and wherever possible).

        +
      • +
      • +
        Improve methods:
        +
          +
        • [-rm [-f] [-r|-R] [-skipTrash] <src> ...] (implement -f and -skipTrash)
        • +
        +
        +
        +
      • +
      • +
        Implement more methods:
        +
          +
        • [-expunge]
        • +
        • [-cat [-ignoreCrc] <src> ...]
        • +
        • [-copyFromLocal <localsrc> ... <dst>]
        • +
        • [-copyToLocal [-ignoreCrc] [-crc] <src> ... <localdst>]
        • +
        • [-cp <src> ... <dst>]
        • +
        • [-get [-ignoreCrc] [-crc] <src> ... <localdst>]
        • +
        • [-getmerge [-nl] <src> <localdst>]
        • +
        • [-moveFromLocal <localsrc> ... <dst>]
        • +
        • [-moveToLocal <src> <localdst>]
        • +
        • [-put <localsrc> ... <dst>]
        • +
        • [-tail [-f] <file>]
        • +
        • [-text [-ignoreCrc] <src> ...]
        • +
        +
        +
        +
      • +
      +
      +
      +

      LICENSE¶

      +

      Copyright (c) 2013 Spotify AB

      +

      Licensed under the Apache License, Version 2.0 (the “License”); you may not +use this file except in compliance with the License. You may obtain a copy of +the License at

      +

      http://www.apache.org/licenses/LICENSE-2.0

      +

      Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an “AS IS” BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations under +the License.

      +

      Some code was borrowed from https://code.google.com/p/protobuf-socket-rpc/ and +carries it’s respective license.

      +
      +
      +

      Indices and tables¶

      + +
      + + +
      +
      +
      +
      +
      +

      Table Of Contents

      + + +

      This Page

      + + + +
      +
      +
      +
      + + + + \ No newline at end of file diff --git a/doc/html/objects.inv b/doc/html/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..f21a0236b539c3c7a8289bb469024fd530dfcb0d GIT binary patch literal 341 zcmV-b0jmBZAX9K?X>NERX>N99Zgg*Qc_4OWa&u{KZXhxWBOp+6Z)#;@bUGk&ZeeR> zVrg_`3L_v^WpZ_Ab7^j8AbMmA7hNVHoqe7AP~SR1yq5^r87g4j=? zrh~habcxOxnMTN<%r(rhnSEsNE;}@edN>}t?`&?j5sQjB*1m{#hU?e-uusbT{H1}7 z*J8U&yY&>ytukF0%DFz4+W;pm%Dp}5K2(&qRa_bW>B@No2UHA(5xH1TP?3!Bkz1U| ne+vPDQ8R|IZpFS+MQNWLS4@~?jYc>lXdGoCetO@(_ug9(P5hT{ literal 0 HcmV?d00001 diff --git a/doc/html/py-modindex.html b/doc/html/py-modindex.html new file mode 100644 index 0000000..38be425 --- /dev/null +++ b/doc/html/py-modindex.html @@ -0,0 +1,112 @@ + + + + + + + + Python Module Index — snakebite 1.0 documentation + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + + +

      Python Module Index

      + +
      + c +
      + + + + + + + +
       
      + c
      + client +
      + + +
      +
      +
      +
      +
      + + +
      +
      +
      +
      + + + + \ No newline at end of file diff --git a/doc/html/search.html b/doc/html/search.html new file mode 100644 index 0000000..9e6c7c9 --- /dev/null +++ b/doc/html/search.html @@ -0,0 +1,105 @@ + + + + + + + + Search — snakebite 1.0 documentation + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +

      Search

      +
      + +

      + Please activate JavaScript to enable the search + functionality. +

      +
      +

      + From here you can search these documents. Enter your search + words into the box below and click "search". Note that the search + function will automatically search for all of the words. Pages + containing fewer words won't appear in the result list. +

      +
      + + + +
      + +
      + +
      + +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + + \ No newline at end of file diff --git a/doc/html/searchindex.js b/doc/html/searchindex.js new file mode 100644 index 0000000..6f2ebd2 --- /dev/null +++ b/doc/html/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({envversion:42,terms:{blocksiz:0,oper:0,code:0,help:0,impli:0,"244778l":0,"1367317325346l":0,text:0,over:0,move:0,obtain:0,jar:0,expung:0,include_toplevel:0,permiss:0,under_repl:0,disk:0,copyfromloc:0,children:0,languag:0,paramet:0,current:0,onli:0,block_repl:0,group:0,copyright:0,show:0,readabl:0,except:0,makefil:0,should:0,spotifi:0,tail:0,filecount:0,factor:0,might:0,lenght:0,applic:0,file:0,good:0,"return":0,string:0,get:0,python:0,timestamp:0,"134217728l":0,none:0,auth:0,java_hom:0,govern:0,wouter:0,recurs:0,requir:0,mapreduc:0,like:0,specif:0,level:0,"34l":0,include_children:0,cmd:0,list:0,borrow:0,server:0,crc:0,"491520l":0,integr:0,zero_length:0,contain:0,debug:0,output:0,namenod:0,page:0,dir:0,summari:0,miniclust:0,www:0,set:0,often:0,"1367317325431l":0,kerbero:0,some:0,fals:0,checksumtyp:0,resut:0,zero:0,"18446744073709551615l":0,result:0,pass:0,unless:0,fileinfo:0,port:0,protobuf:0,variabl:0,index:0,"100l":0,writepackets:0,localdst:0,movetoloc:0,dst:0,per:0,hadoop_jobclient_jar:0,delet:0,version:0,exit:0,directori:0,"1367317326522l":0,print:0,"new":0,method:0,localhost:0,either:0,run:0,parent:0,access_tim:0,serverdefault:0,gener:0,usag:0,asciidoc:0,"1367317326628l":0,host:0,dictionari:0,address:0,put:0,org:0,"byte":0,come:0,sinc:0,valu:0,care:0,src:0,search:0,socket:0,hostnam:0,commun:0,job:0,create_par:0,length:0,"2147483647l":0,nosetest:0,act:0,"8524l":0,improv:0,implement:0,com:0,top:0,block:0,getmerg:0,softwar:0,can:0,carri:0,corrupt_block:0,modul:0,movefromloc:0,"120137519104l":0,chmod:0,warranti:0,rpc:0,"boolean":0,path:0,owner:0,"import":0,"6783l":0,assum:0,summar:0,size:0,"class":0,spacequota:0,given:0,wherev:0,from:0,complianc:0,"260185l":0,support:0,mkdir:0,capac:0,messag:0,setrep:0,avail:0,json:0,interfac:0,includ:0,copytoloc:0,ignorecrc:0,locat:0,instal:0,exampl:0,rmdir:0,missing_block:0,human:0,option:0,agre:0,copi:0,supergroup:0,specifi:0,apach:0,provid:0,hadoop_hom:0,child:0,trashinterv:0,line:0,destin:0,"true":0,appli:0,statist:0,count:0,replic:0,kind:0,possibl:0,filebuffers:0,remov:0,work:0,displai:0,cat:0,hdf:0,remain:0,limit:0,jobclient:0,bytesperchecksum:0,skiptrash:0,under:0,newli:0,more:0,spawn:0,paht:0,argpars:0,want:0,creat:0,"int":0,encryptdatatransf:0,arg:0,argument:0,mode:0,"default":0,sourc:0,exist:0,have:0,directorycount:0,file_typ:0,check:0,"1367317324982l":0,alwai:0,multipl:0,googl:0,grp:0,receiv:0,make:0,when:0,hadoop:0,chgrp:0,write:0,also:0,"1367317326510l":0,build:0,pure:0,subdirectori:0,octal:0,command:0,you:0,simpl:0,basi:0,updat:0,node:0,map:0,stat:0,sure:0,http:0,localsrc:0,see:0,"19669295104l":0,mimick:0,glob:0,correct:0,mkdirp:0,express:0,toplevel:0,user:0,distribut:0,mai:0,law:0,spaceconsum:0,chang:0,renam:0,modification_tim:0,ani:0,condit:0,touchz:0,well:0,issu:0,inform:0,chown:0,without:0,environ:0,thi:0,filesystem:0,sasl:0,rep:0,respect:0,quota:0},objtypes:{"0":"py:module","1":"py:method","2":"py:class"},objnames:{"0":["py","module","Python module"],"1":["py","method","Python method"],"2":["py","class","Python class"]},filenames:["index"],titles:["Snakebite documentation"],objects:{"":{client:[0,0,1,""]},"client.Client":{rename:[0,1,1,""],count:[0,1,1,""],stat:[0,1,1,""],"delete":[0,1,1,""],du:[0,1,1,""],df:[0,1,1,""],touchz:[0,1,1,""],mkdir:[0,1,1,""],chmod:[0,1,1,""],chgrp:[0,1,1,""],serverdefaults:[0,1,1,""],chown:[0,1,1,""],ls:[0,1,1,""],test:[0,1,1,""],setrep:[0,1,1,""],rmdir:[0,1,1,""]},client:{Client:[0,2,1,""]}},titleterms:{snakebit:0,cli:0,licens:0,indic:0,client:0,tabl:0,test:0,document:0,todo:0,librari:0}}) \ No newline at end of file diff --git a/doc/source/conf.py b/doc/source/conf.py new file mode 100644 index 0000000..657f07f --- /dev/null +++ b/doc/source/conf.py @@ -0,0 +1,250 @@ +# -*- coding: utf-8 -*- +# +# snakebite documentation build configuration file, created by +# sphinx-quickstart on Tue Apr 30 11:39:44 2013. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +sys.path.insert(0, os.path.abspath('../../spotify/snakebite')) + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.autodoc', 'sphinx.ext.ifconfig', 'sphinx.ext.autosummary'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'snakebite' +copyright = u'2013, Wouter de Bie' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '1.0' +# The full version, including alpha/beta/rc tags. +release = '1.0' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = [] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + +# If true, keep warnings as "system message" paragraphs in the built documents. +#keep_warnings = False + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'default' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'snakebitedoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +latex_elements = { +# The paper size ('letterpaper' or 'a4paper'). +#'papersize': 'letterpaper', + +# The font size ('10pt', '11pt' or '12pt'). +#'pointsize': '10pt', + +# Additional stuff for the LaTeX preamble. +#'preamble': '', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'snakebite.tex', u'snakebite Documentation', + u'Wouter de Bie', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'snakebite', u'snakebite Documentation', + [u'Wouter de Bie'], 1) +] + +# If true, show URL addresses after external links. +#man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------------ + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ('index', 'snakebite', u'snakebite Documentation', + u'Wouter de Bie', 'snakebite', 'One line description of project.', + 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +#texinfo_appendices = [] + +# If false, no module index is generated. +#texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#texinfo_show_urls = 'footnote' + +# If true, do not generate a @detailmenu in the "Top" node's menu. +#texinfo_no_detailmenu = False + +autoclass_content = 'both' diff --git a/doc/source/index.rst b/doc/source/index.rst new file mode 100644 index 0000000..0d06f45 --- /dev/null +++ b/doc/source/index.rst @@ -0,0 +1,128 @@ +.. snakebite documentation master file, created by + sphinx-quickstart on Tue Apr 30 11:39:44 2013. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Snakebite documentation +===================================== +Snakebite is a pure python HDFS client. It uses protobuf messages over Hadoop +RPC to communicate with the namenode. + +Snakebite can be used as a library and comes with a command line interface (CLI). +The CLI mimicks the `hadoop` client as good as possible + +Client library +============== +.. automodule:: client + +.. autoclass:: Client + :members: + +CLI client +========== +:: + + Usage: snakebite [options] cmd [args] + + Options: + -h, --help show this help message and exit + -D, --debug Show debug information + -j, --json JSON output + -n NAMENODE, --namenode=NAMENODE + namenode host (default: localhost) + -p PORT, --port=PORT namenode RPC port (default: 54310) + -R, --recurse recurse into subdirectories + -d, --directory show only the path and no children / check if path is + a dir + -H, --human human readable output + -s, --summary print summarized output + -z, --zero check for zero length + -e, --exists check if file exists + + Commands: + chgrp [paths] change group + chmod [paths] change file mode (octal) + chown [paths] change owner + count [paths] display stats for paths + df display fs stats + du [paths] display disk usage statistics + ls [path] list a path + mkdir [paths] create directories + mkdirp [paths] create directories and their parents + mv [paths] dst move paths to destination + rm [paths] remove paths + rmdir [dirs] delete a directory + serverdefaults show server information + setrep [paths] set replication factor + stat [paths] stat information + test path test a path + touchz [paths] creates a file of zero length + usage show cmd usage + +Testing +======= +Tests can be run with ``nosetests``. Currently, only integration tests are +provided and use ``minicluster.py`` to spawn an HDFS minicluster. + +When running the tests, make sure that the ``HADOOP_HOME`` environment variable is set. +The minicluster uses the ``hadoop-mapreduce-client-jobclient.-tests.jar`` and +assumes this is located in ``HADOOP_HOME``. The job client test jar can also be specified +by using the ``HADOOP_JOBCLIENT_JAR`` environment variable. + +Also, make sure the ``JAVA_HOME`` environment variable is set. + +.. note:: A hadoop installation is only required for testing. + +TODO +==== +* Only supports Auth method SIMPLE. We might want to have SASL or KERBEROS as well +* More tests. Currently only integration tests with a minicluster are available. +* Tests for the CLI. +* Add tab-completion +* Move to argparse to have arguments per command +* Return correct exit codes from cli client. +* Use generators when receiving messages (if and wherever possible). + +* Improve methods: + * [-rm [-f] [-r|-R] [-skipTrash] ...] (implement -f and -skipTrash) + +* Implement more methods: + * [-expunge] + * [-cat [-ignoreCrc] ...] + * [-copyFromLocal ... ] + * [-copyToLocal [-ignoreCrc] [-crc] ... ] + * [-cp ... ] + * [-get [-ignoreCrc] [-crc] ... ] + * [-getmerge [-nl] ] + * [-moveFromLocal ... ] + * [-moveToLocal ] + * [-put ... ] + * [-tail [-f] ] + * [-text [-ignoreCrc] ...] + +LICENSE +======= +Copyright (c) 2013 Spotify AB + +Licensed under the Apache License, Version 2.0 (the "License"); you may not +use this file except in compliance with the License. You may obtain a copy of +the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations under +the License. + +Some code was borrowed from https://code.google.com/p/protobuf-socket-rpc/ and +carries it's respective license. + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/protobuf/ClientNamenodeProtocol.proto b/protobuf/ClientNamenodeProtocol.proto new file mode 100644 index 0000000..5397396 --- /dev/null +++ b/protobuf/ClientNamenodeProtocol.proto @@ -0,0 +1,534 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +option java_package = "org.apache.hadoop.hdfs.protocol.proto"; +option java_outer_classname = "ClientNamenodeProtocolProtos"; +option java_generic_services = true; +option java_generate_equals_and_hash = true; +option py_generic_services = true; + +import "hdfs.proto"; + +/** + * The ClientNamenodeProtocol Service defines the interface between a client + * (as runnign inside a MR Task) and the Namenode. + * See org.apache.hadoop.hdfs.protocol.ClientProtocol for the javadoc + * for each of the methods. + * The exceptions declared in the above class also apply to this protocol. + * Exceptions are unwrapped and thrown by the PB libraries. + */ + +message GetBlockLocationsRequestProto { + required string src = 1; // file name + required uint64 offset = 2; // range start offset + required uint64 length = 3; // range length +} + +message GetBlockLocationsResponseProto { + optional LocatedBlocksProto locations = 1; +} + +message GetServerDefaultsRequestProto { // No parameters +} + +message GetServerDefaultsResponseProto { + required FsServerDefaultsProto serverDefaults = 1; +} + +enum CreateFlagProto { + CREATE = 0x01; // Create a file + OVERWRITE = 0x02; // Truncate/overwrite a file. Same as POSIX O_TRUNC + APPEND = 0x04; // Append to a file +} + +message CreateRequestProto { + required string src = 1; + required FsPermissionProto masked = 2; + required string clientName = 3; + required uint32 createFlag = 4; // bits set using CreateFlag + required bool createParent = 5; + required uint32 replication = 6; // Short: Only 16 bits used + required uint64 blockSize = 7; +} + +message CreateResponseProto { // void response +} + +message AppendRequestProto { + required string src = 1; + required string clientName = 2; +} + +message AppendResponseProto { + optional LocatedBlockProto block = 1; +} + +message SetReplicationRequestProto { + required string src = 1; + required uint32 replication = 2; // Short: Only 16 bits used +} + +message SetReplicationResponseProto { + required bool result = 1; +} + +message SetPermissionRequestProto { + required string src = 1; + required FsPermissionProto permission = 2; +} + +message SetPermissionResponseProto { // void response +} + +message SetOwnerRequestProto { + required string src = 1; + optional string username = 2; + optional string groupname = 3; +} + +message SetOwnerResponseProto { // void response +} + +message AbandonBlockRequestProto { + required ExtendedBlockProto b = 1; + required string src = 2; + required string holder = 3; +} + +message AbandonBlockResponseProto { // void response +} + +message AddBlockRequestProto { + required string src = 1; + required string clientName = 2; + optional ExtendedBlockProto previous = 3; + repeated DatanodeInfoProto excludeNodes = 4; +} + +message AddBlockResponseProto { + required LocatedBlockProto block = 1; +} + +message GetAdditionalDatanodeRequestProto { + required string src = 1; + required ExtendedBlockProto blk = 2; + repeated DatanodeInfoProto existings = 3; + repeated DatanodeInfoProto excludes = 4; + required uint32 numAdditionalNodes = 5; + required string clientName = 6; +} + +message GetAdditionalDatanodeResponseProto { + required LocatedBlockProto block = 1; +} + +message CompleteRequestProto { + required string src = 1; + required string clientName = 2; + optional ExtendedBlockProto last = 3; +} + +message CompleteResponseProto { + required bool result = 1; +} + +message ReportBadBlocksRequestProto { + repeated LocatedBlockProto blocks = 1; +} + +message ReportBadBlocksResponseProto { // void response +} + +message ConcatRequestProto { + required string trg = 1; + repeated string srcs = 2; +} + +message ConcatResponseProto { // void response +} + +message RenameRequestProto { + required string src = 1; + required string dst = 2; +} + +message RenameResponseProto { // void response + required bool result = 1; +} + + +message Rename2RequestProto { + required string src = 1; + required string dst = 2; + required bool overwriteDest = 3; +} + +message Rename2ResponseProto { // void response +} + +message DeleteRequestProto { + required string src = 1; + required bool recursive = 2; +} + +message DeleteResponseProto { + required bool result = 1; +} + +message MkdirsRequestProto { + required string src = 1; + required FsPermissionProto masked = 2; + required bool createParent = 3; +} +message MkdirsResponseProto { + required bool result = 1; +} + +message GetListingRequestProto { + required string src = 1; + required bytes startAfter = 2; + required bool needLocation = 3; +} +message GetListingResponseProto { + optional DirectoryListingProto dirList = 1; +} + +message RenewLeaseRequestProto { + required string clientName = 1; +} + +message RenewLeaseResponseProto { //void response +} + +message RecoverLeaseRequestProto { + required string src = 1; + required string clientName = 2; +} +message RecoverLeaseResponseProto { + required bool result = 1; +} + +message GetFsStatusRequestProto { // no input paramters +} + +message GetFsStatsResponseProto { + required uint64 capacity = 1; + required uint64 used = 2; + required uint64 remaining = 3; + required uint64 under_replicated = 4; + required uint64 corrupt_blocks = 5; + required uint64 missing_blocks = 6; +} + +enum DatanodeReportTypeProto { // type of the datanode report + ALL = 1; + LIVE = 2; + DEAD = 3; +} + +message GetDatanodeReportRequestProto { + required DatanodeReportTypeProto type = 1; +} + +message GetDatanodeReportResponseProto { + repeated DatanodeInfoProto di = 1; +} + +message GetPreferredBlockSizeRequestProto { + required string filename = 1; +} + +message GetPreferredBlockSizeResponseProto { + required uint64 bsize = 1; +} + +enum SafeModeActionProto { + SAFEMODE_LEAVE = 1; + SAFEMODE_ENTER = 2; + SAFEMODE_GET = 3; +} + +message SetSafeModeRequestProto { + required SafeModeActionProto action = 1; +} + +message SetSafeModeResponseProto { + required bool result = 1; +} + +message SaveNamespaceRequestProto { // no parameters +} + +message SaveNamespaceResponseProto { // void response +} + +message RollEditsRequestProto { // no parameters +} + +message RollEditsResponseProto { // response + required uint64 newSegmentTxId = 1; +} + +message RestoreFailedStorageRequestProto { + required string arg = 1; +} + +message RestoreFailedStorageResponseProto { + required bool result = 1; +} + +message RefreshNodesRequestProto { // no parameters +} + +message RefreshNodesResponseProto { // void response +} + +message FinalizeUpgradeRequestProto { // no parameters +} + +message FinalizeUpgradeResponseProto { // void response +} + +enum UpgradeActionProto { + GET_STATUS = 1; + DETAILED_STATUS = 2; + FORCE_PROCEED = 3; +} + +message DistributedUpgradeProgressRequestProto { + required UpgradeActionProto action = 1; +} +message DistributedUpgradeProgressResponseProto { + optional UpgradeStatusReportProto report = 1; +} + +message ListCorruptFileBlocksRequestProto { + required string path = 1; + optional string cookie = 2; +} + +message ListCorruptFileBlocksResponseProto { + required CorruptFileBlocksProto corrupt = 1; +} + +message MetaSaveRequestProto { + required string filename = 1; +} + +message MetaSaveResponseProto { // void response +} + +message GetFileInfoRequestProto { + required string src = 1; +} + +message GetFileInfoResponseProto { + optional HdfsFileStatusProto fs = 1; +} + +message GetFileLinkInfoRequestProto { + required string src = 1; +} + +message GetFileLinkInfoResponseProto { + optional HdfsFileStatusProto fs = 1; +} + +message GetContentSummaryRequestProto { + required string path = 1; +} + +message GetContentSummaryResponseProto { + required ContentSummaryProto summary = 1; +} + +message SetQuotaRequestProto { + required string path = 1; + required uint64 namespaceQuota = 2; + required uint64 diskspaceQuota = 3; +} + +message SetQuotaResponseProto { // void response +} + +message FsyncRequestProto { + required string src = 1; + required string client = 2; +} + +message FsyncResponseProto { // void response +} + +message SetTimesRequestProto { + required string src = 1; + required uint64 mtime = 2; + required uint64 atime = 3; +} + +message SetTimesResponseProto { // void response +} + +message CreateSymlinkRequestProto { + required string target = 1; + required string link = 2; + required FsPermissionProto dirPerm = 3; + required bool createParent = 4; +} + +message CreateSymlinkResponseProto { // void response +} + +message GetLinkTargetRequestProto { + required string path = 1; +} +message GetLinkTargetResponseProto { + required string targetPath = 1; +} + +message UpdateBlockForPipelineRequestProto { + required ExtendedBlockProto block = 1; + required string clientName = 2; +} + +message UpdateBlockForPipelineResponseProto { + required LocatedBlockProto block = 1; +} + +message UpdatePipelineRequestProto { + required string clientName = 1; + required ExtendedBlockProto oldBlock = 2; + required ExtendedBlockProto newBlock = 3; + repeated DatanodeIDProto newNodes = 4; +} + +message UpdatePipelineResponseProto { // void response +} + +message GetDelegationTokenRequestProto { + required string renewer = 1; +} + +message GetDelegationTokenResponseProto { + required BlockTokenIdentifierProto token = 1; +} + +message RenewDelegationTokenRequestProto { + required BlockTokenIdentifierProto token = 1; +} + +message RenewDelegationTokenResponseProto { + required uint64 newExireTime = 1; +} + +message CancelDelegationTokenRequestProto { + required BlockTokenIdentifierProto token = 1; +} + +message CancelDelegationTokenResponseProto { // void response +} + +message SetBalancerBandwidthRequestProto { + required int64 bandwidth = 1; +} + +message SetBalancerBandwidthResponseProto { // void response +} + +message GetDataEncryptionKeyRequestProto { // no parameters +} + +message GetDataEncryptionKeyResponseProto { + required DataEncryptionKeyProto dataEncryptionKey = 1; +} + +service ClientNamenodeProtocol { + rpc getBlockLocations(GetBlockLocationsRequestProto) + returns(GetBlockLocationsResponseProto); + rpc getServerDefaults(GetServerDefaultsRequestProto) + returns(GetServerDefaultsResponseProto); + rpc create(CreateRequestProto)returns(CreateResponseProto); + rpc append(AppendRequestProto) returns(AppendResponseProto); + rpc setReplication(SetReplicationRequestProto) + returns(SetReplicationResponseProto); + rpc setPermission(SetPermissionRequestProto) + returns(SetPermissionResponseProto); + rpc setOwner(SetOwnerRequestProto) returns(SetOwnerResponseProto); + rpc abandonBlock(AbandonBlockRequestProto) returns(AbandonBlockResponseProto); + rpc addBlock(AddBlockRequestProto) returns(AddBlockResponseProto); + rpc getAdditionalDatanode(GetAdditionalDatanodeRequestProto) + returns(GetAdditionalDatanodeResponseProto); + rpc complete(CompleteRequestProto) returns(CompleteResponseProto); + rpc reportBadBlocks(ReportBadBlocksRequestProto) + returns(ReportBadBlocksResponseProto); + rpc concat(ConcatRequestProto) returns(ConcatResponseProto); + rpc rename(RenameRequestProto) returns(RenameResponseProto); + rpc rename2(Rename2RequestProto) returns(Rename2ResponseProto); + rpc delete(DeleteRequestProto) returns(DeleteResponseProto); + rpc mkdirs(MkdirsRequestProto) returns(MkdirsResponseProto); + rpc getListing(GetListingRequestProto) returns(GetListingResponseProto); + rpc renewLease(RenewLeaseRequestProto) returns(RenewLeaseResponseProto); + rpc recoverLease(RecoverLeaseRequestProto) + returns(RecoverLeaseResponseProto); + rpc getFsStats(GetFsStatusRequestProto) returns(GetFsStatsResponseProto); + rpc getDatanodeReport(GetDatanodeReportRequestProto) + returns(GetDatanodeReportResponseProto); + rpc getPreferredBlockSize(GetPreferredBlockSizeRequestProto) + returns(GetPreferredBlockSizeResponseProto); + rpc setSafeMode(SetSafeModeRequestProto) + returns(SetSafeModeResponseProto); + rpc saveNamespace(SaveNamespaceRequestProto) + returns(SaveNamespaceResponseProto); + rpc rollEdits(RollEditsRequestProto) + returns(RollEditsResponseProto); + rpc restoreFailedStorage(RestoreFailedStorageRequestProto) + returns(RestoreFailedStorageResponseProto); + rpc refreshNodes(RefreshNodesRequestProto) returns(RefreshNodesResponseProto); + rpc finalizeUpgrade(FinalizeUpgradeRequestProto) + returns(FinalizeUpgradeResponseProto); + rpc distributedUpgradeProgress(DistributedUpgradeProgressRequestProto) + returns(DistributedUpgradeProgressResponseProto); + rpc listCorruptFileBlocks(ListCorruptFileBlocksRequestProto) + returns(ListCorruptFileBlocksResponseProto); + rpc metaSave(MetaSaveRequestProto) returns(MetaSaveResponseProto); + rpc getFileInfo(GetFileInfoRequestProto) returns(GetFileInfoResponseProto); + rpc getFileLinkInfo(GetFileLinkInfoRequestProto) + returns(GetFileLinkInfoResponseProto); + rpc getContentSummary(GetContentSummaryRequestProto) + returns(GetContentSummaryResponseProto); + rpc setQuota(SetQuotaRequestProto) returns(SetQuotaResponseProto); + rpc fsync(FsyncRequestProto) returns(FsyncResponseProto); + rpc setTimes(SetTimesRequestProto) returns(SetTimesResponseProto); + rpc createSymlink(CreateSymlinkRequestProto) + returns(CreateSymlinkResponseProto); + rpc getLinkTarget(GetLinkTargetRequestProto) + returns(GetLinkTargetResponseProto); + rpc updateBlockForPipeline(UpdateBlockForPipelineRequestProto) + returns(UpdateBlockForPipelineResponseProto); + rpc updatePipeline(UpdatePipelineRequestProto) + returns(UpdatePipelineResponseProto); + rpc getDelegationToken(GetDelegationTokenRequestProto) + returns(GetDelegationTokenResponseProto); + rpc renewDelegationToken(RenewDelegationTokenRequestProto) + returns(RenewDelegationTokenResponseProto); + rpc cancelDelegationToken(CancelDelegationTokenRequestProto) + returns(CancelDelegationTokenResponseProto); + rpc setBalancerBandwidth(SetBalancerBandwidthRequestProto) + returns(SetBalancerBandwidthResponseProto); + rpc getDataEncryptionKey(GetDataEncryptionKeyRequestProto) + returns(GetDataEncryptionKeyResponseProto); +} diff --git a/protobuf/IpcConnectionContext.proto b/protobuf/IpcConnectionContext.proto new file mode 100644 index 0000000..1c660f7 --- /dev/null +++ b/protobuf/IpcConnectionContext.proto @@ -0,0 +1,43 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +option java_package = "org.apache.hadoop.ipc.protobuf"; +option java_outer_classname = "IpcConnectionContextProtos"; +option java_generate_equals_and_hash = true; +package hadoop.common; + +/** + * Spec for UserInformationProto is specified in ProtoUtil#makeIpcConnectionContext + */ +message UserInformationProto { + optional string effectiveUser = 1; + optional string realUser = 2; +} + +/** + * The connection context is sent as part of the connection establishment. + * It establishes the context for ALL Rpc calls within the connection. + */ +message IpcConnectionContextProto { + // UserInfo beyond what is determined as part of security handshake + // at connection time (kerberos, tokens etc). + optional UserInformationProto userInfo = 2; + + // Protocol name for next rpc layer. + // The client created a proxy with this protocol name + optional string protocol = 3; +} diff --git a/protobuf/RpcPayloadHeader.proto b/protobuf/RpcPayloadHeader.proto new file mode 100644 index 0000000..5065741 --- /dev/null +++ b/protobuf/RpcPayloadHeader.proto @@ -0,0 +1,77 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +option java_package = "org.apache.hadoop.ipc.protobuf"; +option java_outer_classname = "RpcPayloadHeaderProtos"; +option java_generate_equals_and_hash = true; + +/** + * This is the rpc payload header. It is sent with every rpc call. + * + * The format of RPC call is as follows: + * +-----------------------------------------------------+ + * | Rpc length in bytes | + * +-----------------------------------------------------+ + * | RpcPayloadHeader - serialized delimited ie has len | + * +-----------------------------------------------------+ + * | RpcRequest Payload | + * +-----------------------------------------------------+ + * + */ + +/** + * RpcKind determine the rpcEngine and the serialization of the rpc payload + */ +enum RpcKindProto { + RPC_BUILTIN = 0; // Used for built in calls by tests + RPC_WRITABLE = 1; // Use WritableRpcEngine + RPC_PROTOCOL_BUFFER = 2; // Use ProtobufRpcEngine +} + +enum RpcPayloadOperationProto { + RPC_FINAL_PAYLOAD = 0; // The final payload + RPC_CONTINUATION_PAYLOAD = 1; // not implemented yet + RPC_CLOSE_CONNECTION = 2; // close the rpc connection +} + +message RpcPayloadHeaderProto { // the header for the RpcRequest + optional RpcKindProto rpcKind = 1; + optional RpcPayloadOperationProto rpcOp = 2; + required uint32 callId = 3; // each rpc has a callId that is also used in response +} + +enum RpcStatusProto { + SUCCESS = 0; // RPC succeeded + ERROR = 1; // RPC Failed + FATAL = 2; // Fatal error - connection is closed +} + +/** + * Rpc Response Header + * - If successfull then the Respose follows after this header + * - length (4 byte int), followed by the response + * - If error or fatal - the exception info follow + * - length (4 byte int) Class name of exception - UTF-8 string + * - length (4 byte int) Stacktrace - UTF-8 string + * - if the strings are null then the length is -1 + * In case of Fatal error then the respose contains the Serverside's IPC version + */ +message RpcResponseHeaderProto { + required uint32 callId = 1; // callId used in Request + required RpcStatusProto status = 2; + optional uint32 serverIpcVersionNum = 3; // in case of an fatal IPC error +} diff --git a/protobuf/hadoop_rpc.proto b/protobuf/hadoop_rpc.proto new file mode 100644 index 0000000..41d075c --- /dev/null +++ b/protobuf/hadoop_rpc.proto @@ -0,0 +1,46 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * These are the messages used by Hadoop RPC to marshal the + * request and response in the RPC layer. + */ +option java_package = "org.apache.hadoop.ipc.protobuf"; +option java_outer_classname = "HadoopRpcProtos"; +option java_generate_equals_and_hash = true; + +/** + * This message is used for Protobuf Rpc Engine. + * The message is used to marshal a Rpc-request + * from RPC client to the RPC server. + * The Response to the Rpc call (including errors) are handled + * as part of the standard Rpc response. + */ +message HadoopRpcRequestProto { + /** Name of the RPC method */ + required string methodName = 1; + + /** Bytes corresponding to the client protobuf request */ + optional bytes request = 2; + + /** protocol name of class declaring the called method */ + required string declaringClassProtocolName = 3; + + /** protocol version of class declaring the called method */ + required uint64 clientProtocolVersion = 4; +} diff --git a/protobuf/hdfs.proto b/protobuf/hdfs.proto new file mode 100644 index 0000000..4145ec4 --- /dev/null +++ b/protobuf/hdfs.proto @@ -0,0 +1,389 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// This file contains protocol buffers that are used throughout HDFS -- i.e. +// by the client, server, and data transfer protocols. + +option java_package = "org.apache.hadoop.hdfs.protocol.proto"; +option java_outer_classname = "HdfsProtos"; +option java_generate_equals_and_hash = true; +option py_generic_services = true; + +/** + * Extended block idenfies a block + */ +message ExtendedBlockProto { + required string poolId = 1; // Block pool id - gloablly unique across clusters + required uint64 blockId = 2; // the local id within a pool + required uint64 generationStamp = 3; + optional uint64 numBytes = 4 [default = 0]; // len does not belong in ebid + // here for historical reasons +} + +/** + * Block Token + */ +message BlockTokenIdentifierProto { + required bytes identifier = 1; + required bytes password = 2; + required string kind = 3; + required string service = 4; +} + +/** + * Identifies a Datanode + */ +message DatanodeIDProto { + required string ipAddr = 1; // IP address + required string hostName = 2; // hostname + required string storageID = 3; // unique storage id + required uint32 xferPort = 4; // data streaming port + required uint32 infoPort = 5; // info server port + required uint32 ipcPort = 6; // ipc server port +} + +/** + * DatanodeInfo array + */ +message DatanodeInfosProto { + repeated DatanodeInfoProto datanodes = 1; +} + +/** + * The status of a Datanode + */ +message DatanodeInfoProto { + required DatanodeIDProto id = 1; + optional uint64 capacity = 2 [default = 0]; + optional uint64 dfsUsed = 3 [default = 0]; + optional uint64 remaining = 4 [default = 0]; + optional uint64 blockPoolUsed = 5 [default = 0]; + optional uint64 lastUpdate = 6 [default = 0]; + optional uint32 xceiverCount = 7 [default = 0]; + optional string location = 8; + enum AdminState { + NORMAL = 0; + DECOMMISSION_INPROGRESS = 1; + DECOMMISSIONED = 2; + } + + optional AdminState adminState = 10 [default = NORMAL]; +} + +/** + * Summary of a file or directory + */ +message ContentSummaryProto { + required uint64 length = 1; + required uint64 fileCount = 2; + required uint64 directoryCount = 3; + required uint64 quota = 4; + required uint64 spaceConsumed = 5; + required uint64 spaceQuota = 6; +} + +/** + * Contains a list of paths corresponding to corrupt files and a cookie + * used for iterative calls to NameNode.listCorruptFileBlocks. + * + */ +message CorruptFileBlocksProto { + repeated string files = 1; + required string cookie = 2; +} + +/** + * File or Directory permision - same spec as posix + */ +message FsPermissionProto { + required uint32 perm = 1; // Actually a short - only 16bits used +} + + +/** + * A LocatedBlock gives information about a block and its location. + */ +message LocatedBlockProto { + required ExtendedBlockProto b = 1; + required uint64 offset = 2; // offset of first byte of block in the file + repeated DatanodeInfoProto locs = 3; // Locations ordered by proximity to client ip + required bool corrupt = 4; // true if all replicas of a block are corrupt, else false + // If block has few corrupt replicas, they are filtered and + // their locations are not part of this object + + required BlockTokenIdentifierProto blockToken = 5; +} + +message DataEncryptionKeyProto { + required uint32 keyId = 1; + required string blockPoolId = 2; + required bytes nonce = 3; + required bytes encryptionKey = 4; + required uint64 expiryDate = 5; + optional string encryptionAlgorithm = 6; +} + + +/** + * A set of file blocks and their locations. + */ +message LocatedBlocksProto { + required uint64 fileLength = 1; + repeated LocatedBlockProto blocks = 2; + required bool underConstruction = 3; + optional LocatedBlockProto lastBlock = 4; + required bool isLastBlockComplete = 5; +} + + +/** + * Status of a file, directory or symlink + * Optionally includes a file's block locations if requested by client on the rpc call. + */ +message HdfsFileStatusProto { + enum FileType { + IS_DIR = 1; + IS_FILE = 2; + IS_SYMLINK = 3; + } + required FileType fileType = 1; + required bytes path = 2; // local name of inode encoded java UTF8 + required uint64 length = 3; + required FsPermissionProto permission = 4; + required string owner = 5; + required string group = 6; + required uint64 modification_time = 7; + required uint64 access_time = 8; + + // Optional fields for symlink + optional bytes symlink = 9; // if symlink, target encoded java UTF8 + + // Optional fields for file + optional uint32 block_replication = 10 [default = 0]; // only 16bits used + optional uint64 blocksize = 11 [default = 0]; + optional LocatedBlocksProto locations = 12; // suppled only if asked by client +} + +/** + * Checksum algorithms/types used in HDFS + * Make sure this enum's integer values match enum values' id properties defined + * in org.apache.hadoop.util.DataChecksum.Type + */ +enum ChecksumTypeProto { + CHECKSUM_NULL = 0; + CHECKSUM_CRC32 = 1; + CHECKSUM_CRC32C = 2; +} + +/** + * HDFS Server Defaults + */ +message FsServerDefaultsProto { + required uint64 blockSize = 1; + required uint32 bytesPerChecksum = 2; + required uint32 writePacketSize = 3; + required uint32 replication = 4; // Actually a short - only 16 bits used + required uint32 fileBufferSize = 5; + optional bool encryptDataTransfer = 6 [default = false]; + optional uint64 trashInterval = 7 [default = 0]; + optional ChecksumTypeProto checksumType = 8 [default = CHECKSUM_CRC32]; +} + + +/** + * Directory listing + */ +message DirectoryListingProto { + repeated HdfsFileStatusProto partialListing = 1; + required uint32 remainingEntries = 2; +} + +/** + * Status of current cluster upgrade from one version to another + */ +message UpgradeStatusReportProto { + required uint32 version = 1;; + required uint32 upgradeStatus = 2; // % completed in range 0 & 100 + required bool finalized = 3; +} + +/** + * Common node information shared by all the nodes in the cluster + */ +message StorageInfoProto { + required uint32 layoutVersion = 1; // Layout version of the file system + required uint32 namespceID = 2; // File system namespace ID + required string clusterID = 3; // ID of the cluster + required uint64 cTime = 4; // File system creation time +} + +/** + * Information sent by a namenode to identify itself to the primary namenode. + */ +message NamenodeRegistrationProto { + required string rpcAddress = 1; // host:port of the namenode RPC address + required string httpAddress = 2; // host:port of the namenode http server + enum NamenodeRoleProto { + NAMENODE = 1; + BACKUP = 2; + CHECKPOINT = 3; + } + required StorageInfoProto storageInfo = 3; // Node information + optional NamenodeRoleProto role = 4 [default = NAMENODE]; // Namenode role +} + +/** + * Unique signature to identify checkpoint transactions. + */ +message CheckpointSignatureProto { + required string blockPoolId = 1; + required uint64 mostRecentCheckpointTxId = 2; + required uint64 curSegmentTxId = 3; + required StorageInfoProto storageInfo = 4; +} + +/** + * Command sent from one namenode to another namenode. + */ +message NamenodeCommandProto { + enum Type { + NamenodeCommand = 0; // Base command + CheckPointCommand = 1; // Check point command + } + required uint32 action = 1; + required Type type = 2; + optional CheckpointCommandProto checkpointCmd = 3; +} + +/** + * Command returned from primary to checkpointing namenode. + * This command has checkpoint signature that identifies + * checkpoint transaction and is needed for further + * communication related to checkpointing. + */ +message CheckpointCommandProto { + // Unique signature to identify checkpoint transation + required CheckpointSignatureProto signature = 1; + + // If true, return transfer image to primary upon the completion of checkpoint + required bool needToReturnImage = 2; +} + +/** + * Block information + */ +message BlockProto { + required uint64 blockId = 1; + required uint64 genStamp = 2; + optional uint64 numBytes = 3 [default = 0]; +} + +/** + * Block and datanodes where is it located + */ +message BlockWithLocationsProto { + required BlockProto block = 1; // Block + repeated string storageIDs = 2; // Datanodes with replicas of the block +} + +/** + * List of block with locations + */ +message BlocksWithLocationsProto { + repeated BlockWithLocationsProto blocks = 1; +} + +/** + * Editlog information with available transactions + */ +message RemoteEditLogProto { + required uint64 startTxId = 1; // Starting available edit log transaction + required uint64 endTxId = 2; // Ending available edit log transaction + optional bool isInProgress = 3 [default = false]; +} + +/** + * Enumeration of editlogs available on a remote namenode + */ +message RemoteEditLogManifestProto { + repeated RemoteEditLogProto logs = 1; +} + +/** + * Namespace information that describes namespace on a namenode + */ +message NamespaceInfoProto { + required string buildVersion = 1; // Software revision version (e.g. an svn or git revision) + required uint32 distUpgradeVersion = 2; // Distributed upgrade version + required string blockPoolID = 3; // block pool used by the namespace + required StorageInfoProto storageInfo = 4;// Node information + required string softwareVersion = 5; // Software version number (e.g. 2.0.0) +} + +/** + * Block access token information + */ +message BlockKeyProto { + required uint32 keyId = 1; // Key identifier + required uint64 expiryDate = 2; // Expiry time in milliseconds + optional bytes keyBytes = 3; // Key secret +} + +/** + * Current key and set of block keys at the namenode. + */ +message ExportedBlockKeysProto { + required bool isBlockTokenEnabled = 1; + required uint64 keyUpdateInterval = 2; + required uint64 tokenLifeTime = 3; + required BlockKeyProto currentKey = 4; + repeated BlockKeyProto allKeys = 5; +} + +/** + * State of a block replica at a datanode + */ +enum ReplicaStateProto { + FINALIZED = 0; // State of a replica when it is not modified + RBW = 1; // State of replica that is being written to + RWR = 2; // State of replica that is waiting to be recovered + RUR = 3; // State of replica that is under recovery + TEMPORARY = 4; // State of replica that is created for replication +} + +/** + * Block that needs to be recovered with at a given location + */ +message RecoveringBlockProto { + required uint64 newGenStamp = 1; // New genstamp post recovery + required LocatedBlockProto block = 2; // Block to be recovered +} + +/** + * void request + */ +message VersionRequestProto { +} + +/** + * Version response from namenode. + */ +message VersionResponseProto { + required NamespaceInfoProto info = 1; +} + diff --git a/setup.py b/setup.py new file mode 100755 index 0000000..5073da1 --- /dev/null +++ b/setup.py @@ -0,0 +1,27 @@ +#! /usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +try: + from setuptools import setup +except: + from distutils.core import setup + +setup(name='snakebite', + version='1.0', + author=u'Wouter de Bie', + author_email='wouter@spotify.com', + description='Pure Python HDFS client', + packages=['spotify.snakebite', 'spotify.snakebite.protobuf'], + scripts=['bin/snakebite']) diff --git a/spotify/__init__.py b/spotify/__init__.py new file mode 100644 index 0000000..183f054 --- /dev/null +++ b/spotify/__init__.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + + +__import__('pkg_resources').declare_namespace(__name__) diff --git a/spotify/snakebite/__init__.py b/spotify/snakebite/__init__.py new file mode 100644 index 0000000..5c9a5ab --- /dev/null +++ b/spotify/snakebite/__init__.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. diff --git a/spotify/snakebite/channel.py b/spotify/snakebite/channel.py new file mode 100644 index 0000000..b5eb63d --- /dev/null +++ b/spotify/snakebite/channel.py @@ -0,0 +1,408 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2009 Las Cumbres Observatory (www.lcogt.net) +# Copyright (c) 2010 Jan Dittberner +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +''' +channel.py - Socket implementation of Google's Protocol Buffers RPC +service interface. + +This package contains classes providing a socket implementation of the +RPCChannel abstract class. + +Original Authors: Martin Norbury (mnorbury@lcogt.net) + Eric Saunders (esaunders@lcogt.net) + Jan Dittberner (jan@dittberner.info) + +May 2009, Nov 2010 + +Modified for snakebite: Wouter de Bie (wouter@spotify.com) + +May 2012 + +''' + +# Standard library imports +import socket +import os + +# Third party imports +import google.protobuf.service as service +#from error import RpcError + +# Protobuf imports +import spotify.snakebite.protobuf.RpcPayloadHeader_pb2 as rpcheaderproto +import spotify.snakebite.protobuf.IpcConnectionContext_pb2 as connectionContext +import spotify.snakebite.protobuf.hadoop_rpc_pb2 as hadoop_rpc + +from spotify.snakebite.formatter import format_bytes +from spotify.snakebite.errors import RequestError + +import google.protobuf.internal.encoder as encoder +import google.protobuf.internal.decoder as decoder + +# Module imports + +import logger +import struct + +# Configure package logging +log = logger.getLogger(__name__) + + +class RpcBufferedReader(object): + '''Class that wraps a socket and provides some utility methods for reading + and rewinding of the buffer. This comes in handy when reading protobuf varints. + ''' + def __init__(self, socket): + self.socket = socket + self.buffer = "" + self.bytes_read = 0 + + def read(self, n): + '''Reads n bytes from the buffer. This will overwrite the internal buffer.''' + self.buffer = self.socket.recv(n) + self.bytes_read += n + log.debug("Bytes read: %d, total: %d" % (n, self.bytes_read)) + return self.buffer + + def rewind(self, pos): + '''Rewinds the current buffer to a position. Needed for reading varints, + because we might read bytes that belong to the stream after the varint. + ''' + self.buffer = self.buffer[pos:] + log.debug("Reset buffer to pos %d" % pos) + + def read_more(self, n): + '''Appends the current buffer with reading n bytes.''' + self.buffer += self.socket.recv(n) + self.bytes_read += n + log.debug("More bytes read: %d, total: %d" % (n, self.bytes_read)) + return self.buffer + + def bytes_read(self): + '''Returns amount of bytes read.''' + return self.bytes_read + + def buffer_lenght(self): + '''Returns the length of the current buffer.''' + return len(self.buffer) + + +class SocketRpcChannel(service.RpcChannel): + '''Socket implementation of an RpcChannel. + ''' + + def __init__(self, host, port): + '''SocketRpcChannel to connect to a socket server on a user defined port.''' + self.host = host + self.port = port + self.sock = None + self.call_id = 0 + + def validateRequest(self, request): + '''Validate the client request against the protocol file.''' + + # Check the request is correctly initialized + if not request.IsInitialized(): + print dir(request) + raise Exception("Client request (%s) is missing mandatory fields" % type(request)) + + def openSocket(self, host, port, context): + '''Open a socket connection to a given host and port and writes the Hadoop header + The Hadoop RPC protocol looks like this when creating a connection: + + +---------------------------------------------------------------------+ + | Header, 4 bytes ("hrpc") | + +---------------------------------------------------------------------+ + | Version, 1 byte (verion 7) | + +---------------------------------------------------------------------+ + | Auth method, 1 byte (Auth method SIMPLE = 80) | + +---------------------------------------------------------------------+ + | Serialization type, 1 byte (Protobuf = 0) | + +---------------------------------------------------------------------+ + | Length of the IpcConnectionContextProto (4 bytes/32 bit int) | + +---------------------------------------------------------------------+ + | Serialized IpcConnectionContextProto | + +---------------------------------------------------------------------+ + ''' + + log.debug("############## CONNECTING ##############") + # Open socket + self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + + # Connect socket to server - defined by host and port arguments + self.sock.connect((host, port)) + + # Send RPC headers + self.sock.send("hrpc") # header + self.sock.send(struct.pack('B', 7)) # version + self.sock.send(struct.pack('B', 80)) # auth method + self.sock.send(struct.pack('B', 0)) # serialization type (protobuf = 0) + + self.sock.send(struct.pack('!I', len(context))) # length of connection context (32bit int) + self.sock.send(context) # connection context + + def createRpcRequest(self, method, request): + '''Wraps the user's request in an HadoopRpcRequestProto message and serializes it delimited.''' + s_request = request.SerializeToString() + self.logProtobufMessage("Protobuf message", request) + log.debug("Protobuf message bytes (%d): %s" % (len(s_request), format_bytes(s_request))) + rpcRequest = hadoop_rpc.HadoopRpcRequestProto() + rpcRequest.methodName = method.name + rpcRequest.request = s_request + rpcRequest.declaringClassProtocolName = "org.apache.hadoop.hdfs.protocol.ClientProtocol" + rpcRequest.clientProtocolVersion = 1L + + # Serialize delimited + s_rpcRequest = rpcRequest.SerializeToString() + self.logProtobufMessage("RpcRequest (len: %d)" % len(s_rpcRequest), rpcRequest) + return encoder._VarintBytes(len(s_rpcRequest)) + s_rpcRequest + + def createRpcHeader(self): + '''Creates and serializes a delimited RpcPayloadHeaderProto message.''' + rpcheader = rpcheaderproto.RpcPayloadHeaderProto() + rpcheader.rpcKind = 2 # rpcheaderproto.RpcKindProto.Value('RPC_PROTOCOL_BUFFER') + rpcheader.rpcOp = 0 # rpcheaderproto.RpcPayloadOperationProto.Value('RPC_FINAL_PAYLOAD') + rpcheader.callId = self.call_id + self.call_id += 1 + + # Serialize delimited + s_rpcHeader = rpcheader.SerializeToString() + self.logProtobufMessage("RpcPayloadHeader (len: %d)" % (len(s_rpcHeader)), rpcheader) + return encoder._VarintBytes(len(s_rpcHeader)) + s_rpcHeader + + def createConnectionContext(self): + '''Creates and seriazlies a IpcConnectionContextProto (not delimited)''' + context = connectionContext.IpcConnectionContextProto() + context.userInfo.effectiveUser = os.getlogin() + context.protocol = "org.apache.hadoop.hdfs.protocol.ClientProtocol" + s_context = context.SerializeToString() + self.logProtobufMessage("RequestContext (len: %d)" % len(s_context), context) + return s_context + + def sendRpcMessage(self, rpcHeader, rpcRequest): + '''Sends a Hadoop RPC request to the NameNode. + + The IpcConnectionContextProto, RpcPayloadHeaderProto and HadoopRpcRequestProto + should already be serialized in the right way (delimited or not) before + they are passed in this method. + + The Hadoop RPC protocol looks like this for sending requests: + + When sending requests + +---------------------------------------------------------------------+ + | Length of the next two parts (4 bytes/32 bit int) | + +---------------------------------------------------------------------+ + | Delimited serialized RpcPayloadHeaderProto (varint len + header) | + +---------------------------------------------------------------------+ + | Delimited serialized HadoopRpcRequestProto (varint len + request) | + +---------------------------------------------------------------------+ + ''' + log.debug("############## SENDING ##############") + + length = len(rpcHeader) + len(rpcRequest) + log.debug("Header + payload len: %d" % length) + self.sock.send(struct.pack('!I', length)) # length of header + request (32bit int) + self.sock.send(rpcHeader) # payload header + self.sock.send(rpcRequest) # rpc request + + def logProtobufMessage(self, header, message): + log.debug("%s:\n\n\033[92m%s\033[0m" % (header, message)) + + def recvRpcMessage(self): + '''Handle reading an RPC reply from the server. This is done by wrapping the + socket in a RcpBufferedReader that allows for rewinding of the buffer stream. + ''' + log.debug("############## RECVING ##############") + byte_stream = RpcBufferedReader(self.sock) + return byte_stream + + def getDelimitedMessageBytes(self, byte_stream): + ''' Parse a delimited protobuf message. This is done by first getting a protobuf varint from + the stream that represents the length of the message, then reading that amount of + from the message and then parse it. + Since the int can be represented as max 4 bytes, first get 4 bytes and try to decode. + The decoder returns the value and the position where the value was found, so we need + to rewind the buffer to the position, because the remaining bytes belong to the message + after. + ''' + + (length, pos) = decoder._DecodeVarint32(byte_stream.read(4), 0) + log.debug("Delimited message length (pos %d): %d" % (pos, length)) + + byte_stream.rewind(pos) + message_bytes = byte_stream.read_more(length - byte_stream.buffer_lenght()) + log.debug("Delimited message bytes (%d): %s" % (len(message_bytes), format_bytes(message_bytes))) + return message_bytes + + def getLength(self, byte_stream): + ''' In Hadoop protobuf RPC, some parts of the stream are delimited with protobuf varint, + while others are delimited with 4 byte integers. This reads 4 bytes from the byte stream + and retruns the length of the delimited part that follows, by unpacking the 4 bytes + and returning the first element from a tuple. The tuple that is returned from struc.unpack() + only contains one element. + ''' + length = struct.unpack("!i", byte_stream.read(4))[0] + log.debug("4 bytes delimited part length: %d" % length) + return length + + def parseResponse(self, byte_stream, response_class): + '''Parses a Hadoop RPC response. + + The RpcResponseHeaderProto contains a status field that marks SUCCESS or ERROR. + The Hadoop RPC protocol looks like the diagram below for receiving SUCCESS requests. + +-----------------------------------------------------------+ + | Delimited serialized RpcResponseHeaderProto | + +-----------------------------------------------------------+ + | Length of the RPC resonse (4 bytes/32 bit int) | + +-----------------------------------------------------------+ + | Serialized RPC response | + +-----------------------------------------------------------+ + + The Hadoop RPC protocol looks like the diagram below for receiving ERROR requests. + +-----------------------------------------------------------+ + | Delimited serialized RpcResponseHeaderProto | + +-----------------------------------------------------------+ + | Length of the RPC resonse (4 bytes/32 bit int) | + +-----------------------------------------------------------+ + | Length of the Exeption class name (4 bytes/32 bit int) | + +-----------------------------------------------------------+ + | Exception class name string | + +-----------------------------------------------------------+ + | Length of the stack trace (4 bytes/32 bit int) | + +-----------------------------------------------------------+ + | Stack trace string | + +-----------------------------------------------------------+ + + If the lenght of the strings is -1, the strings are null + ''' + + log.debug("############## PARSING ##############") + log.debug("Payload class: %s" % response_class) + + log.debug("---- Parsing header ----") + header_bytes = self.getDelimitedMessageBytes(byte_stream) + header = rpcheaderproto.RpcResponseHeaderProto() + header.ParseFromString(header_bytes) + self.logProtobufMessage("Response header", header) + + if header.status == 0: # rpcheaderproto.RpcStatusProto.Value('SUCCESS') + log.debug("---- Parsing response ----") + response = response_class() + response_length = self.getLength(byte_stream) + + if response_length == 0: + return + + response_bytes = byte_stream.read(response_length) + log.debug("Response bytes (%d): %s" % (len(response_bytes), format_bytes(response_bytes))) + + response.ParseFromString(response_bytes) + self.logProtobufMessage("Response", response) + return response + + elif header.status == 1: # rpcheaderproto.RpcStatusProto.Value('ERROR') + length = self.getLength(byte_stream) + log.debug("Class name length: %d" % (length)) + if length == -1: + class_name = None + else: + class_name = byte_stream.read(length) + log.debug("Class name (%d): %s" % (len(class_name), class_name)) + + length = self.getLength(byte_stream) + log.debug("Stack trace length: %d" % (length)) + if length == -1: + stack_trace = None + else: + stack_trace = byte_stream.read(length) + log.debug("Stack trace (%d): %s" % (len(stack_trace), stack_trace)) + + stack_trace_msg = stack_trace.split("\n")[0] + log.debug(stack_trace_msg) + + raise RequestError(stack_trace_msg) + + def closeSocket(self): + '''Closes the socket and resets the channel.''' + log.debug("Closing socket") + if self.sock: + try: + self.sock.close() + except: + pass + + self.sock = None + + def CallMethod(self, method, controller, request, response_class, done): + '''Call the RPC method. + ''' + try: + self.validateRequest(request) + + if not self.sock: + context = self.createConnectionContext() + self.openSocket(self.host, self.port, context) + + # Create serialized rpcHeader, context and rpcRequest + rpcHeader = self.createRpcHeader() + rpcRequest = self.createRpcRequest(method, request) + + self.sendRpcMessage(rpcHeader, rpcRequest) + + byte_stream = self.recvRpcMessage() + return self.parseResponse(byte_stream, response_class) + except RequestError, e: # Raise a request error, but don't close the socket + raise e + except Exception, e: # All other errors close the socket + self.closeSocket() + raise e + + +class SocketRpcController(service.RpcController): + ''' RpcController implementation to be used by the SocketRpcChannel class. + + The RpcController is used to mediate a single method call. + ''' + + def __init__(self): + '''Constructor which initializes the controller's state.''' + self._fail = False + self._error = None + self.reason = None + + def handleError(self, error_code, message): + '''Log and set the controller state.''' + self._fail = True + self.reason = error_code + self._error = message + + def reset(self): + '''Resets the controller i.e. clears the error state.''' + self._fail = False + self._error = None + self.reason = None + + def failed(self): + '''Returns True if the controller is in a failed state.''' + return self._fail + + def error(self): + return self._error diff --git a/spotify/snakebite/client.py b/spotify/snakebite/client.py new file mode 100644 index 0000000..aa6e8e2 --- /dev/null +++ b/spotify/snakebite/client.py @@ -0,0 +1,765 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +import spotify.snakebite.protobuf.ClientNamenodeProtocol_pb2 as client_proto +import spotify.snakebite.protobuf.hdfs_pb2 as hdfs_proto +import spotify.snakebite.glob as glob +from spotify.snakebite.errors import RequestError +from spotify.snakebite.service import RpcService +from spotify.snakebite.errors import FileNotFoundException +from spotify.snakebite.errors import DirectoryException +from spotify.snakebite.errors import FileException +from spotify.snakebite.errors import InvalidInputException + +import logging +import os +import os.path +import re +import fnmatch + +log = logging.getLogger(__name__) + + +class Client(object): + ''' Class that acts as a client to HDFS. + + **Example:** + + >>> from spotify.snakebite.client import Client + >>> client = Client("localhost", 54310) + + .. note:: + ``paths`` parameters in methods are often passed as lists, since operations can work on multiple + paths. The return values of methods are always lists of results. + + .. note:: + Parameters like ``include_children``, ``include_toplevel`` and ``recurse`` are not used + when paths contain globs. + ''' + FILETYPES = { + 1: "d", + 2: "f", + 3: "s" + } + + def __init__(self, host, port): + ''' + :param host: Hostname or IP address of the NameNode + :type host: string + :param port: RPC Port of the NameNode + :type port: int + ''' + self.host = host + self.port = port + self.service_stub_class = client_proto.ClientNamenodeProtocol_Stub + self.service = RpcService(self.service_stub_class, self.port, self.host) + + def ls(self, paths, recurse=False, include_toplevel=False, include_children=True): + ''' Issues 'ls' command and returns a list of maps that contain fileinfo + + :param paths: Paths to list + :type paths: list + :param recurse: Recursive listing + :type recurse: boolean + :param include_toplevel: Include the given path in the listing. If the path is a file, include_toplevel is always True. + :type include_toplevel: boolean + :param include_children: Include child nodes in the listing. + :type include_children: boolean + :returns: list of dictionaries + + **Examples:** + + Directory listing + + >>> client.ls(["/"]) + [{'group': u'supergroup', 'permission': 420, 'file_type': 'f', 'access_time': 1367317324982L, 'block_replication': 1, 'modification_time': 1367317325346L, 'length': 6783L, 'blocksize': 134217728L, 'owner': u'wouter', 'path': '/Makefile'}, {'group': u'supergroup', 'permission': 493, 'file_type': 'd', 'access_time': 0L, 'block_replication': 0, 'modification_time': 1367317325431L, 'length': 0L, 'blocksize': 0L, 'owner': u'wouter', 'path': '/build'}, {'group': u'supergroup', 'permission': 420, 'file_type': 'f', 'access_time': 1367317326510L, 'block_replication': 1, 'modification_time': 1367317326522L, 'length': 100L, 'blocksize': 134217728L, 'owner': u'wouter', 'path': '/index.asciidoc'}, {'group': u'supergroup', 'permission': 493, 'file_type': 'd', 'access_time': 0L, 'block_replication': 0, 'modification_time': 1367317326628L, 'length': 0L, 'blocksize': 0L, 'owner': u'wouter', 'path': '/source'}] + + File listing + + >>> client.ls(["/Makefile"]) + [{'group': u'supergroup', 'permission': 420, 'file_type': 'f', 'access_time': 1367317324982L, 'block_replication': 1, 'modification_time': 1367317325346L, 'length': 6783L, 'blocksize': 134217728L, 'owner': u'wouter', 'path': '/Makefile'}] + + Get directory information + + >>> client.ls(["/source"], include_toplevel=True, include_children=False) + [{'group': u'supergroup', 'permission': 493, 'file_type': 'd', 'access_time': 0L, 'block_replication': 0, 'modification_time': 1367317326628L, 'length': 0L, 'blocksize': 0L, 'owner': u'wouter', 'path': '/source'}] + ''' + if not type(paths) == type([]): + raise InvalidInputException("Paths should be a list") + + return self._findItems(paths, self._handleLs, + include_toplevel=include_toplevel, + include_children=include_children, + recurse=recurse) + + LISTING_ATTRIBUTES = ['length', 'owner', 'group', 'block_replication', + 'modification_time', 'access_time', 'blocksize'] + + def _handleLs(self, path, node): + ''' Handle every node received for an ls request''' + entry = {} + + entry["file_type"] = self.FILETYPES[node.fileType] + entry["permission"] = node.permission.perm + entry["path"] = path + + for attribute in self.LISTING_ATTRIBUTES: + entry[attribute] = node.__getattribute__(attribute) + + return entry + + def chmod(self, paths, mode, recurse=False): + ''' Change the mode for paths. This returns a list of maps containing the resut of the operation. + + :param paths: List of paths to chmod + :type paths: list + :param mode: Octal mode (e.g. 0755) + :type mode: int + :param recurse: Recursive chmod + :type recurse: boolean + + .. note:: The top level directory is always included when `recurse=True`''' + if not type(paths) == type([]): + raise InvalidInputException("Paths should be a list") + if not paths: + raise InvalidInputException("chmod: no path given") + if not mode: + raise InvalidInputException("chmod: no mode given") + + processor = lambda path, node, mode=mode: self._handleChmod(path, node, mode) + return self._findItems(paths, processor, include_toplevel=True, + include_children=False, recurse=recurse) + + def _handleChmod(self, path, node, mode): + request = client_proto.SetPermissionRequestProto() + request.src = path + request.permission.perm = mode + self.service.setPermission(request) + return {"result": True, "path": path} + + def chown(self, paths, owner, recurse=False): + ''' Change the owner for paths. The owner can be specified as `user` or `user:group` + + :param paths: List of paths to chmod + :type paths: list + :param owner: New owner + :type owner: string + :param recurse: Recursive chown + :type recurse: boolean + + This always include the toplevel when recursing.''' + if not type(paths) == type([]): + raise InvalidInputException("Paths should be a list") + if not paths: + raise InvalidInputException("chown: no path given") + if not paths: + raise InvalidInputException("chown: no owner given") + + processor = lambda path, node, owner=owner: self._handleChown(path, node, owner) + return self._findItems(paths, processor, include_toplevel=True, + include_children=False, recurse=recurse) + + def _handleChown(self, path, node, owner): + if ":" in owner: + (owner, group) = owner.split(":") + else: + group = "" + + request = client_proto.SetOwnerRequestProto() + request.src = path + if owner: + request.username = owner + if group: + request.groupname = group + self.service.setOwner(request) + return {"result": True, "path": path} + + def chgrp(self, paths, group, recurse=False): + ''' Change the group of paths. + + :param paths: List of paths to chgrp + :type paths: list + :param group: New group + :type mode: string + :param recurse: Recursive chgrp + :type recurse: boolean + + ''' + if not type(paths) == type([]): + raise InvalidInputException("Paths should be a list") + if not paths: + raise InvalidInputException("chgrp: no paths given") + if not group: + raise InvalidInputException("chgrp: no group given") + + owner = ":%s" % group + processor = lambda path, node, owner=owner: self._handleChown(path, node, owner) + return self._findItems(paths, processor, include_toplevel=True, + include_children=False, recurse=recurse) + + def count(self, paths): + ''' Count files in a path + + :param paths: List of paths to count + :type paths: list + + **Examples:** + + >>> client.count(['/']) + [{'spaceConsumed': 260185L, 'quota': 2147483647L, 'spaceQuota': 18446744073709551615L, 'length': 260185L, 'directoryCount': 9L, 'path': '/', 'fileCount': 34L}] + + ''' + if not type(paths) == type([]): + raise InvalidInputException("Paths should be a list") + if not paths: + raise InvalidInputException("count: no path given") + + processor = lambda path, node: self._handleCount(path, node) + return self._findItems(paths, processor, include_toplevel=True, + include_children=False, recurse=False) + + COUNT_ATTRIBUTES = ['length', 'fileCount', 'directoryCount', 'quota', 'spaceConsumed', 'spaceQuota'] + + def _handleCount(self, path, node): + request = client_proto.GetContentSummaryRequestProto() + request.path = path + response = self.service.getContentSummary(request) + entry = {"path": path} + for attribute in self.COUNT_ATTRIBUTES: + entry[attribute] = response.summary.__getattribute__(attribute) + return entry + + def df(self): + ''' Get FS information + + **Examples:** + + >>> client.df() + [{'used': 491520L, 'capacity': 120137519104L, 'under_replicated': 0L, 'missing_blocks': 0L, 'filesystem': 'hdfs://localhost:54310', 'remaining': 19669295104L, 'corrupt_blocks': 0L}] + ''' + processor = lambda path, node: self._handleDf(path, node) + return self._findItems(['/'], processor, include_toplevel=True, include_children=False, recurse=False) + + def _handleDf(self, path, node): + request = client_proto.GetFsStatusRequestProto() + response = self.service.getFsStats(request) + entry = {"filesystem": "hdfs://%s:%d" % (self.host, self.port)} + for i in ['capacity', 'used', 'remaining', 'under_replicated', + 'corrupt_blocks', 'missing_blocks']: + entry[i] = response.__getattribute__(i) + return entry + + def du(self, paths, include_toplevel=False, include_children=True): + '''Returns size information for paths + + :param paths: Paths to du + :type paths: list + :param include_toplevel: Include the given path in the result. If the path is a file, include_toplevel is always True. + :type include_toplevel: boolean + :param include_children: Include child nodes in the result. + :type include_children: boolean + :returns: list of dictionaries + + **Examples:** + + Children: + + >>> client.du(['/']) + [{'path': '/Makefile', 'length': 6783L}, {'path': '/build', 'length': 244778L}, {'path': '/index.asciidoc', 'length': 100L}, {'path': '/source', 'length': 8524L}] + + Directory only: + + >>> client.du(['/'], include_toplevel=True, include_children=False) + [{'path': '/', 'length': 260185L}] + + ''' + if not type(paths) == type([]): + raise InvalidInputException("Paths should be a list") + if not paths: + raise InvalidInputException("du: no path given") + + processor = lambda path, node: self._handleDu(path, node) + return self._findItems(paths, processor, include_toplevel=include_toplevel, + include_children=include_children, recurse=False) + + def _handleDu(self, path, node): + request = client_proto.GetContentSummaryRequestProto() + request.path = path + response = self.service.getContentSummary(request) + return {"path": path, "length": response.summary.length} + + def rename(self, paths, dst): + ''' Rename (move) path(s) to a destination + + :param paths: Source paths + :type paths: list + :param dst: destination + :type dst: string + ''' + if not type(paths) == type([]): + raise InvalidInputException("Paths should be a list") + if not paths: + raise InvalidInputException("rename: no path given") + if not dst: + raise InvalidInputException("rename: no destination given") + + processor = lambda path, node, dst=dst: self._handleRename(path, node, dst) + return self._findItems(paths, processor, include_toplevel=True) + + def _handleRename(self, path, node, dst): + request = client_proto.RenameRequestProto() + request.src = path + request.dst = dst + response = self.service.rename(request) + return {"path": path, "result": response.result} + + def delete(self, paths, recurse=False): + ''' Delete paths + + :param paths: Paths to delete + :type paths: list + :param recurse: Recursive delete (use with care!) + :type recurse: boolean + ''' + if not type(paths) == type([]): + raise InvalidInputException("Paths should be a list") + if not paths: + raise InvalidInputException("delete: no path given") + + processor = lambda path, node, recurse=recurse: self._handleDelete(path, node, recurse) + return self._findItems(paths, processor, include_toplevel=True) + + def _handleDelete(self, path, node, recurse): + if (self._isDir(node) and not recurse): + raise DirectoryException("rm: `%s': Is a directory" % path) + + # None might be passed in for recurse + if not recurse: + recurse = False + + request = client_proto.DeleteRequestProto() + request.src = path + request.recursive = recurse + response = self.service.delete(request) + return {"path": path, "result": response.result} + + def rmdir(self, paths): + ''' Delete a directory + + :param paths: Paths to delete + :type paths: list + + .. note: directories have to be empty. + ''' + if not type(paths) == type([]): + raise InvalidInputException("Paths should be a list") + if not paths: + raise InvalidInputException("rmdir: no path given") + + processor = lambda path, node: self._handleRmdir(path, node) + return self._findItems(paths, processor, include_toplevel=True) + + def _handleRmdir(self, path, node): + if not self._isDir(node): + raise DirectoryException("rmdir: `%s': Is not a directory" % path) + + # Check if the directory is empty + files = self.ls([path]) + if len(files) > 0: + raise DirectoryException("rmdir: `%s': Directory is not empty" % path) + + return self._handleDelete(path, node, recurse=True) + + def touchz(self, paths, replication=None, blocksize=None): + ''' Create a zero length file or updates the timestamp on a zero length file + + :param paths: Paths + :type paths: list + :param replication: Replication factor + :type recurse: int + :param blocksize: Block size (in bytes) of the newly created file + :type blocksize: int + ''' + + if not type(paths) == type([]): + raise InvalidInputException("Paths should be a list") + if not paths: + raise InvalidInputException("touchz: no path given") + + # Let's get the blocksize and replication from the server defaults + # provided by the namenode if they are not specified + if not replication or blocksize: + defaults = self.serverdefaults() + + if not replication: + replication = defaults['replication'] + if not blocksize: + blocksize = defaults['blockSize'] + + processor = lambda path, node, replication=replication, blocksize=blocksize: self._handleTouchz(path, node, replication, blocksize) + return self._findItems(paths, processor, include_toplevel=True, check_nonexistence=True) + + def _handleTouchz(self, path, node, replication, blocksize): + # Item already exists + if node: + if node.length != 0: + raise FileException("touchz: `%s': Not a zero-length file" % path) + if self._isDir(node): + raise DirectoryException("touchz: `%s': Is a directory" % path) + + response = self._createFile(path, replication, blocksize, overwrite=True) + else: + # Check if the parent directory exists + parent = self._getFileInfo(os.path.dirname(path)) + if not parent: + raise DirectoryException("touchz: `%s': No such file or directory" % path) + else: + response = self._createFile(path, replication, blocksize, overwrite=False) + return {"path": path, "result": response.result} + + def setrep(self, paths, replication, recurse=False): + ''' Set the replication factor for paths + + :param paths: Paths + :type paths: list + :param replication: Replication factor + :type recurse: int + :param recurse: Apply replication factor recursive + :type recurse: boolean + ''' + if not type(paths) == type([]): + raise InvalidInputException("Paths should be a list") + if not paths: + raise InvalidInputException("setrep: no path given") + if not replication: + raise InvalidInputException("setrep: no replication given") + + processor = lambda path, node, replication=replication: self._handleSetrep(path, node, replication) + return self._findItems(paths, processor, include_toplevel=True, + include_children=False, recurse=recurse) + + def _handleSetrep(self, path, node, replication): + if not self._isDir(node): + request = client_proto.SetReplicationRequestProto() + request.src = path + request.replication = replication + response = self.service.setReplication(request) + return {"result": response.result, "path": path} + + def _createFile(self, path, replication, blocksize, overwrite): + if overwrite: + createFlag = 0x02 + else: + createFlag = 0x01 + + # Issue a CreateRequestProto + request = client_proto.CreateRequestProto() + request.src = path + request.masked.perm = 0644 + request.clientName = "snakebite" + request.createFlag = createFlag + request.createParent = False + request.replication = replication + request.blockSize = blocksize + + # The response doesn't contain anything + self.service.create(request) + + # Issue a CompleteRequestProto + request = client_proto.CompleteRequestProto() + request.src = path + request.clientName = "snakebite" + + return self.service.complete(request) + + def stat(self, paths): + ''' Stat a fileCount + + :param paths: Path + :type paths: string + + **Example:** + + >>> client.stat(['/index.asciidoc']) + [{'blocksize': 134217728L, 'owner': u'wouter', 'length': 100L, 'access_time': 1367317326510L, 'group': u'supergroup', 'permission': 420, 'file_type': 'f', 'path': '/index.asciidoc', 'modification_time': 1367317326522L, 'block_replication': 1}] + ''' + if not type(paths) == type([]): + raise InvalidInputException("Paths should be a list") + if not paths: + raise InvalidInputException("stat: no path given") + + processor = lambda path, node: self._handleStat(path, node) + return self._findItems(paths, processor, include_toplevel=True) + + def _handleStat(self, path, node): + return {"path": path, + "file_type": self.FILETYPES[node.fileType], + "length": node.length, + "permission": node.permission.perm, + "owner": node.owner, + "group": node.group, + "modification_time": node.modification_time, + "access_time": node.access_time, + "block_replication": node.block_replication, + "blocksize": node.blocksize} + + def test(self, path, exists=False, directory=False, zero_length=False): + '''Test if a paht exist, is a directory or has zero length + + :param path: Path to test + :type path: string + :param exists: Check if the path exists + :type exists: boolean + :param directory: Check if the path exists + :type exists: boolean + :param zero_length: Check if the path is zero-length + :type zero_length: boolean + + .. note:: directory and zero lenght are AND'd. + ''' + if not type(path) == type(""): + raise InvalidInputException("Path should be a string") + if not path: + raise InvalidInputException("test: no path given") + + processor = lambda path, node, exists=exists, directory=directory, zero_length=zero_length: self._handleTest(path, node, exists, directory, zero_length) + try: + return self._findItems([path], processor, include_toplevel=True)[0] + except FileNotFoundException, e: + if exists: + return False + else: + raise e + + def _handleTest(self, path, node, exists, directory, zero_length): + return self._is_directory(directory, node) and self._is_zero_length(zero_length, node) + + def mkdir(self, paths, create_parent=False, mode=0755): + ''' Create a directoryCount + + :param paths: Paths to create + :type paths: list of strings + :param create_parent: Also create the parent directories + :type create_parent: boolean + :param mode: Mode the directory should be created with + :type mode: int + ''' + if not type(paths) == type([]): + raise InvalidInputException("Paths should be a list") + if not paths: + raise InvalidInputException("mkdirs: no path given") + + creations = [] + for path in paths: + orig_path = path + if not path.startswith("/"): + path = self._joinUserPath(path) + + fileinfo = self._getFileInfo(path) + if not fileinfo: + try: + request = client_proto.MkdirsRequestProto() + request.src = path + request.masked.perm = mode + request.createParent = create_parent + response = self.service.mkdirs(request) + creations.append({"path": orig_path, "result": response.result}) + except RequestError, e: + creations.append({"path": orig_path, "result": False, "error": str(e)}) + else: + creations.append({"path": path, "result": False, "error": "mkdir: `%s': File exists" % orig_path}) + return creations + + def serverdefaults(self): + '''Get server defaults + + **Example:** + + >>> client.serverdefaults() + {'writePacketSize': 65536, 'fileBufferSize': 4096, 'replication': 1, 'bytesPerChecksum': 512, 'trashInterval': 0L, 'blockSize': 134217728L, 'encryptDataTransfer': False, 'checksumType': 2} + ''' + request = client_proto.GetServerDefaultsRequestProto() + response = self.service.getServerDefaults(request).serverDefaults + return {'blockSize': response.blockSize, 'bytesPerChecksum': response.bytesPerChecksum, + 'writePacketSize': response.writePacketSize, 'replication': response.replication, + 'fileBufferSize': response.fileBufferSize, 'encryptDataTransfer': response.encryptDataTransfer, + 'trashInterval': response.trashInterval, 'checksumType': response.checksumType} + + def _is_directory(self, should_check, node): + if not should_check: + return True + return self._isDir(node) + + def _is_zero_length(self, should_check, node): + if not should_check: + return True + return node.length == 0 + + def _getFullPath(self, path, node): + if node.path: + return os.path.join(path, node.path) + else: + return path + + def _findItems(self, paths, processor, include_toplevel=False, include_children=False, recurse=False, check_nonexistence=False, _glob_check=None): + ''' Request file info from the NameNode and call the processor on the node(s) returned + + :param paths: + A list of paths that need to be processed + :param processor: + Method that is called on an node. Method signature should be foo(path, node). For additional + (static) params, use a lambda. + :param include_toplevel: + Boolean to enable the inclusion of the first node found. + Example: listing a directory should not include the toplevel, but chmod should + only operate on the path that is input, so it should include the toplevel. + :param include_children: + Include children (when the path is a directory) in processing. Recurse will always + include children. + Example: listing a directory should include children, but chmod shouldn't. + :param recurse: + Recurse into children if they are directories. + ''' + collection = [] + + if not paths: + paths = [os.path.join("/user", os.getlogin())] + + # Expand paths if necessary (/foo/{bar,baz} --> ['/foo/bar', '/foo/baz']) + paths = glob.expandPaths(paths) + + for path in paths: + if not path.startswith("/"): + path = self._joinUserPath(path) + + log.debug("Trying to find path %s" % path) + + if glob.has_magic(path): + log.debug("Dealing with globs in %s" % path) + collection += self._globFind(path, processor) + else: + fileinfo = self._getFileInfo(path) + if not fileinfo and not check_nonexistence: + raise FileNotFoundException("`%s': No such file or directory" % path) + elif not fileinfo and check_nonexistence: + collection.append(processor(path, None)) + return collection + + if include_toplevel or not self._isDir(fileinfo.fs): + # Construct the full path before processing + full_path = self._getFullPath(path, fileinfo.fs) + log.debug("Added %s to to result set" % full_path) + entry = processor(full_path, fileinfo.fs) + collection.append(entry) + + if self._isDir(fileinfo.fs) and (include_children or recurse): + listing = self._getDirListing(path) + for node in listing.dirList.partialListing: + full_path = self._getFullPath(path, node) + entry = processor(full_path, node) + collection.append(entry) + + # Recurse into directories + if recurse and self._isDir(node): + # Construct the full path before processing + full_path = os.path.join(path, node.path) + collection += self._findItems([full_path], + processor, + include_toplevel=False, + include_children=False, + recurse=recurse) + + return collection + + def _getDirListing(self, path): + request = client_proto.GetListingRequestProto() + request.src = path + request.startAfter = '' + request.needLocation = False + return self.service.getListing(request) + + def _globFind(self, path, processor): + '''Handle globs in paths. + This is done by listing the directory before a glob and checking which + node matches the initial glob. If there are more globs in the path, + we don't add the found children to the result, but traverse into paths + that did have a match. + ''' + collection = [] + # Split path elements and check where the first occurence of magic is + path_elements = path.split("/") + for i, element in enumerate(path_elements): + if glob.has_magic(element): + first_magic = i + break + + # Create path that we check first to get a listing we match all children + # against. If the 2nd path element is a glob, we need to check "/", and + # we hardcode that, since "/".join(['']) doesn't return "/" + if first_magic == 1: + check_path = "/" + else: + check_path = "/".join(path_elements[:first_magic]) + + # Path that we need to match against + match_path = "/".join(path_elements[:first_magic + 1]) + + # Rest of the unmatched path. In case the rest is only one element long + # we prepend it with "/", since "/".join(['x']) doesn't return "/x" + rest_elements = path_elements[first_magic + 1:] + if len(rest_elements) == 1: + rest = "/" + rest_elements[0] + else: + rest = "/".join(rest_elements) + + # Check if the path exists and that it's a directory (which it should..) + fileinfo = self._getFileInfo(check_path) + if fileinfo and self._isDir(fileinfo.fs): + # List all child nodes and match them agains the glob + listing = self._getDirListing(check_path) + for node in listing.dirList.partialListing: + full_path = self._getFullPath(check_path, node) + if fnmatch.fnmatch(full_path, match_path): + # If we have a match, but need to go deeper, we recurse + if rest and glob.has_magic(rest): + traverse_path = "/".join([full_path, rest]) + collection += self._globFind(traverse_path, processor) + else: + # If the matching node is a directory, we list the directory + # This is what the hadoop client does at least. + if self._isDir(node): + fp = self._getFullPath(check_path, node) + dir_list = self._getDirListing(fp) + for n in dir_list.dirList.partialListing: + full_child_path = self._getFullPath(fp, n) + entry = processor(full_child_path, n) + collection.append(entry) + else: + entry = processor(full_path, node) + collection.append(entry) + + return collection + + def _isDir(self, entry): + return self.FILETYPES.get(entry.fileType) == "d" + + def _getFileInfo(self, path): + request = client_proto.GetFileInfoRequestProto() + request.src = path + + return self.service.getFileInfo(request) + + def _joinUserPath(self, path): + return os.path.join("/user", os.getlogin(), path) diff --git a/spotify/snakebite/errors.py b/spotify/snakebite/errors.py new file mode 100644 index 0000000..63b2b0f --- /dev/null +++ b/spotify/snakebite/errors.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + + +class FileNotFoundException(Exception): + def __init__(self, msg): + super(FileNotFoundException, self).__init__(msg) + + +class FileExistsException(Exception): + def __init__(self, msg): + super(FileExistsException, self).__init__(msg) + + +class RequestError(Exception): + def __init__(self, msg): + super(RequestError, self).__init__(msg) + + +class DirectoryException(Exception): + def __init__(self, msg): + super(DirectoryException, self).__init__(msg) + + +class FileException(Exception): + def __init__(self, msg): + super(FileException, self).__init__(msg) + + +class InvalidInputException(Exception): + def __init__(self, msg): + super(InvalidInputException, self).__init__(msg) diff --git a/spotify/snakebite/formatter.py b/spotify/snakebite/formatter.py new file mode 100644 index 0000000..2f20a71 --- /dev/null +++ b/spotify/snakebite/formatter.py @@ -0,0 +1,187 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +import datetime +import stat +import json +import binascii + + +def _octalToPerm(octal): + perms = list("-" * 9) + if octal & stat.S_IRUSR: + perms[0] = "r" + if octal & stat.S_IWUSR: + perms[1] = "w" + if octal & stat.S_IXUSR: + perms[2] = "x" + if octal & stat.S_IRGRP: + perms[3] = "r" + if octal & stat.S_IWGRP: + perms[4] = "w" + if octal & stat.S_IXGRP: + perms[5] = "x" + if octal & stat.S_IROTH: + perms[6] = "r" + if octal & stat.S_IWOTH: + perms[7] = "w" + if octal & stat.S_IXOTH: + perms[8] = "x" + return "".join(perms) + + +def _sizeof_fmt(num): + for x in ['', 'k', 'm', 'g', 't']: + if num < 1024.0: + if x == '': + return num + else: + return "%3.1f%s" % (num, x) + num /= 1024.0 + + +def formatColumn(col, node, human_readable): + value = node.get(col) + + if col == "file_type": + if value == "f": + return "-" + else: + return value + elif col == "permission": + return _octalToPerm(value) + elif col == "modification_time": + timestamp = datetime.datetime.fromtimestamp(value / 1000) + return timestamp.strftime('%Y-%m-%d %H:%M') + elif col == "block_replication": + if node["file_type"] == "f": + return value + else: + return "-" + elif col == "length": + if human_readable: + return _sizeof_fmt(int(value)) + else: + return value + else: + return value + + +def formatListing(listing, json_output=False, human_readable=False): + if json_output: + return json.dumps(listing) + + ret = [] + ret.append("Found %d items" % len(listing)) + columns = ['file_type', 'permission', 'block_replication', 'owner', 'group', 'length', 'modification_time', 'path'] + + max_len = max([len(str(node.get('length'))) for node in listing] + [10]) + templ = "%%s%%s %%3s %%-12s %%-12s %%%ds %%s %%s" % max_len + for node in listing: + cols = [str(formatColumn(col, node, human_readable)) for col in columns] + ret.append(templ % tuple(cols)) + + return "\n".join(ret) + + +def formatResults(results, json_output=False): + if json_output: + return json.dumps(results) + + ret = [] + max_len = max(len(r.get('path')) for r in results) + templ = "%%-%ds %%-6s %%s" % max_len + for r in results: + if r['result']: + result = "OK" + else: + result = "ERROR:" + if r.get('error'): + error = r['error'] + else: + error = "" + + ret.append(templ % (r.get('path'), result, error)) + + return "\n".join(ret) + + +def formatCounts(results, json_output=False): + if json_output: + return json.dumps(results) + + ret = [] + for result in results: + ret.append("%12s %12s %18s %s" % (result.get('directoryCount'), + result.get('fileCount'), + result.get('spaceConsumed'), + result.get('path'))) + return "\n".join(ret) + + +def formatFsStats(results, json_output=False, human_readable=False): + r = results[0] + if json_output: + return json.dumps(r) + + fs = r['filesystem'] + size = r['capacity'] + used = r['used'] + avail = r['remaining'] + if avail == 0: + pct_used = 0 + else: + pct_used = str((used / avail) * 100) + + if human_readable: + size = _sizeof_fmt(int(size)) + used = _sizeof_fmt(int(used)) + avail = _sizeof_fmt(int(avail)) + + tmpl = "%%-%ds %%%ds %%%ds %%%ds %%%ds%%%%" % (max(len(str(fs)), len('Filesystem')), + max(len(str(size)), len('Size')), + max(len(str(used)), len('Used')), + max(len(str(avail)), len('Available')), + max(len(str(pct_used)), len('Use%'))) + + header = tmpl % ('Filesystem', 'Size', 'Used', 'Available', 'Use') + data = tmpl % (fs, size, used, avail, pct_used) + return "%s\n%s" % (header, data) + + +def formatDu(results, json_output=False, human_readable=False): + ret = [] + if json_output: + return json.dumps(results) + if human_readable: + for result in results: + result['length'] = _sizeof_fmt(result['length']) + max_len = max([len(str(r['length'])) for r in results]) + templ = "%%-%ds %%s" % max_len + for result in results: + ret.append(templ % (result['length'], result['path'])) + return "\n".join(ret) + + +def formatStat(results, json_output=False): + ret = [] + if json_output: + return json.dumps(results) + for result in results: + ret.append(str(result)) + return "\n".join(ret) + +def format_bytes(bytes): + ascii = binascii.b2a_hex(bytes) + return " ".join([ascii[i:i + 2] for i in range(0, len(ascii), 2)]) diff --git a/spotify/snakebite/glob.py b/spotify/snakebite/glob.py new file mode 100644 index 0000000..31a65e3 --- /dev/null +++ b/spotify/snakebite/glob.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +import re +import itertools + + +def expandPaths(paths): + ''' Expand paths like /foo/{bar,baz} becomes /foo/bar, /foo/bar''' + result = [] + exp = re.compile("{(.*?)}") + for path in paths: + m = exp.findall(path) + if not m: + result.append(path) + else: + x = [item.split(",") for item in m] + template = re.sub("{.*?}", "%s", path) + product = list(itertools.product(*x)) + for s in product: + result.append(template % s) + return result + +magick_check = re.compile('[*?[{}]') + + +def has_magic(s): + return magick_check.search(s) is not None diff --git a/spotify/snakebite/logger.py b/spotify/snakebite/logger.py new file mode 100644 index 0000000..5cde16c --- /dev/null +++ b/spotify/snakebite/logger.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2009 Las Cumbres Observatory (www.lcogt.net) +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +'''protobuf/logger.py - Module for configuring the package level logging. + +This module contains a convenience function for creating and retrieving a +logger with a given name. In addition a Null handler is added to the logger +to prevent client software not implementing the logging package from +receiving "No handler" error messages. + +Authors: Martin Norbury (mnorbury@lcogt.net) + Eric Saunders (esaunders@lcogt.net) + +May 2009 +''' + +# Standard library imports +import logging + + +class _NullHandler(logging.Handler): + ''' NULL logging handler. + + A null logging handler to prevent clients that don't require the + logging package from reporting no handlers found. + ''' + + def emit(self, record): + ''' Override the emit function to do nothing. ''' + pass + + +def getLogger(name): + ''' Create and return a logger with the specified name. ''' + + # Create logger and add a default NULL handler + log = logging.getLogger(name) + log.addHandler(_NullHandler()) + + return log diff --git a/spotify/snakebite/protobuf/ClientNamenodeProtocol_pb2.py b/spotify/snakebite/protobuf/ClientNamenodeProtocol_pb2.py new file mode 100644 index 0000000..cd10cd1 --- /dev/null +++ b/spotify/snakebite/protobuf/ClientNamenodeProtocol_pb2.py @@ -0,0 +1,4095 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! + +from google.protobuf import descriptor +from google.protobuf import message +from google.protobuf import reflection +from google.protobuf import service +from google.protobuf import service_reflection +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + + +import hdfs_pb2 + +DESCRIPTOR = descriptor.FileDescriptor( + name='ClientNamenodeProtocol.proto', + package='', + serialized_pb='\n\x1c\x43lientNamenodeProtocol.proto\x1a\nhdfs.proto\"L\n\x1dGetBlockLocationsRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\x0e\n\x06offset\x18\x02 \x02(\x04\x12\x0e\n\x06length\x18\x03 \x02(\x04\"H\n\x1eGetBlockLocationsResponseProto\x12&\n\tlocations\x18\x01 \x01(\x0b\x32\x13.LocatedBlocksProto\"\x1f\n\x1dGetServerDefaultsRequestProto\"P\n\x1eGetServerDefaultsResponseProto\x12.\n\x0eserverDefaults\x18\x01 \x02(\x0b\x32\x16.FsServerDefaultsProto\"\xab\x01\n\x12\x43reateRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\"\n\x06masked\x18\x02 \x02(\x0b\x32\x12.FsPermissionProto\x12\x12\n\nclientName\x18\x03 \x02(\t\x12\x12\n\ncreateFlag\x18\x04 \x02(\r\x12\x14\n\x0c\x63reateParent\x18\x05 \x02(\x08\x12\x13\n\x0breplication\x18\x06 \x02(\r\x12\x11\n\tblockSize\x18\x07 \x02(\x04\"\x15\n\x13\x43reateResponseProto\"5\n\x12\x41ppendRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\x12\n\nclientName\x18\x02 \x02(\t\"8\n\x13\x41ppendResponseProto\x12!\n\x05\x62lock\x18\x01 \x01(\x0b\x32\x12.LocatedBlockProto\">\n\x1aSetReplicationRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\x13\n\x0breplication\x18\x02 \x02(\r\"-\n\x1bSetReplicationResponseProto\x12\x0e\n\x06result\x18\x01 \x02(\x08\"P\n\x19SetPermissionRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12&\n\npermission\x18\x02 \x02(\x0b\x32\x12.FsPermissionProto\"\x1c\n\x1aSetPermissionResponseProto\"H\n\x14SetOwnerRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x11\n\tgroupname\x18\x03 \x01(\t\"\x17\n\x15SetOwnerResponseProto\"W\n\x18\x41\x62\x61ndonBlockRequestProto\x12\x1e\n\x01\x62\x18\x01 \x02(\x0b\x32\x13.ExtendedBlockProto\x12\x0b\n\x03src\x18\x02 \x02(\t\x12\x0e\n\x06holder\x18\x03 \x02(\t\"\x1b\n\x19\x41\x62\x61ndonBlockResponseProto\"\x88\x01\n\x14\x41\x64\x64\x42lockRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\x12\n\nclientName\x18\x02 \x02(\t\x12%\n\x08previous\x18\x03 \x01(\x0b\x32\x13.ExtendedBlockProto\x12(\n\x0c\x65xcludeNodes\x18\x04 \x03(\x0b\x32\x12.DatanodeInfoProto\":\n\x15\x41\x64\x64\x42lockResponseProto\x12!\n\x05\x62lock\x18\x01 \x02(\x0b\x32\x12.LocatedBlockProto\"\xcf\x01\n!GetAdditionalDatanodeRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12 \n\x03\x62lk\x18\x02 \x02(\x0b\x32\x13.ExtendedBlockProto\x12%\n\texistings\x18\x03 \x03(\x0b\x32\x12.DatanodeInfoProto\x12$\n\x08\x65xcludes\x18\x04 \x03(\x0b\x32\x12.DatanodeInfoProto\x12\x1a\n\x12numAdditionalNodes\x18\x05 \x02(\r\x12\x12\n\nclientName\x18\x06 \x02(\t\"G\n\"GetAdditionalDatanodeResponseProto\x12!\n\x05\x62lock\x18\x01 \x02(\x0b\x32\x12.LocatedBlockProto\"Z\n\x14\x43ompleteRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\x12\n\nclientName\x18\x02 \x02(\t\x12!\n\x04last\x18\x03 \x01(\x0b\x32\x13.ExtendedBlockProto\"\'\n\x15\x43ompleteResponseProto\x12\x0e\n\x06result\x18\x01 \x02(\x08\"A\n\x1bReportBadBlocksRequestProto\x12\"\n\x06\x62locks\x18\x01 \x03(\x0b\x32\x12.LocatedBlockProto\"\x1e\n\x1cReportBadBlocksResponseProto\"/\n\x12\x43oncatRequestProto\x12\x0b\n\x03trg\x18\x01 \x02(\t\x12\x0c\n\x04srcs\x18\x02 \x03(\t\"\x15\n\x13\x43oncatResponseProto\".\n\x12RenameRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\x0b\n\x03\x64st\x18\x02 \x02(\t\"%\n\x13RenameResponseProto\x12\x0e\n\x06result\x18\x01 \x02(\x08\"F\n\x13Rename2RequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\x0b\n\x03\x64st\x18\x02 \x02(\t\x12\x15\n\roverwriteDest\x18\x03 \x02(\x08\"\x16\n\x14Rename2ResponseProto\"4\n\x12\x44\x65leteRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\x11\n\trecursive\x18\x02 \x02(\x08\"%\n\x13\x44\x65leteResponseProto\x12\x0e\n\x06result\x18\x01 \x02(\x08\"[\n\x12MkdirsRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\"\n\x06masked\x18\x02 \x02(\x0b\x32\x12.FsPermissionProto\x12\x14\n\x0c\x63reateParent\x18\x03 \x02(\x08\"%\n\x13MkdirsResponseProto\x12\x0e\n\x06result\x18\x01 \x02(\x08\"O\n\x16GetListingRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\x12\n\nstartAfter\x18\x02 \x02(\x0c\x12\x14\n\x0cneedLocation\x18\x03 \x02(\x08\"B\n\x17GetListingResponseProto\x12\'\n\x07\x64irList\x18\x01 \x01(\x0b\x32\x16.DirectoryListingProto\",\n\x16RenewLeaseRequestProto\x12\x12\n\nclientName\x18\x01 \x02(\t\"\x19\n\x17RenewLeaseResponseProto\";\n\x18RecoverLeaseRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\x12\n\nclientName\x18\x02 \x02(\t\"+\n\x19RecoverLeaseResponseProto\x12\x0e\n\x06result\x18\x01 \x02(\x08\"\x19\n\x17GetFsStatusRequestProto\"\x96\x01\n\x17GetFsStatsResponseProto\x12\x10\n\x08\x63\x61pacity\x18\x01 \x02(\x04\x12\x0c\n\x04used\x18\x02 \x02(\x04\x12\x11\n\tremaining\x18\x03 \x02(\x04\x12\x18\n\x10under_replicated\x18\x04 \x02(\x04\x12\x16\n\x0e\x63orrupt_blocks\x18\x05 \x02(\x04\x12\x16\n\x0emissing_blocks\x18\x06 \x02(\x04\"G\n\x1dGetDatanodeReportRequestProto\x12&\n\x04type\x18\x01 \x02(\x0e\x32\x18.DatanodeReportTypeProto\"@\n\x1eGetDatanodeReportResponseProto\x12\x1e\n\x02\x64i\x18\x01 \x03(\x0b\x32\x12.DatanodeInfoProto\"5\n!GetPreferredBlockSizeRequestProto\x12\x10\n\x08\x66ilename\x18\x01 \x02(\t\"3\n\"GetPreferredBlockSizeResponseProto\x12\r\n\x05\x62size\x18\x01 \x02(\x04\"?\n\x17SetSafeModeRequestProto\x12$\n\x06\x61\x63tion\x18\x01 \x02(\x0e\x32\x14.SafeModeActionProto\"*\n\x18SetSafeModeResponseProto\x12\x0e\n\x06result\x18\x01 \x02(\x08\"\x1b\n\x19SaveNamespaceRequestProto\"\x1c\n\x1aSaveNamespaceResponseProto\"\x17\n\x15RollEditsRequestProto\"0\n\x16RollEditsResponseProto\x12\x16\n\x0enewSegmentTxId\x18\x01 \x02(\x04\"/\n RestoreFailedStorageRequestProto\x12\x0b\n\x03\x61rg\x18\x01 \x02(\t\"3\n!RestoreFailedStorageResponseProto\x12\x0e\n\x06result\x18\x01 \x02(\x08\"\x1a\n\x18RefreshNodesRequestProto\"\x1b\n\x19RefreshNodesResponseProto\"\x1d\n\x1b\x46inalizeUpgradeRequestProto\"\x1e\n\x1c\x46inalizeUpgradeResponseProto\"M\n&DistributedUpgradeProgressRequestProto\x12#\n\x06\x61\x63tion\x18\x01 \x02(\x0e\x32\x13.UpgradeActionProto\"T\n\'DistributedUpgradeProgressResponseProto\x12)\n\x06report\x18\x01 \x01(\x0b\x32\x19.UpgradeStatusReportProto\"A\n!ListCorruptFileBlocksRequestProto\x12\x0c\n\x04path\x18\x01 \x02(\t\x12\x0e\n\x06\x63ookie\x18\x02 \x01(\t\"N\n\"ListCorruptFileBlocksResponseProto\x12(\n\x07\x63orrupt\x18\x01 \x02(\x0b\x32\x17.CorruptFileBlocksProto\"(\n\x14MetaSaveRequestProto\x12\x10\n\x08\x66ilename\x18\x01 \x02(\t\"\x17\n\x15MetaSaveResponseProto\"&\n\x17GetFileInfoRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\"<\n\x18GetFileInfoResponseProto\x12 \n\x02\x66s\x18\x01 \x01(\x0b\x32\x14.HdfsFileStatusProto\"*\n\x1bGetFileLinkInfoRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\"@\n\x1cGetFileLinkInfoResponseProto\x12 \n\x02\x66s\x18\x01 \x01(\x0b\x32\x14.HdfsFileStatusProto\"-\n\x1dGetContentSummaryRequestProto\x12\x0c\n\x04path\x18\x01 \x02(\t\"G\n\x1eGetContentSummaryResponseProto\x12%\n\x07summary\x18\x01 \x02(\x0b\x32\x14.ContentSummaryProto\"T\n\x14SetQuotaRequestProto\x12\x0c\n\x04path\x18\x01 \x02(\t\x12\x16\n\x0enamespaceQuota\x18\x02 \x02(\x04\x12\x16\n\x0e\x64iskspaceQuota\x18\x03 \x02(\x04\"\x17\n\x15SetQuotaResponseProto\"0\n\x11\x46syncRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\x0e\n\x06\x63lient\x18\x02 \x02(\t\"\x14\n\x12\x46syncResponseProto\"A\n\x14SetTimesRequestProto\x12\x0b\n\x03src\x18\x01 \x02(\t\x12\r\n\x05mtime\x18\x02 \x02(\x04\x12\r\n\x05\x61time\x18\x03 \x02(\x04\"\x17\n\x15SetTimesResponseProto\"t\n\x19\x43reateSymlinkRequestProto\x12\x0e\n\x06target\x18\x01 \x02(\t\x12\x0c\n\x04link\x18\x02 \x02(\t\x12#\n\x07\x64irPerm\x18\x03 \x02(\x0b\x32\x12.FsPermissionProto\x12\x14\n\x0c\x63reateParent\x18\x04 \x02(\x08\"\x1c\n\x1a\x43reateSymlinkResponseProto\")\n\x19GetLinkTargetRequestProto\x12\x0c\n\x04path\x18\x01 \x02(\t\"0\n\x1aGetLinkTargetResponseProto\x12\x12\n\ntargetPath\x18\x01 \x02(\t\"\\\n\"UpdateBlockForPipelineRequestProto\x12\"\n\x05\x62lock\x18\x01 \x02(\x0b\x32\x13.ExtendedBlockProto\x12\x12\n\nclientName\x18\x02 \x02(\t\"H\n#UpdateBlockForPipelineResponseProto\x12!\n\x05\x62lock\x18\x01 \x02(\x0b\x32\x12.LocatedBlockProto\"\xa2\x01\n\x1aUpdatePipelineRequestProto\x12\x12\n\nclientName\x18\x01 \x02(\t\x12%\n\x08oldBlock\x18\x02 \x02(\x0b\x32\x13.ExtendedBlockProto\x12%\n\x08newBlock\x18\x03 \x02(\x0b\x32\x13.ExtendedBlockProto\x12\"\n\x08newNodes\x18\x04 \x03(\x0b\x32\x10.DatanodeIDProto\"\x1d\n\x1bUpdatePipelineResponseProto\"1\n\x1eGetDelegationTokenRequestProto\x12\x0f\n\x07renewer\x18\x01 \x02(\t\"L\n\x1fGetDelegationTokenResponseProto\x12)\n\x05token\x18\x01 \x02(\x0b\x32\x1a.BlockTokenIdentifierProto\"M\n RenewDelegationTokenRequestProto\x12)\n\x05token\x18\x01 \x02(\x0b\x32\x1a.BlockTokenIdentifierProto\"9\n!RenewDelegationTokenResponseProto\x12\x14\n\x0cnewExireTime\x18\x01 \x02(\x04\"N\n!CancelDelegationTokenRequestProto\x12)\n\x05token\x18\x01 \x02(\x0b\x32\x1a.BlockTokenIdentifierProto\"$\n\"CancelDelegationTokenResponseProto\"5\n SetBalancerBandwidthRequestProto\x12\x11\n\tbandwidth\x18\x01 \x02(\x03\"#\n!SetBalancerBandwidthResponseProto\"\"\n GetDataEncryptionKeyRequestProto\"W\n!GetDataEncryptionKeyResponseProto\x12\x32\n\x11\x64\x61taEncryptionKey\x18\x01 \x02(\x0b\x32\x17.DataEncryptionKeyProto*8\n\x0f\x43reateFlagProto\x12\n\n\x06\x43REATE\x10\x01\x12\r\n\tOVERWRITE\x10\x02\x12\n\n\x06\x41PPEND\x10\x04*6\n\x17\x44\x61tanodeReportTypeProto\x12\x07\n\x03\x41LL\x10\x01\x12\x08\n\x04LIVE\x10\x02\x12\x08\n\x04\x44\x45\x41\x44\x10\x03*O\n\x13SafeModeActionProto\x12\x12\n\x0eSAFEMODE_LEAVE\x10\x01\x12\x12\n\x0eSAFEMODE_ENTER\x10\x02\x12\x10\n\x0cSAFEMODE_GET\x10\x03*L\n\x12UpgradeActionProto\x12\x0e\n\nGET_STATUS\x10\x01\x12\x13\n\x0f\x44\x45TAILED_STATUS\x10\x02\x12\x11\n\rFORCE_PROCEED\x10\x03\x32\xbe\x1b\n\x16\x43lientNamenodeProtocol\x12T\n\x11getBlockLocations\x12\x1e.GetBlockLocationsRequestProto\x1a\x1f.GetBlockLocationsResponseProto\x12T\n\x11getServerDefaults\x12\x1e.GetServerDefaultsRequestProto\x1a\x1f.GetServerDefaultsResponseProto\x12\x33\n\x06\x63reate\x12\x13.CreateRequestProto\x1a\x14.CreateResponseProto\x12\x33\n\x06\x61ppend\x12\x13.AppendRequestProto\x1a\x14.AppendResponseProto\x12K\n\x0esetReplication\x12\x1b.SetReplicationRequestProto\x1a\x1c.SetReplicationResponseProto\x12H\n\rsetPermission\x12\x1a.SetPermissionRequestProto\x1a\x1b.SetPermissionResponseProto\x12\x39\n\x08setOwner\x12\x15.SetOwnerRequestProto\x1a\x16.SetOwnerResponseProto\x12\x45\n\x0c\x61\x62\x61ndonBlock\x12\x19.AbandonBlockRequestProto\x1a\x1a.AbandonBlockResponseProto\x12\x39\n\x08\x61\x64\x64\x42lock\x12\x15.AddBlockRequestProto\x1a\x16.AddBlockResponseProto\x12`\n\x15getAdditionalDatanode\x12\".GetAdditionalDatanodeRequestProto\x1a#.GetAdditionalDatanodeResponseProto\x12\x39\n\x08\x63omplete\x12\x15.CompleteRequestProto\x1a\x16.CompleteResponseProto\x12N\n\x0freportBadBlocks\x12\x1c.ReportBadBlocksRequestProto\x1a\x1d.ReportBadBlocksResponseProto\x12\x33\n\x06\x63oncat\x12\x13.ConcatRequestProto\x1a\x14.ConcatResponseProto\x12\x33\n\x06rename\x12\x13.RenameRequestProto\x1a\x14.RenameResponseProto\x12\x36\n\x07rename2\x12\x14.Rename2RequestProto\x1a\x15.Rename2ResponseProto\x12\x33\n\x06\x64\x65lete\x12\x13.DeleteRequestProto\x1a\x14.DeleteResponseProto\x12\x33\n\x06mkdirs\x12\x13.MkdirsRequestProto\x1a\x14.MkdirsResponseProto\x12?\n\ngetListing\x12\x17.GetListingRequestProto\x1a\x18.GetListingResponseProto\x12?\n\nrenewLease\x12\x17.RenewLeaseRequestProto\x1a\x18.RenewLeaseResponseProto\x12\x45\n\x0crecoverLease\x12\x19.RecoverLeaseRequestProto\x1a\x1a.RecoverLeaseResponseProto\x12@\n\ngetFsStats\x12\x18.GetFsStatusRequestProto\x1a\x18.GetFsStatsResponseProto\x12T\n\x11getDatanodeReport\x12\x1e.GetDatanodeReportRequestProto\x1a\x1f.GetDatanodeReportResponseProto\x12`\n\x15getPreferredBlockSize\x12\".GetPreferredBlockSizeRequestProto\x1a#.GetPreferredBlockSizeResponseProto\x12\x42\n\x0bsetSafeMode\x12\x18.SetSafeModeRequestProto\x1a\x19.SetSafeModeResponseProto\x12H\n\rsaveNamespace\x12\x1a.SaveNamespaceRequestProto\x1a\x1b.SaveNamespaceResponseProto\x12<\n\trollEdits\x12\x16.RollEditsRequestProto\x1a\x17.RollEditsResponseProto\x12]\n\x14restoreFailedStorage\x12!.RestoreFailedStorageRequestProto\x1a\".RestoreFailedStorageResponseProto\x12\x45\n\x0crefreshNodes\x12\x19.RefreshNodesRequestProto\x1a\x1a.RefreshNodesResponseProto\x12N\n\x0f\x66inalizeUpgrade\x12\x1c.FinalizeUpgradeRequestProto\x1a\x1d.FinalizeUpgradeResponseProto\x12o\n\x1a\x64istributedUpgradeProgress\x12\'.DistributedUpgradeProgressRequestProto\x1a(.DistributedUpgradeProgressResponseProto\x12`\n\x15listCorruptFileBlocks\x12\".ListCorruptFileBlocksRequestProto\x1a#.ListCorruptFileBlocksResponseProto\x12\x39\n\x08metaSave\x12\x15.MetaSaveRequestProto\x1a\x16.MetaSaveResponseProto\x12\x42\n\x0bgetFileInfo\x12\x18.GetFileInfoRequestProto\x1a\x19.GetFileInfoResponseProto\x12N\n\x0fgetFileLinkInfo\x12\x1c.GetFileLinkInfoRequestProto\x1a\x1d.GetFileLinkInfoResponseProto\x12T\n\x11getContentSummary\x12\x1e.GetContentSummaryRequestProto\x1a\x1f.GetContentSummaryResponseProto\x12\x39\n\x08setQuota\x12\x15.SetQuotaRequestProto\x1a\x16.SetQuotaResponseProto\x12\x30\n\x05\x66sync\x12\x12.FsyncRequestProto\x1a\x13.FsyncResponseProto\x12\x39\n\x08setTimes\x12\x15.SetTimesRequestProto\x1a\x16.SetTimesResponseProto\x12H\n\rcreateSymlink\x12\x1a.CreateSymlinkRequestProto\x1a\x1b.CreateSymlinkResponseProto\x12H\n\rgetLinkTarget\x12\x1a.GetLinkTargetRequestProto\x1a\x1b.GetLinkTargetResponseProto\x12\x63\n\x16updateBlockForPipeline\x12#.UpdateBlockForPipelineRequestProto\x1a$.UpdateBlockForPipelineResponseProto\x12K\n\x0eupdatePipeline\x12\x1b.UpdatePipelineRequestProto\x1a\x1c.UpdatePipelineResponseProto\x12W\n\x12getDelegationToken\x12\x1f.GetDelegationTokenRequestProto\x1a .GetDelegationTokenResponseProto\x12]\n\x14renewDelegationToken\x12!.RenewDelegationTokenRequestProto\x1a\".RenewDelegationTokenResponseProto\x12`\n\x15\x63\x61ncelDelegationToken\x12\".CancelDelegationTokenRequestProto\x1a#.CancelDelegationTokenResponseProto\x12]\n\x14setBalancerBandwidth\x12!.SetBalancerBandwidthRequestProto\x1a\".SetBalancerBandwidthResponseProto\x12]\n\x14getDataEncryptionKey\x12!.GetDataEncryptionKeyRequestProto\x1a\".GetDataEncryptionKeyResponseProtoBN\n%org.apache.hadoop.hdfs.protocol.protoB\x1c\x43lientNamenodeProtocolProtos\x88\x01\x01\x90\x01\x01\xa0\x01\x01') + +_CREATEFLAGPROTO = descriptor.EnumDescriptor( + name='CreateFlagProto', + full_name='CreateFlagProto', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='CREATE', index=0, number=1, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='OVERWRITE', index=1, number=2, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='APPEND', index=2, number=4, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=5668, + serialized_end=5724, +) + + +_DATANODEREPORTTYPEPROTO = descriptor.EnumDescriptor( + name='DatanodeReportTypeProto', + full_name='DatanodeReportTypeProto', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='ALL', index=0, number=1, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='LIVE', index=1, number=2, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='DEAD', index=2, number=3, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=5726, + serialized_end=5780, +) + + +_SAFEMODEACTIONPROTO = descriptor.EnumDescriptor( + name='SafeModeActionProto', + full_name='SafeModeActionProto', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='SAFEMODE_LEAVE', index=0, number=1, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='SAFEMODE_ENTER', index=1, number=2, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='SAFEMODE_GET', index=2, number=3, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=5782, + serialized_end=5861, +) + + +_UPGRADEACTIONPROTO = descriptor.EnumDescriptor( + name='UpgradeActionProto', + full_name='UpgradeActionProto', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='GET_STATUS', index=0, number=1, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='DETAILED_STATUS', index=1, number=2, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='FORCE_PROCEED', index=2, number=3, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=5863, + serialized_end=5939, +) + + +CREATE = 1 +OVERWRITE = 2 +APPEND = 4 +ALL = 1 +LIVE = 2 +DEAD = 3 +SAFEMODE_LEAVE = 1 +SAFEMODE_ENTER = 2 +SAFEMODE_GET = 3 +GET_STATUS = 1 +DETAILED_STATUS = 2 +FORCE_PROCEED = 3 + + + +_GETBLOCKLOCATIONSREQUESTPROTO = descriptor.Descriptor( + name='GetBlockLocationsRequestProto', + full_name='GetBlockLocationsRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='GetBlockLocationsRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='offset', full_name='GetBlockLocationsRequestProto.offset', index=1, + number=2, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='length', full_name='GetBlockLocationsRequestProto.length', index=2, + number=3, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=44, + serialized_end=120, +) + + +_GETBLOCKLOCATIONSRESPONSEPROTO = descriptor.Descriptor( + name='GetBlockLocationsResponseProto', + full_name='GetBlockLocationsResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='locations', full_name='GetBlockLocationsResponseProto.locations', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=122, + serialized_end=194, +) + + +_GETSERVERDEFAULTSREQUESTPROTO = descriptor.Descriptor( + name='GetServerDefaultsRequestProto', + full_name='GetServerDefaultsRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=196, + serialized_end=227, +) + + +_GETSERVERDEFAULTSRESPONSEPROTO = descriptor.Descriptor( + name='GetServerDefaultsResponseProto', + full_name='GetServerDefaultsResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='serverDefaults', full_name='GetServerDefaultsResponseProto.serverDefaults', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=229, + serialized_end=309, +) + + +_CREATEREQUESTPROTO = descriptor.Descriptor( + name='CreateRequestProto', + full_name='CreateRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='CreateRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='masked', full_name='CreateRequestProto.masked', index=1, + number=2, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='clientName', full_name='CreateRequestProto.clientName', index=2, + number=3, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='createFlag', full_name='CreateRequestProto.createFlag', index=3, + number=4, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='createParent', full_name='CreateRequestProto.createParent', index=4, + number=5, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='replication', full_name='CreateRequestProto.replication', index=5, + number=6, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='blockSize', full_name='CreateRequestProto.blockSize', index=6, + number=7, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=312, + serialized_end=483, +) + + +_CREATERESPONSEPROTO = descriptor.Descriptor( + name='CreateResponseProto', + full_name='CreateResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=485, + serialized_end=506, +) + + +_APPENDREQUESTPROTO = descriptor.Descriptor( + name='AppendRequestProto', + full_name='AppendRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='AppendRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='clientName', full_name='AppendRequestProto.clientName', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=508, + serialized_end=561, +) + + +_APPENDRESPONSEPROTO = descriptor.Descriptor( + name='AppendResponseProto', + full_name='AppendResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='block', full_name='AppendResponseProto.block', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=563, + serialized_end=619, +) + + +_SETREPLICATIONREQUESTPROTO = descriptor.Descriptor( + name='SetReplicationRequestProto', + full_name='SetReplicationRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='SetReplicationRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='replication', full_name='SetReplicationRequestProto.replication', index=1, + number=2, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=621, + serialized_end=683, +) + + +_SETREPLICATIONRESPONSEPROTO = descriptor.Descriptor( + name='SetReplicationResponseProto', + full_name='SetReplicationResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='result', full_name='SetReplicationResponseProto.result', index=0, + number=1, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=685, + serialized_end=730, +) + + +_SETPERMISSIONREQUESTPROTO = descriptor.Descriptor( + name='SetPermissionRequestProto', + full_name='SetPermissionRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='SetPermissionRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='permission', full_name='SetPermissionRequestProto.permission', index=1, + number=2, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=732, + serialized_end=812, +) + + +_SETPERMISSIONRESPONSEPROTO = descriptor.Descriptor( + name='SetPermissionResponseProto', + full_name='SetPermissionResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=814, + serialized_end=842, +) + + +_SETOWNERREQUESTPROTO = descriptor.Descriptor( + name='SetOwnerRequestProto', + full_name='SetOwnerRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='SetOwnerRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='username', full_name='SetOwnerRequestProto.username', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='groupname', full_name='SetOwnerRequestProto.groupname', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=844, + serialized_end=916, +) + + +_SETOWNERRESPONSEPROTO = descriptor.Descriptor( + name='SetOwnerResponseProto', + full_name='SetOwnerResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=918, + serialized_end=941, +) + + +_ABANDONBLOCKREQUESTPROTO = descriptor.Descriptor( + name='AbandonBlockRequestProto', + full_name='AbandonBlockRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='b', full_name='AbandonBlockRequestProto.b', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='src', full_name='AbandonBlockRequestProto.src', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='holder', full_name='AbandonBlockRequestProto.holder', index=2, + number=3, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=943, + serialized_end=1030, +) + + +_ABANDONBLOCKRESPONSEPROTO = descriptor.Descriptor( + name='AbandonBlockResponseProto', + full_name='AbandonBlockResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1032, + serialized_end=1059, +) + + +_ADDBLOCKREQUESTPROTO = descriptor.Descriptor( + name='AddBlockRequestProto', + full_name='AddBlockRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='AddBlockRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='clientName', full_name='AddBlockRequestProto.clientName', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='previous', full_name='AddBlockRequestProto.previous', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='excludeNodes', full_name='AddBlockRequestProto.excludeNodes', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1062, + serialized_end=1198, +) + + +_ADDBLOCKRESPONSEPROTO = descriptor.Descriptor( + name='AddBlockResponseProto', + full_name='AddBlockResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='block', full_name='AddBlockResponseProto.block', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1200, + serialized_end=1258, +) + + +_GETADDITIONALDATANODEREQUESTPROTO = descriptor.Descriptor( + name='GetAdditionalDatanodeRequestProto', + full_name='GetAdditionalDatanodeRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='GetAdditionalDatanodeRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='blk', full_name='GetAdditionalDatanodeRequestProto.blk', index=1, + number=2, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='existings', full_name='GetAdditionalDatanodeRequestProto.existings', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='excludes', full_name='GetAdditionalDatanodeRequestProto.excludes', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='numAdditionalNodes', full_name='GetAdditionalDatanodeRequestProto.numAdditionalNodes', index=4, + number=5, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='clientName', full_name='GetAdditionalDatanodeRequestProto.clientName', index=5, + number=6, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1261, + serialized_end=1468, +) + + +_GETADDITIONALDATANODERESPONSEPROTO = descriptor.Descriptor( + name='GetAdditionalDatanodeResponseProto', + full_name='GetAdditionalDatanodeResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='block', full_name='GetAdditionalDatanodeResponseProto.block', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1470, + serialized_end=1541, +) + + +_COMPLETEREQUESTPROTO = descriptor.Descriptor( + name='CompleteRequestProto', + full_name='CompleteRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='CompleteRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='clientName', full_name='CompleteRequestProto.clientName', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='last', full_name='CompleteRequestProto.last', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1543, + serialized_end=1633, +) + + +_COMPLETERESPONSEPROTO = descriptor.Descriptor( + name='CompleteResponseProto', + full_name='CompleteResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='result', full_name='CompleteResponseProto.result', index=0, + number=1, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1635, + serialized_end=1674, +) + + +_REPORTBADBLOCKSREQUESTPROTO = descriptor.Descriptor( + name='ReportBadBlocksRequestProto', + full_name='ReportBadBlocksRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='blocks', full_name='ReportBadBlocksRequestProto.blocks', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1676, + serialized_end=1741, +) + + +_REPORTBADBLOCKSRESPONSEPROTO = descriptor.Descriptor( + name='ReportBadBlocksResponseProto', + full_name='ReportBadBlocksResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1743, + serialized_end=1773, +) + + +_CONCATREQUESTPROTO = descriptor.Descriptor( + name='ConcatRequestProto', + full_name='ConcatRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='trg', full_name='ConcatRequestProto.trg', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='srcs', full_name='ConcatRequestProto.srcs', index=1, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1775, + serialized_end=1822, +) + + +_CONCATRESPONSEPROTO = descriptor.Descriptor( + name='ConcatResponseProto', + full_name='ConcatResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1824, + serialized_end=1845, +) + + +_RENAMEREQUESTPROTO = descriptor.Descriptor( + name='RenameRequestProto', + full_name='RenameRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='RenameRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='dst', full_name='RenameRequestProto.dst', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1847, + serialized_end=1893, +) + + +_RENAMERESPONSEPROTO = descriptor.Descriptor( + name='RenameResponseProto', + full_name='RenameResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='result', full_name='RenameResponseProto.result', index=0, + number=1, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1895, + serialized_end=1932, +) + + +_RENAME2REQUESTPROTO = descriptor.Descriptor( + name='Rename2RequestProto', + full_name='Rename2RequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='Rename2RequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='dst', full_name='Rename2RequestProto.dst', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='overwriteDest', full_name='Rename2RequestProto.overwriteDest', index=2, + number=3, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1934, + serialized_end=2004, +) + + +_RENAME2RESPONSEPROTO = descriptor.Descriptor( + name='Rename2ResponseProto', + full_name='Rename2ResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2006, + serialized_end=2028, +) + + +_DELETEREQUESTPROTO = descriptor.Descriptor( + name='DeleteRequestProto', + full_name='DeleteRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='DeleteRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='recursive', full_name='DeleteRequestProto.recursive', index=1, + number=2, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2030, + serialized_end=2082, +) + + +_DELETERESPONSEPROTO = descriptor.Descriptor( + name='DeleteResponseProto', + full_name='DeleteResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='result', full_name='DeleteResponseProto.result', index=0, + number=1, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2084, + serialized_end=2121, +) + + +_MKDIRSREQUESTPROTO = descriptor.Descriptor( + name='MkdirsRequestProto', + full_name='MkdirsRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='MkdirsRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='masked', full_name='MkdirsRequestProto.masked', index=1, + number=2, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='createParent', full_name='MkdirsRequestProto.createParent', index=2, + number=3, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2123, + serialized_end=2214, +) + + +_MKDIRSRESPONSEPROTO = descriptor.Descriptor( + name='MkdirsResponseProto', + full_name='MkdirsResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='result', full_name='MkdirsResponseProto.result', index=0, + number=1, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2216, + serialized_end=2253, +) + + +_GETLISTINGREQUESTPROTO = descriptor.Descriptor( + name='GetListingRequestProto', + full_name='GetListingRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='GetListingRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='startAfter', full_name='GetListingRequestProto.startAfter', index=1, + number=2, type=12, cpp_type=9, label=2, + has_default_value=False, default_value="", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='needLocation', full_name='GetListingRequestProto.needLocation', index=2, + number=3, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2255, + serialized_end=2334, +) + + +_GETLISTINGRESPONSEPROTO = descriptor.Descriptor( + name='GetListingResponseProto', + full_name='GetListingResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='dirList', full_name='GetListingResponseProto.dirList', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2336, + serialized_end=2402, +) + + +_RENEWLEASEREQUESTPROTO = descriptor.Descriptor( + name='RenewLeaseRequestProto', + full_name='RenewLeaseRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='clientName', full_name='RenewLeaseRequestProto.clientName', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2404, + serialized_end=2448, +) + + +_RENEWLEASERESPONSEPROTO = descriptor.Descriptor( + name='RenewLeaseResponseProto', + full_name='RenewLeaseResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2450, + serialized_end=2475, +) + + +_RECOVERLEASEREQUESTPROTO = descriptor.Descriptor( + name='RecoverLeaseRequestProto', + full_name='RecoverLeaseRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='RecoverLeaseRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='clientName', full_name='RecoverLeaseRequestProto.clientName', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2477, + serialized_end=2536, +) + + +_RECOVERLEASERESPONSEPROTO = descriptor.Descriptor( + name='RecoverLeaseResponseProto', + full_name='RecoverLeaseResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='result', full_name='RecoverLeaseResponseProto.result', index=0, + number=1, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2538, + serialized_end=2581, +) + + +_GETFSSTATUSREQUESTPROTO = descriptor.Descriptor( + name='GetFsStatusRequestProto', + full_name='GetFsStatusRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2583, + serialized_end=2608, +) + + +_GETFSSTATSRESPONSEPROTO = descriptor.Descriptor( + name='GetFsStatsResponseProto', + full_name='GetFsStatsResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='capacity', full_name='GetFsStatsResponseProto.capacity', index=0, + number=1, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='used', full_name='GetFsStatsResponseProto.used', index=1, + number=2, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='remaining', full_name='GetFsStatsResponseProto.remaining', index=2, + number=3, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='under_replicated', full_name='GetFsStatsResponseProto.under_replicated', index=3, + number=4, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='corrupt_blocks', full_name='GetFsStatsResponseProto.corrupt_blocks', index=4, + number=5, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='missing_blocks', full_name='GetFsStatsResponseProto.missing_blocks', index=5, + number=6, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2611, + serialized_end=2761, +) + + +_GETDATANODEREPORTREQUESTPROTO = descriptor.Descriptor( + name='GetDatanodeReportRequestProto', + full_name='GetDatanodeReportRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='type', full_name='GetDatanodeReportRequestProto.type', index=0, + number=1, type=14, cpp_type=8, label=2, + has_default_value=False, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2763, + serialized_end=2834, +) + + +_GETDATANODEREPORTRESPONSEPROTO = descriptor.Descriptor( + name='GetDatanodeReportResponseProto', + full_name='GetDatanodeReportResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='di', full_name='GetDatanodeReportResponseProto.di', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2836, + serialized_end=2900, +) + + +_GETPREFERREDBLOCKSIZEREQUESTPROTO = descriptor.Descriptor( + name='GetPreferredBlockSizeRequestProto', + full_name='GetPreferredBlockSizeRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='filename', full_name='GetPreferredBlockSizeRequestProto.filename', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2902, + serialized_end=2955, +) + + +_GETPREFERREDBLOCKSIZERESPONSEPROTO = descriptor.Descriptor( + name='GetPreferredBlockSizeResponseProto', + full_name='GetPreferredBlockSizeResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='bsize', full_name='GetPreferredBlockSizeResponseProto.bsize', index=0, + number=1, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2957, + serialized_end=3008, +) + + +_SETSAFEMODEREQUESTPROTO = descriptor.Descriptor( + name='SetSafeModeRequestProto', + full_name='SetSafeModeRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='action', full_name='SetSafeModeRequestProto.action', index=0, + number=1, type=14, cpp_type=8, label=2, + has_default_value=False, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3010, + serialized_end=3073, +) + + +_SETSAFEMODERESPONSEPROTO = descriptor.Descriptor( + name='SetSafeModeResponseProto', + full_name='SetSafeModeResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='result', full_name='SetSafeModeResponseProto.result', index=0, + number=1, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3075, + serialized_end=3117, +) + + +_SAVENAMESPACEREQUESTPROTO = descriptor.Descriptor( + name='SaveNamespaceRequestProto', + full_name='SaveNamespaceRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3119, + serialized_end=3146, +) + + +_SAVENAMESPACERESPONSEPROTO = descriptor.Descriptor( + name='SaveNamespaceResponseProto', + full_name='SaveNamespaceResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3148, + serialized_end=3176, +) + + +_ROLLEDITSREQUESTPROTO = descriptor.Descriptor( + name='RollEditsRequestProto', + full_name='RollEditsRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3178, + serialized_end=3201, +) + + +_ROLLEDITSRESPONSEPROTO = descriptor.Descriptor( + name='RollEditsResponseProto', + full_name='RollEditsResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='newSegmentTxId', full_name='RollEditsResponseProto.newSegmentTxId', index=0, + number=1, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3203, + serialized_end=3251, +) + + +_RESTOREFAILEDSTORAGEREQUESTPROTO = descriptor.Descriptor( + name='RestoreFailedStorageRequestProto', + full_name='RestoreFailedStorageRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='arg', full_name='RestoreFailedStorageRequestProto.arg', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3253, + serialized_end=3300, +) + + +_RESTOREFAILEDSTORAGERESPONSEPROTO = descriptor.Descriptor( + name='RestoreFailedStorageResponseProto', + full_name='RestoreFailedStorageResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='result', full_name='RestoreFailedStorageResponseProto.result', index=0, + number=1, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3302, + serialized_end=3353, +) + + +_REFRESHNODESREQUESTPROTO = descriptor.Descriptor( + name='RefreshNodesRequestProto', + full_name='RefreshNodesRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3355, + serialized_end=3381, +) + + +_REFRESHNODESRESPONSEPROTO = descriptor.Descriptor( + name='RefreshNodesResponseProto', + full_name='RefreshNodesResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3383, + serialized_end=3410, +) + + +_FINALIZEUPGRADEREQUESTPROTO = descriptor.Descriptor( + name='FinalizeUpgradeRequestProto', + full_name='FinalizeUpgradeRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3412, + serialized_end=3441, +) + + +_FINALIZEUPGRADERESPONSEPROTO = descriptor.Descriptor( + name='FinalizeUpgradeResponseProto', + full_name='FinalizeUpgradeResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3443, + serialized_end=3473, +) + + +_DISTRIBUTEDUPGRADEPROGRESSREQUESTPROTO = descriptor.Descriptor( + name='DistributedUpgradeProgressRequestProto', + full_name='DistributedUpgradeProgressRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='action', full_name='DistributedUpgradeProgressRequestProto.action', index=0, + number=1, type=14, cpp_type=8, label=2, + has_default_value=False, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3475, + serialized_end=3552, +) + + +_DISTRIBUTEDUPGRADEPROGRESSRESPONSEPROTO = descriptor.Descriptor( + name='DistributedUpgradeProgressResponseProto', + full_name='DistributedUpgradeProgressResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='report', full_name='DistributedUpgradeProgressResponseProto.report', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3554, + serialized_end=3638, +) + + +_LISTCORRUPTFILEBLOCKSREQUESTPROTO = descriptor.Descriptor( + name='ListCorruptFileBlocksRequestProto', + full_name='ListCorruptFileBlocksRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='path', full_name='ListCorruptFileBlocksRequestProto.path', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='cookie', full_name='ListCorruptFileBlocksRequestProto.cookie', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3640, + serialized_end=3705, +) + + +_LISTCORRUPTFILEBLOCKSRESPONSEPROTO = descriptor.Descriptor( + name='ListCorruptFileBlocksResponseProto', + full_name='ListCorruptFileBlocksResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='corrupt', full_name='ListCorruptFileBlocksResponseProto.corrupt', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3707, + serialized_end=3785, +) + + +_METASAVEREQUESTPROTO = descriptor.Descriptor( + name='MetaSaveRequestProto', + full_name='MetaSaveRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='filename', full_name='MetaSaveRequestProto.filename', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3787, + serialized_end=3827, +) + + +_METASAVERESPONSEPROTO = descriptor.Descriptor( + name='MetaSaveResponseProto', + full_name='MetaSaveResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3829, + serialized_end=3852, +) + + +_GETFILEINFOREQUESTPROTO = descriptor.Descriptor( + name='GetFileInfoRequestProto', + full_name='GetFileInfoRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='GetFileInfoRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3854, + serialized_end=3892, +) + + +_GETFILEINFORESPONSEPROTO = descriptor.Descriptor( + name='GetFileInfoResponseProto', + full_name='GetFileInfoResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='fs', full_name='GetFileInfoResponseProto.fs', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3894, + serialized_end=3954, +) + + +_GETFILELINKINFOREQUESTPROTO = descriptor.Descriptor( + name='GetFileLinkInfoRequestProto', + full_name='GetFileLinkInfoRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='GetFileLinkInfoRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3956, + serialized_end=3998, +) + + +_GETFILELINKINFORESPONSEPROTO = descriptor.Descriptor( + name='GetFileLinkInfoResponseProto', + full_name='GetFileLinkInfoResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='fs', full_name='GetFileLinkInfoResponseProto.fs', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4000, + serialized_end=4064, +) + + +_GETCONTENTSUMMARYREQUESTPROTO = descriptor.Descriptor( + name='GetContentSummaryRequestProto', + full_name='GetContentSummaryRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='path', full_name='GetContentSummaryRequestProto.path', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4066, + serialized_end=4111, +) + + +_GETCONTENTSUMMARYRESPONSEPROTO = descriptor.Descriptor( + name='GetContentSummaryResponseProto', + full_name='GetContentSummaryResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='summary', full_name='GetContentSummaryResponseProto.summary', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4113, + serialized_end=4184, +) + + +_SETQUOTAREQUESTPROTO = descriptor.Descriptor( + name='SetQuotaRequestProto', + full_name='SetQuotaRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='path', full_name='SetQuotaRequestProto.path', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='namespaceQuota', full_name='SetQuotaRequestProto.namespaceQuota', index=1, + number=2, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='diskspaceQuota', full_name='SetQuotaRequestProto.diskspaceQuota', index=2, + number=3, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4186, + serialized_end=4270, +) + + +_SETQUOTARESPONSEPROTO = descriptor.Descriptor( + name='SetQuotaResponseProto', + full_name='SetQuotaResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4272, + serialized_end=4295, +) + + +_FSYNCREQUESTPROTO = descriptor.Descriptor( + name='FsyncRequestProto', + full_name='FsyncRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='FsyncRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='client', full_name='FsyncRequestProto.client', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4297, + serialized_end=4345, +) + + +_FSYNCRESPONSEPROTO = descriptor.Descriptor( + name='FsyncResponseProto', + full_name='FsyncResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4347, + serialized_end=4367, +) + + +_SETTIMESREQUESTPROTO = descriptor.Descriptor( + name='SetTimesRequestProto', + full_name='SetTimesRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='src', full_name='SetTimesRequestProto.src', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='mtime', full_name='SetTimesRequestProto.mtime', index=1, + number=2, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='atime', full_name='SetTimesRequestProto.atime', index=2, + number=3, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4369, + serialized_end=4434, +) + + +_SETTIMESRESPONSEPROTO = descriptor.Descriptor( + name='SetTimesResponseProto', + full_name='SetTimesResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4436, + serialized_end=4459, +) + + +_CREATESYMLINKREQUESTPROTO = descriptor.Descriptor( + name='CreateSymlinkRequestProto', + full_name='CreateSymlinkRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='target', full_name='CreateSymlinkRequestProto.target', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='link', full_name='CreateSymlinkRequestProto.link', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='dirPerm', full_name='CreateSymlinkRequestProto.dirPerm', index=2, + number=3, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='createParent', full_name='CreateSymlinkRequestProto.createParent', index=3, + number=4, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4461, + serialized_end=4577, +) + + +_CREATESYMLINKRESPONSEPROTO = descriptor.Descriptor( + name='CreateSymlinkResponseProto', + full_name='CreateSymlinkResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4579, + serialized_end=4607, +) + + +_GETLINKTARGETREQUESTPROTO = descriptor.Descriptor( + name='GetLinkTargetRequestProto', + full_name='GetLinkTargetRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='path', full_name='GetLinkTargetRequestProto.path', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4609, + serialized_end=4650, +) + + +_GETLINKTARGETRESPONSEPROTO = descriptor.Descriptor( + name='GetLinkTargetResponseProto', + full_name='GetLinkTargetResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='targetPath', full_name='GetLinkTargetResponseProto.targetPath', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4652, + serialized_end=4700, +) + + +_UPDATEBLOCKFORPIPELINEREQUESTPROTO = descriptor.Descriptor( + name='UpdateBlockForPipelineRequestProto', + full_name='UpdateBlockForPipelineRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='block', full_name='UpdateBlockForPipelineRequestProto.block', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='clientName', full_name='UpdateBlockForPipelineRequestProto.clientName', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4702, + serialized_end=4794, +) + + +_UPDATEBLOCKFORPIPELINERESPONSEPROTO = descriptor.Descriptor( + name='UpdateBlockForPipelineResponseProto', + full_name='UpdateBlockForPipelineResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='block', full_name='UpdateBlockForPipelineResponseProto.block', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4796, + serialized_end=4868, +) + + +_UPDATEPIPELINEREQUESTPROTO = descriptor.Descriptor( + name='UpdatePipelineRequestProto', + full_name='UpdatePipelineRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='clientName', full_name='UpdatePipelineRequestProto.clientName', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='oldBlock', full_name='UpdatePipelineRequestProto.oldBlock', index=1, + number=2, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='newBlock', full_name='UpdatePipelineRequestProto.newBlock', index=2, + number=3, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='newNodes', full_name='UpdatePipelineRequestProto.newNodes', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=4871, + serialized_end=5033, +) + + +_UPDATEPIPELINERESPONSEPROTO = descriptor.Descriptor( + name='UpdatePipelineResponseProto', + full_name='UpdatePipelineResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=5035, + serialized_end=5064, +) + + +_GETDELEGATIONTOKENREQUESTPROTO = descriptor.Descriptor( + name='GetDelegationTokenRequestProto', + full_name='GetDelegationTokenRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='renewer', full_name='GetDelegationTokenRequestProto.renewer', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=5066, + serialized_end=5115, +) + + +_GETDELEGATIONTOKENRESPONSEPROTO = descriptor.Descriptor( + name='GetDelegationTokenResponseProto', + full_name='GetDelegationTokenResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='token', full_name='GetDelegationTokenResponseProto.token', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=5117, + serialized_end=5193, +) + + +_RENEWDELEGATIONTOKENREQUESTPROTO = descriptor.Descriptor( + name='RenewDelegationTokenRequestProto', + full_name='RenewDelegationTokenRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='token', full_name='RenewDelegationTokenRequestProto.token', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=5195, + serialized_end=5272, +) + + +_RENEWDELEGATIONTOKENRESPONSEPROTO = descriptor.Descriptor( + name='RenewDelegationTokenResponseProto', + full_name='RenewDelegationTokenResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='newExireTime', full_name='RenewDelegationTokenResponseProto.newExireTime', index=0, + number=1, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=5274, + serialized_end=5331, +) + + +_CANCELDELEGATIONTOKENREQUESTPROTO = descriptor.Descriptor( + name='CancelDelegationTokenRequestProto', + full_name='CancelDelegationTokenRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='token', full_name='CancelDelegationTokenRequestProto.token', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=5333, + serialized_end=5411, +) + + +_CANCELDELEGATIONTOKENRESPONSEPROTO = descriptor.Descriptor( + name='CancelDelegationTokenResponseProto', + full_name='CancelDelegationTokenResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=5413, + serialized_end=5449, +) + + +_SETBALANCERBANDWIDTHREQUESTPROTO = descriptor.Descriptor( + name='SetBalancerBandwidthRequestProto', + full_name='SetBalancerBandwidthRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='bandwidth', full_name='SetBalancerBandwidthRequestProto.bandwidth', index=0, + number=1, type=3, cpp_type=2, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=5451, + serialized_end=5504, +) + + +_SETBALANCERBANDWIDTHRESPONSEPROTO = descriptor.Descriptor( + name='SetBalancerBandwidthResponseProto', + full_name='SetBalancerBandwidthResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=5506, + serialized_end=5541, +) + + +_GETDATAENCRYPTIONKEYREQUESTPROTO = descriptor.Descriptor( + name='GetDataEncryptionKeyRequestProto', + full_name='GetDataEncryptionKeyRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=5543, + serialized_end=5577, +) + + +_GETDATAENCRYPTIONKEYRESPONSEPROTO = descriptor.Descriptor( + name='GetDataEncryptionKeyResponseProto', + full_name='GetDataEncryptionKeyResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='dataEncryptionKey', full_name='GetDataEncryptionKeyResponseProto.dataEncryptionKey', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=5579, + serialized_end=5666, +) + +_GETBLOCKLOCATIONSRESPONSEPROTO.fields_by_name['locations'].message_type = hdfs_pb2._LOCATEDBLOCKSPROTO +_GETSERVERDEFAULTSRESPONSEPROTO.fields_by_name['serverDefaults'].message_type = hdfs_pb2._FSSERVERDEFAULTSPROTO +_CREATEREQUESTPROTO.fields_by_name['masked'].message_type = hdfs_pb2._FSPERMISSIONPROTO +_APPENDRESPONSEPROTO.fields_by_name['block'].message_type = hdfs_pb2._LOCATEDBLOCKPROTO +_SETPERMISSIONREQUESTPROTO.fields_by_name['permission'].message_type = hdfs_pb2._FSPERMISSIONPROTO +_ABANDONBLOCKREQUESTPROTO.fields_by_name['b'].message_type = hdfs_pb2._EXTENDEDBLOCKPROTO +_ADDBLOCKREQUESTPROTO.fields_by_name['previous'].message_type = hdfs_pb2._EXTENDEDBLOCKPROTO +_ADDBLOCKREQUESTPROTO.fields_by_name['excludeNodes'].message_type = hdfs_pb2._DATANODEINFOPROTO +_ADDBLOCKRESPONSEPROTO.fields_by_name['block'].message_type = hdfs_pb2._LOCATEDBLOCKPROTO +_GETADDITIONALDATANODEREQUESTPROTO.fields_by_name['blk'].message_type = hdfs_pb2._EXTENDEDBLOCKPROTO +_GETADDITIONALDATANODEREQUESTPROTO.fields_by_name['existings'].message_type = hdfs_pb2._DATANODEINFOPROTO +_GETADDITIONALDATANODEREQUESTPROTO.fields_by_name['excludes'].message_type = hdfs_pb2._DATANODEINFOPROTO +_GETADDITIONALDATANODERESPONSEPROTO.fields_by_name['block'].message_type = hdfs_pb2._LOCATEDBLOCKPROTO +_COMPLETEREQUESTPROTO.fields_by_name['last'].message_type = hdfs_pb2._EXTENDEDBLOCKPROTO +_REPORTBADBLOCKSREQUESTPROTO.fields_by_name['blocks'].message_type = hdfs_pb2._LOCATEDBLOCKPROTO +_MKDIRSREQUESTPROTO.fields_by_name['masked'].message_type = hdfs_pb2._FSPERMISSIONPROTO +_GETLISTINGRESPONSEPROTO.fields_by_name['dirList'].message_type = hdfs_pb2._DIRECTORYLISTINGPROTO +_GETDATANODEREPORTREQUESTPROTO.fields_by_name['type'].enum_type = _DATANODEREPORTTYPEPROTO +_GETDATANODEREPORTRESPONSEPROTO.fields_by_name['di'].message_type = hdfs_pb2._DATANODEINFOPROTO +_SETSAFEMODEREQUESTPROTO.fields_by_name['action'].enum_type = _SAFEMODEACTIONPROTO +_DISTRIBUTEDUPGRADEPROGRESSREQUESTPROTO.fields_by_name['action'].enum_type = _UPGRADEACTIONPROTO +_DISTRIBUTEDUPGRADEPROGRESSRESPONSEPROTO.fields_by_name['report'].message_type = hdfs_pb2._UPGRADESTATUSREPORTPROTO +_LISTCORRUPTFILEBLOCKSRESPONSEPROTO.fields_by_name['corrupt'].message_type = hdfs_pb2._CORRUPTFILEBLOCKSPROTO +_GETFILEINFORESPONSEPROTO.fields_by_name['fs'].message_type = hdfs_pb2._HDFSFILESTATUSPROTO +_GETFILELINKINFORESPONSEPROTO.fields_by_name['fs'].message_type = hdfs_pb2._HDFSFILESTATUSPROTO +_GETCONTENTSUMMARYRESPONSEPROTO.fields_by_name['summary'].message_type = hdfs_pb2._CONTENTSUMMARYPROTO +_CREATESYMLINKREQUESTPROTO.fields_by_name['dirPerm'].message_type = hdfs_pb2._FSPERMISSIONPROTO +_UPDATEBLOCKFORPIPELINEREQUESTPROTO.fields_by_name['block'].message_type = hdfs_pb2._EXTENDEDBLOCKPROTO +_UPDATEBLOCKFORPIPELINERESPONSEPROTO.fields_by_name['block'].message_type = hdfs_pb2._LOCATEDBLOCKPROTO +_UPDATEPIPELINEREQUESTPROTO.fields_by_name['oldBlock'].message_type = hdfs_pb2._EXTENDEDBLOCKPROTO +_UPDATEPIPELINEREQUESTPROTO.fields_by_name['newBlock'].message_type = hdfs_pb2._EXTENDEDBLOCKPROTO +_UPDATEPIPELINEREQUESTPROTO.fields_by_name['newNodes'].message_type = hdfs_pb2._DATANODEIDPROTO +_GETDELEGATIONTOKENRESPONSEPROTO.fields_by_name['token'].message_type = hdfs_pb2._BLOCKTOKENIDENTIFIERPROTO +_RENEWDELEGATIONTOKENREQUESTPROTO.fields_by_name['token'].message_type = hdfs_pb2._BLOCKTOKENIDENTIFIERPROTO +_CANCELDELEGATIONTOKENREQUESTPROTO.fields_by_name['token'].message_type = hdfs_pb2._BLOCKTOKENIDENTIFIERPROTO +_GETDATAENCRYPTIONKEYRESPONSEPROTO.fields_by_name['dataEncryptionKey'].message_type = hdfs_pb2._DATAENCRYPTIONKEYPROTO +DESCRIPTOR.message_types_by_name['GetBlockLocationsRequestProto'] = _GETBLOCKLOCATIONSREQUESTPROTO +DESCRIPTOR.message_types_by_name['GetBlockLocationsResponseProto'] = _GETBLOCKLOCATIONSRESPONSEPROTO +DESCRIPTOR.message_types_by_name['GetServerDefaultsRequestProto'] = _GETSERVERDEFAULTSREQUESTPROTO +DESCRIPTOR.message_types_by_name['GetServerDefaultsResponseProto'] = _GETSERVERDEFAULTSRESPONSEPROTO +DESCRIPTOR.message_types_by_name['CreateRequestProto'] = _CREATEREQUESTPROTO +DESCRIPTOR.message_types_by_name['CreateResponseProto'] = _CREATERESPONSEPROTO +DESCRIPTOR.message_types_by_name['AppendRequestProto'] = _APPENDREQUESTPROTO +DESCRIPTOR.message_types_by_name['AppendResponseProto'] = _APPENDRESPONSEPROTO +DESCRIPTOR.message_types_by_name['SetReplicationRequestProto'] = _SETREPLICATIONREQUESTPROTO +DESCRIPTOR.message_types_by_name['SetReplicationResponseProto'] = _SETREPLICATIONRESPONSEPROTO +DESCRIPTOR.message_types_by_name['SetPermissionRequestProto'] = _SETPERMISSIONREQUESTPROTO +DESCRIPTOR.message_types_by_name['SetPermissionResponseProto'] = _SETPERMISSIONRESPONSEPROTO +DESCRIPTOR.message_types_by_name['SetOwnerRequestProto'] = _SETOWNERREQUESTPROTO +DESCRIPTOR.message_types_by_name['SetOwnerResponseProto'] = _SETOWNERRESPONSEPROTO +DESCRIPTOR.message_types_by_name['AbandonBlockRequestProto'] = _ABANDONBLOCKREQUESTPROTO +DESCRIPTOR.message_types_by_name['AbandonBlockResponseProto'] = _ABANDONBLOCKRESPONSEPROTO +DESCRIPTOR.message_types_by_name['AddBlockRequestProto'] = _ADDBLOCKREQUESTPROTO +DESCRIPTOR.message_types_by_name['AddBlockResponseProto'] = _ADDBLOCKRESPONSEPROTO +DESCRIPTOR.message_types_by_name['GetAdditionalDatanodeRequestProto'] = _GETADDITIONALDATANODEREQUESTPROTO +DESCRIPTOR.message_types_by_name['GetAdditionalDatanodeResponseProto'] = _GETADDITIONALDATANODERESPONSEPROTO +DESCRIPTOR.message_types_by_name['CompleteRequestProto'] = _COMPLETEREQUESTPROTO +DESCRIPTOR.message_types_by_name['CompleteResponseProto'] = _COMPLETERESPONSEPROTO +DESCRIPTOR.message_types_by_name['ReportBadBlocksRequestProto'] = _REPORTBADBLOCKSREQUESTPROTO +DESCRIPTOR.message_types_by_name['ReportBadBlocksResponseProto'] = _REPORTBADBLOCKSRESPONSEPROTO +DESCRIPTOR.message_types_by_name['ConcatRequestProto'] = _CONCATREQUESTPROTO +DESCRIPTOR.message_types_by_name['ConcatResponseProto'] = _CONCATRESPONSEPROTO +DESCRIPTOR.message_types_by_name['RenameRequestProto'] = _RENAMEREQUESTPROTO +DESCRIPTOR.message_types_by_name['RenameResponseProto'] = _RENAMERESPONSEPROTO +DESCRIPTOR.message_types_by_name['Rename2RequestProto'] = _RENAME2REQUESTPROTO +DESCRIPTOR.message_types_by_name['Rename2ResponseProto'] = _RENAME2RESPONSEPROTO +DESCRIPTOR.message_types_by_name['DeleteRequestProto'] = _DELETEREQUESTPROTO +DESCRIPTOR.message_types_by_name['DeleteResponseProto'] = _DELETERESPONSEPROTO +DESCRIPTOR.message_types_by_name['MkdirsRequestProto'] = _MKDIRSREQUESTPROTO +DESCRIPTOR.message_types_by_name['MkdirsResponseProto'] = _MKDIRSRESPONSEPROTO +DESCRIPTOR.message_types_by_name['GetListingRequestProto'] = _GETLISTINGREQUESTPROTO +DESCRIPTOR.message_types_by_name['GetListingResponseProto'] = _GETLISTINGRESPONSEPROTO +DESCRIPTOR.message_types_by_name['RenewLeaseRequestProto'] = _RENEWLEASEREQUESTPROTO +DESCRIPTOR.message_types_by_name['RenewLeaseResponseProto'] = _RENEWLEASERESPONSEPROTO +DESCRIPTOR.message_types_by_name['RecoverLeaseRequestProto'] = _RECOVERLEASEREQUESTPROTO +DESCRIPTOR.message_types_by_name['RecoverLeaseResponseProto'] = _RECOVERLEASERESPONSEPROTO +DESCRIPTOR.message_types_by_name['GetFsStatusRequestProto'] = _GETFSSTATUSREQUESTPROTO +DESCRIPTOR.message_types_by_name['GetFsStatsResponseProto'] = _GETFSSTATSRESPONSEPROTO +DESCRIPTOR.message_types_by_name['GetDatanodeReportRequestProto'] = _GETDATANODEREPORTREQUESTPROTO +DESCRIPTOR.message_types_by_name['GetDatanodeReportResponseProto'] = _GETDATANODEREPORTRESPONSEPROTO +DESCRIPTOR.message_types_by_name['GetPreferredBlockSizeRequestProto'] = _GETPREFERREDBLOCKSIZEREQUESTPROTO +DESCRIPTOR.message_types_by_name['GetPreferredBlockSizeResponseProto'] = _GETPREFERREDBLOCKSIZERESPONSEPROTO +DESCRIPTOR.message_types_by_name['SetSafeModeRequestProto'] = _SETSAFEMODEREQUESTPROTO +DESCRIPTOR.message_types_by_name['SetSafeModeResponseProto'] = _SETSAFEMODERESPONSEPROTO +DESCRIPTOR.message_types_by_name['SaveNamespaceRequestProto'] = _SAVENAMESPACEREQUESTPROTO +DESCRIPTOR.message_types_by_name['SaveNamespaceResponseProto'] = _SAVENAMESPACERESPONSEPROTO +DESCRIPTOR.message_types_by_name['RollEditsRequestProto'] = _ROLLEDITSREQUESTPROTO +DESCRIPTOR.message_types_by_name['RollEditsResponseProto'] = _ROLLEDITSRESPONSEPROTO +DESCRIPTOR.message_types_by_name['RestoreFailedStorageRequestProto'] = _RESTOREFAILEDSTORAGEREQUESTPROTO +DESCRIPTOR.message_types_by_name['RestoreFailedStorageResponseProto'] = _RESTOREFAILEDSTORAGERESPONSEPROTO +DESCRIPTOR.message_types_by_name['RefreshNodesRequestProto'] = _REFRESHNODESREQUESTPROTO +DESCRIPTOR.message_types_by_name['RefreshNodesResponseProto'] = _REFRESHNODESRESPONSEPROTO +DESCRIPTOR.message_types_by_name['FinalizeUpgradeRequestProto'] = _FINALIZEUPGRADEREQUESTPROTO +DESCRIPTOR.message_types_by_name['FinalizeUpgradeResponseProto'] = _FINALIZEUPGRADERESPONSEPROTO +DESCRIPTOR.message_types_by_name['DistributedUpgradeProgressRequestProto'] = _DISTRIBUTEDUPGRADEPROGRESSREQUESTPROTO +DESCRIPTOR.message_types_by_name['DistributedUpgradeProgressResponseProto'] = _DISTRIBUTEDUPGRADEPROGRESSRESPONSEPROTO +DESCRIPTOR.message_types_by_name['ListCorruptFileBlocksRequestProto'] = _LISTCORRUPTFILEBLOCKSREQUESTPROTO +DESCRIPTOR.message_types_by_name['ListCorruptFileBlocksResponseProto'] = _LISTCORRUPTFILEBLOCKSRESPONSEPROTO +DESCRIPTOR.message_types_by_name['MetaSaveRequestProto'] = _METASAVEREQUESTPROTO +DESCRIPTOR.message_types_by_name['MetaSaveResponseProto'] = _METASAVERESPONSEPROTO +DESCRIPTOR.message_types_by_name['GetFileInfoRequestProto'] = _GETFILEINFOREQUESTPROTO +DESCRIPTOR.message_types_by_name['GetFileInfoResponseProto'] = _GETFILEINFORESPONSEPROTO +DESCRIPTOR.message_types_by_name['GetFileLinkInfoRequestProto'] = _GETFILELINKINFOREQUESTPROTO +DESCRIPTOR.message_types_by_name['GetFileLinkInfoResponseProto'] = _GETFILELINKINFORESPONSEPROTO +DESCRIPTOR.message_types_by_name['GetContentSummaryRequestProto'] = _GETCONTENTSUMMARYREQUESTPROTO +DESCRIPTOR.message_types_by_name['GetContentSummaryResponseProto'] = _GETCONTENTSUMMARYRESPONSEPROTO +DESCRIPTOR.message_types_by_name['SetQuotaRequestProto'] = _SETQUOTAREQUESTPROTO +DESCRIPTOR.message_types_by_name['SetQuotaResponseProto'] = _SETQUOTARESPONSEPROTO +DESCRIPTOR.message_types_by_name['FsyncRequestProto'] = _FSYNCREQUESTPROTO +DESCRIPTOR.message_types_by_name['FsyncResponseProto'] = _FSYNCRESPONSEPROTO +DESCRIPTOR.message_types_by_name['SetTimesRequestProto'] = _SETTIMESREQUESTPROTO +DESCRIPTOR.message_types_by_name['SetTimesResponseProto'] = _SETTIMESRESPONSEPROTO +DESCRIPTOR.message_types_by_name['CreateSymlinkRequestProto'] = _CREATESYMLINKREQUESTPROTO +DESCRIPTOR.message_types_by_name['CreateSymlinkResponseProto'] = _CREATESYMLINKRESPONSEPROTO +DESCRIPTOR.message_types_by_name['GetLinkTargetRequestProto'] = _GETLINKTARGETREQUESTPROTO +DESCRIPTOR.message_types_by_name['GetLinkTargetResponseProto'] = _GETLINKTARGETRESPONSEPROTO +DESCRIPTOR.message_types_by_name['UpdateBlockForPipelineRequestProto'] = _UPDATEBLOCKFORPIPELINEREQUESTPROTO +DESCRIPTOR.message_types_by_name['UpdateBlockForPipelineResponseProto'] = _UPDATEBLOCKFORPIPELINERESPONSEPROTO +DESCRIPTOR.message_types_by_name['UpdatePipelineRequestProto'] = _UPDATEPIPELINEREQUESTPROTO +DESCRIPTOR.message_types_by_name['UpdatePipelineResponseProto'] = _UPDATEPIPELINERESPONSEPROTO +DESCRIPTOR.message_types_by_name['GetDelegationTokenRequestProto'] = _GETDELEGATIONTOKENREQUESTPROTO +DESCRIPTOR.message_types_by_name['GetDelegationTokenResponseProto'] = _GETDELEGATIONTOKENRESPONSEPROTO +DESCRIPTOR.message_types_by_name['RenewDelegationTokenRequestProto'] = _RENEWDELEGATIONTOKENREQUESTPROTO +DESCRIPTOR.message_types_by_name['RenewDelegationTokenResponseProto'] = _RENEWDELEGATIONTOKENRESPONSEPROTO +DESCRIPTOR.message_types_by_name['CancelDelegationTokenRequestProto'] = _CANCELDELEGATIONTOKENREQUESTPROTO +DESCRIPTOR.message_types_by_name['CancelDelegationTokenResponseProto'] = _CANCELDELEGATIONTOKENRESPONSEPROTO +DESCRIPTOR.message_types_by_name['SetBalancerBandwidthRequestProto'] = _SETBALANCERBANDWIDTHREQUESTPROTO +DESCRIPTOR.message_types_by_name['SetBalancerBandwidthResponseProto'] = _SETBALANCERBANDWIDTHRESPONSEPROTO +DESCRIPTOR.message_types_by_name['GetDataEncryptionKeyRequestProto'] = _GETDATAENCRYPTIONKEYREQUESTPROTO +DESCRIPTOR.message_types_by_name['GetDataEncryptionKeyResponseProto'] = _GETDATAENCRYPTIONKEYRESPONSEPROTO + +class GetBlockLocationsRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETBLOCKLOCATIONSREQUESTPROTO + + # @@protoc_insertion_point(class_scope:GetBlockLocationsRequestProto) + +class GetBlockLocationsResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETBLOCKLOCATIONSRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:GetBlockLocationsResponseProto) + +class GetServerDefaultsRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETSERVERDEFAULTSREQUESTPROTO + + # @@protoc_insertion_point(class_scope:GetServerDefaultsRequestProto) + +class GetServerDefaultsResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETSERVERDEFAULTSRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:GetServerDefaultsResponseProto) + +class CreateRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _CREATEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:CreateRequestProto) + +class CreateResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _CREATERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:CreateResponseProto) + +class AppendRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _APPENDREQUESTPROTO + + # @@protoc_insertion_point(class_scope:AppendRequestProto) + +class AppendResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _APPENDRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:AppendResponseProto) + +class SetReplicationRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETREPLICATIONREQUESTPROTO + + # @@protoc_insertion_point(class_scope:SetReplicationRequestProto) + +class SetReplicationResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETREPLICATIONRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:SetReplicationResponseProto) + +class SetPermissionRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETPERMISSIONREQUESTPROTO + + # @@protoc_insertion_point(class_scope:SetPermissionRequestProto) + +class SetPermissionResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETPERMISSIONRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:SetPermissionResponseProto) + +class SetOwnerRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETOWNERREQUESTPROTO + + # @@protoc_insertion_point(class_scope:SetOwnerRequestProto) + +class SetOwnerResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETOWNERRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:SetOwnerResponseProto) + +class AbandonBlockRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _ABANDONBLOCKREQUESTPROTO + + # @@protoc_insertion_point(class_scope:AbandonBlockRequestProto) + +class AbandonBlockResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _ABANDONBLOCKRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:AbandonBlockResponseProto) + +class AddBlockRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _ADDBLOCKREQUESTPROTO + + # @@protoc_insertion_point(class_scope:AddBlockRequestProto) + +class AddBlockResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _ADDBLOCKRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:AddBlockResponseProto) + +class GetAdditionalDatanodeRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETADDITIONALDATANODEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:GetAdditionalDatanodeRequestProto) + +class GetAdditionalDatanodeResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETADDITIONALDATANODERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:GetAdditionalDatanodeResponseProto) + +class CompleteRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _COMPLETEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:CompleteRequestProto) + +class CompleteResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _COMPLETERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:CompleteResponseProto) + +class ReportBadBlocksRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _REPORTBADBLOCKSREQUESTPROTO + + # @@protoc_insertion_point(class_scope:ReportBadBlocksRequestProto) + +class ReportBadBlocksResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _REPORTBADBLOCKSRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:ReportBadBlocksResponseProto) + +class ConcatRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _CONCATREQUESTPROTO + + # @@protoc_insertion_point(class_scope:ConcatRequestProto) + +class ConcatResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _CONCATRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:ConcatResponseProto) + +class RenameRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RENAMEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:RenameRequestProto) + +class RenameResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RENAMERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:RenameResponseProto) + +class Rename2RequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RENAME2REQUESTPROTO + + # @@protoc_insertion_point(class_scope:Rename2RequestProto) + +class Rename2ResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RENAME2RESPONSEPROTO + + # @@protoc_insertion_point(class_scope:Rename2ResponseProto) + +class DeleteRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _DELETEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:DeleteRequestProto) + +class DeleteResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _DELETERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:DeleteResponseProto) + +class MkdirsRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _MKDIRSREQUESTPROTO + + # @@protoc_insertion_point(class_scope:MkdirsRequestProto) + +class MkdirsResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _MKDIRSRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:MkdirsResponseProto) + +class GetListingRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETLISTINGREQUESTPROTO + + # @@protoc_insertion_point(class_scope:GetListingRequestProto) + +class GetListingResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETLISTINGRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:GetListingResponseProto) + +class RenewLeaseRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RENEWLEASEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:RenewLeaseRequestProto) + +class RenewLeaseResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RENEWLEASERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:RenewLeaseResponseProto) + +class RecoverLeaseRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RECOVERLEASEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:RecoverLeaseRequestProto) + +class RecoverLeaseResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RECOVERLEASERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:RecoverLeaseResponseProto) + +class GetFsStatusRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETFSSTATUSREQUESTPROTO + + # @@protoc_insertion_point(class_scope:GetFsStatusRequestProto) + +class GetFsStatsResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETFSSTATSRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:GetFsStatsResponseProto) + +class GetDatanodeReportRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETDATANODEREPORTREQUESTPROTO + + # @@protoc_insertion_point(class_scope:GetDatanodeReportRequestProto) + +class GetDatanodeReportResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETDATANODEREPORTRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:GetDatanodeReportResponseProto) + +class GetPreferredBlockSizeRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETPREFERREDBLOCKSIZEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:GetPreferredBlockSizeRequestProto) + +class GetPreferredBlockSizeResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETPREFERREDBLOCKSIZERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:GetPreferredBlockSizeResponseProto) + +class SetSafeModeRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETSAFEMODEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:SetSafeModeRequestProto) + +class SetSafeModeResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETSAFEMODERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:SetSafeModeResponseProto) + +class SaveNamespaceRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SAVENAMESPACEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:SaveNamespaceRequestProto) + +class SaveNamespaceResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SAVENAMESPACERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:SaveNamespaceResponseProto) + +class RollEditsRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _ROLLEDITSREQUESTPROTO + + # @@protoc_insertion_point(class_scope:RollEditsRequestProto) + +class RollEditsResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _ROLLEDITSRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:RollEditsResponseProto) + +class RestoreFailedStorageRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RESTOREFAILEDSTORAGEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:RestoreFailedStorageRequestProto) + +class RestoreFailedStorageResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RESTOREFAILEDSTORAGERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:RestoreFailedStorageResponseProto) + +class RefreshNodesRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _REFRESHNODESREQUESTPROTO + + # @@protoc_insertion_point(class_scope:RefreshNodesRequestProto) + +class RefreshNodesResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _REFRESHNODESRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:RefreshNodesResponseProto) + +class FinalizeUpgradeRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _FINALIZEUPGRADEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:FinalizeUpgradeRequestProto) + +class FinalizeUpgradeResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _FINALIZEUPGRADERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:FinalizeUpgradeResponseProto) + +class DistributedUpgradeProgressRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _DISTRIBUTEDUPGRADEPROGRESSREQUESTPROTO + + # @@protoc_insertion_point(class_scope:DistributedUpgradeProgressRequestProto) + +class DistributedUpgradeProgressResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _DISTRIBUTEDUPGRADEPROGRESSRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:DistributedUpgradeProgressResponseProto) + +class ListCorruptFileBlocksRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _LISTCORRUPTFILEBLOCKSREQUESTPROTO + + # @@protoc_insertion_point(class_scope:ListCorruptFileBlocksRequestProto) + +class ListCorruptFileBlocksResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _LISTCORRUPTFILEBLOCKSRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:ListCorruptFileBlocksResponseProto) + +class MetaSaveRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _METASAVEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:MetaSaveRequestProto) + +class MetaSaveResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _METASAVERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:MetaSaveResponseProto) + +class GetFileInfoRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETFILEINFOREQUESTPROTO + + # @@protoc_insertion_point(class_scope:GetFileInfoRequestProto) + +class GetFileInfoResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETFILEINFORESPONSEPROTO + + # @@protoc_insertion_point(class_scope:GetFileInfoResponseProto) + +class GetFileLinkInfoRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETFILELINKINFOREQUESTPROTO + + # @@protoc_insertion_point(class_scope:GetFileLinkInfoRequestProto) + +class GetFileLinkInfoResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETFILELINKINFORESPONSEPROTO + + # @@protoc_insertion_point(class_scope:GetFileLinkInfoResponseProto) + +class GetContentSummaryRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETCONTENTSUMMARYREQUESTPROTO + + # @@protoc_insertion_point(class_scope:GetContentSummaryRequestProto) + +class GetContentSummaryResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETCONTENTSUMMARYRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:GetContentSummaryResponseProto) + +class SetQuotaRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETQUOTAREQUESTPROTO + + # @@protoc_insertion_point(class_scope:SetQuotaRequestProto) + +class SetQuotaResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETQUOTARESPONSEPROTO + + # @@protoc_insertion_point(class_scope:SetQuotaResponseProto) + +class FsyncRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _FSYNCREQUESTPROTO + + # @@protoc_insertion_point(class_scope:FsyncRequestProto) + +class FsyncResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _FSYNCRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:FsyncResponseProto) + +class SetTimesRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETTIMESREQUESTPROTO + + # @@protoc_insertion_point(class_scope:SetTimesRequestProto) + +class SetTimesResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETTIMESRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:SetTimesResponseProto) + +class CreateSymlinkRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _CREATESYMLINKREQUESTPROTO + + # @@protoc_insertion_point(class_scope:CreateSymlinkRequestProto) + +class CreateSymlinkResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _CREATESYMLINKRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:CreateSymlinkResponseProto) + +class GetLinkTargetRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETLINKTARGETREQUESTPROTO + + # @@protoc_insertion_point(class_scope:GetLinkTargetRequestProto) + +class GetLinkTargetResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETLINKTARGETRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:GetLinkTargetResponseProto) + +class UpdateBlockForPipelineRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _UPDATEBLOCKFORPIPELINEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:UpdateBlockForPipelineRequestProto) + +class UpdateBlockForPipelineResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _UPDATEBLOCKFORPIPELINERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:UpdateBlockForPipelineResponseProto) + +class UpdatePipelineRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _UPDATEPIPELINEREQUESTPROTO + + # @@protoc_insertion_point(class_scope:UpdatePipelineRequestProto) + +class UpdatePipelineResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _UPDATEPIPELINERESPONSEPROTO + + # @@protoc_insertion_point(class_scope:UpdatePipelineResponseProto) + +class GetDelegationTokenRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETDELEGATIONTOKENREQUESTPROTO + + # @@protoc_insertion_point(class_scope:GetDelegationTokenRequestProto) + +class GetDelegationTokenResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETDELEGATIONTOKENRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:GetDelegationTokenResponseProto) + +class RenewDelegationTokenRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RENEWDELEGATIONTOKENREQUESTPROTO + + # @@protoc_insertion_point(class_scope:RenewDelegationTokenRequestProto) + +class RenewDelegationTokenResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RENEWDELEGATIONTOKENRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:RenewDelegationTokenResponseProto) + +class CancelDelegationTokenRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _CANCELDELEGATIONTOKENREQUESTPROTO + + # @@protoc_insertion_point(class_scope:CancelDelegationTokenRequestProto) + +class CancelDelegationTokenResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _CANCELDELEGATIONTOKENRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:CancelDelegationTokenResponseProto) + +class SetBalancerBandwidthRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETBALANCERBANDWIDTHREQUESTPROTO + + # @@protoc_insertion_point(class_scope:SetBalancerBandwidthRequestProto) + +class SetBalancerBandwidthResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _SETBALANCERBANDWIDTHRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:SetBalancerBandwidthResponseProto) + +class GetDataEncryptionKeyRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETDATAENCRYPTIONKEYREQUESTPROTO + + # @@protoc_insertion_point(class_scope:GetDataEncryptionKeyRequestProto) + +class GetDataEncryptionKeyResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _GETDATAENCRYPTIONKEYRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:GetDataEncryptionKeyResponseProto) + + +_CLIENTNAMENODEPROTOCOL = descriptor.ServiceDescriptor( + name='ClientNamenodeProtocol', + full_name='ClientNamenodeProtocol', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=5942, + serialized_end=9460, + methods=[ + descriptor.MethodDescriptor( + name='getBlockLocations', + full_name='ClientNamenodeProtocol.getBlockLocations', + index=0, + containing_service=None, + input_type=_GETBLOCKLOCATIONSREQUESTPROTO, + output_type=_GETBLOCKLOCATIONSRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='getServerDefaults', + full_name='ClientNamenodeProtocol.getServerDefaults', + index=1, + containing_service=None, + input_type=_GETSERVERDEFAULTSREQUESTPROTO, + output_type=_GETSERVERDEFAULTSRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='create', + full_name='ClientNamenodeProtocol.create', + index=2, + containing_service=None, + input_type=_CREATEREQUESTPROTO, + output_type=_CREATERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='append', + full_name='ClientNamenodeProtocol.append', + index=3, + containing_service=None, + input_type=_APPENDREQUESTPROTO, + output_type=_APPENDRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='setReplication', + full_name='ClientNamenodeProtocol.setReplication', + index=4, + containing_service=None, + input_type=_SETREPLICATIONREQUESTPROTO, + output_type=_SETREPLICATIONRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='setPermission', + full_name='ClientNamenodeProtocol.setPermission', + index=5, + containing_service=None, + input_type=_SETPERMISSIONREQUESTPROTO, + output_type=_SETPERMISSIONRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='setOwner', + full_name='ClientNamenodeProtocol.setOwner', + index=6, + containing_service=None, + input_type=_SETOWNERREQUESTPROTO, + output_type=_SETOWNERRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='abandonBlock', + full_name='ClientNamenodeProtocol.abandonBlock', + index=7, + containing_service=None, + input_type=_ABANDONBLOCKREQUESTPROTO, + output_type=_ABANDONBLOCKRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='addBlock', + full_name='ClientNamenodeProtocol.addBlock', + index=8, + containing_service=None, + input_type=_ADDBLOCKREQUESTPROTO, + output_type=_ADDBLOCKRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='getAdditionalDatanode', + full_name='ClientNamenodeProtocol.getAdditionalDatanode', + index=9, + containing_service=None, + input_type=_GETADDITIONALDATANODEREQUESTPROTO, + output_type=_GETADDITIONALDATANODERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='complete', + full_name='ClientNamenodeProtocol.complete', + index=10, + containing_service=None, + input_type=_COMPLETEREQUESTPROTO, + output_type=_COMPLETERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='reportBadBlocks', + full_name='ClientNamenodeProtocol.reportBadBlocks', + index=11, + containing_service=None, + input_type=_REPORTBADBLOCKSREQUESTPROTO, + output_type=_REPORTBADBLOCKSRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='concat', + full_name='ClientNamenodeProtocol.concat', + index=12, + containing_service=None, + input_type=_CONCATREQUESTPROTO, + output_type=_CONCATRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='rename', + full_name='ClientNamenodeProtocol.rename', + index=13, + containing_service=None, + input_type=_RENAMEREQUESTPROTO, + output_type=_RENAMERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='rename2', + full_name='ClientNamenodeProtocol.rename2', + index=14, + containing_service=None, + input_type=_RENAME2REQUESTPROTO, + output_type=_RENAME2RESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='delete', + full_name='ClientNamenodeProtocol.delete', + index=15, + containing_service=None, + input_type=_DELETEREQUESTPROTO, + output_type=_DELETERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='mkdirs', + full_name='ClientNamenodeProtocol.mkdirs', + index=16, + containing_service=None, + input_type=_MKDIRSREQUESTPROTO, + output_type=_MKDIRSRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='getListing', + full_name='ClientNamenodeProtocol.getListing', + index=17, + containing_service=None, + input_type=_GETLISTINGREQUESTPROTO, + output_type=_GETLISTINGRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='renewLease', + full_name='ClientNamenodeProtocol.renewLease', + index=18, + containing_service=None, + input_type=_RENEWLEASEREQUESTPROTO, + output_type=_RENEWLEASERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='recoverLease', + full_name='ClientNamenodeProtocol.recoverLease', + index=19, + containing_service=None, + input_type=_RECOVERLEASEREQUESTPROTO, + output_type=_RECOVERLEASERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='getFsStats', + full_name='ClientNamenodeProtocol.getFsStats', + index=20, + containing_service=None, + input_type=_GETFSSTATUSREQUESTPROTO, + output_type=_GETFSSTATSRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='getDatanodeReport', + full_name='ClientNamenodeProtocol.getDatanodeReport', + index=21, + containing_service=None, + input_type=_GETDATANODEREPORTREQUESTPROTO, + output_type=_GETDATANODEREPORTRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='getPreferredBlockSize', + full_name='ClientNamenodeProtocol.getPreferredBlockSize', + index=22, + containing_service=None, + input_type=_GETPREFERREDBLOCKSIZEREQUESTPROTO, + output_type=_GETPREFERREDBLOCKSIZERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='setSafeMode', + full_name='ClientNamenodeProtocol.setSafeMode', + index=23, + containing_service=None, + input_type=_SETSAFEMODEREQUESTPROTO, + output_type=_SETSAFEMODERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='saveNamespace', + full_name='ClientNamenodeProtocol.saveNamespace', + index=24, + containing_service=None, + input_type=_SAVENAMESPACEREQUESTPROTO, + output_type=_SAVENAMESPACERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='rollEdits', + full_name='ClientNamenodeProtocol.rollEdits', + index=25, + containing_service=None, + input_type=_ROLLEDITSREQUESTPROTO, + output_type=_ROLLEDITSRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='restoreFailedStorage', + full_name='ClientNamenodeProtocol.restoreFailedStorage', + index=26, + containing_service=None, + input_type=_RESTOREFAILEDSTORAGEREQUESTPROTO, + output_type=_RESTOREFAILEDSTORAGERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='refreshNodes', + full_name='ClientNamenodeProtocol.refreshNodes', + index=27, + containing_service=None, + input_type=_REFRESHNODESREQUESTPROTO, + output_type=_REFRESHNODESRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='finalizeUpgrade', + full_name='ClientNamenodeProtocol.finalizeUpgrade', + index=28, + containing_service=None, + input_type=_FINALIZEUPGRADEREQUESTPROTO, + output_type=_FINALIZEUPGRADERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='distributedUpgradeProgress', + full_name='ClientNamenodeProtocol.distributedUpgradeProgress', + index=29, + containing_service=None, + input_type=_DISTRIBUTEDUPGRADEPROGRESSREQUESTPROTO, + output_type=_DISTRIBUTEDUPGRADEPROGRESSRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='listCorruptFileBlocks', + full_name='ClientNamenodeProtocol.listCorruptFileBlocks', + index=30, + containing_service=None, + input_type=_LISTCORRUPTFILEBLOCKSREQUESTPROTO, + output_type=_LISTCORRUPTFILEBLOCKSRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='metaSave', + full_name='ClientNamenodeProtocol.metaSave', + index=31, + containing_service=None, + input_type=_METASAVEREQUESTPROTO, + output_type=_METASAVERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='getFileInfo', + full_name='ClientNamenodeProtocol.getFileInfo', + index=32, + containing_service=None, + input_type=_GETFILEINFOREQUESTPROTO, + output_type=_GETFILEINFORESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='getFileLinkInfo', + full_name='ClientNamenodeProtocol.getFileLinkInfo', + index=33, + containing_service=None, + input_type=_GETFILELINKINFOREQUESTPROTO, + output_type=_GETFILELINKINFORESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='getContentSummary', + full_name='ClientNamenodeProtocol.getContentSummary', + index=34, + containing_service=None, + input_type=_GETCONTENTSUMMARYREQUESTPROTO, + output_type=_GETCONTENTSUMMARYRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='setQuota', + full_name='ClientNamenodeProtocol.setQuota', + index=35, + containing_service=None, + input_type=_SETQUOTAREQUESTPROTO, + output_type=_SETQUOTARESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='fsync', + full_name='ClientNamenodeProtocol.fsync', + index=36, + containing_service=None, + input_type=_FSYNCREQUESTPROTO, + output_type=_FSYNCRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='setTimes', + full_name='ClientNamenodeProtocol.setTimes', + index=37, + containing_service=None, + input_type=_SETTIMESREQUESTPROTO, + output_type=_SETTIMESRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='createSymlink', + full_name='ClientNamenodeProtocol.createSymlink', + index=38, + containing_service=None, + input_type=_CREATESYMLINKREQUESTPROTO, + output_type=_CREATESYMLINKRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='getLinkTarget', + full_name='ClientNamenodeProtocol.getLinkTarget', + index=39, + containing_service=None, + input_type=_GETLINKTARGETREQUESTPROTO, + output_type=_GETLINKTARGETRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='updateBlockForPipeline', + full_name='ClientNamenodeProtocol.updateBlockForPipeline', + index=40, + containing_service=None, + input_type=_UPDATEBLOCKFORPIPELINEREQUESTPROTO, + output_type=_UPDATEBLOCKFORPIPELINERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='updatePipeline', + full_name='ClientNamenodeProtocol.updatePipeline', + index=41, + containing_service=None, + input_type=_UPDATEPIPELINEREQUESTPROTO, + output_type=_UPDATEPIPELINERESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='getDelegationToken', + full_name='ClientNamenodeProtocol.getDelegationToken', + index=42, + containing_service=None, + input_type=_GETDELEGATIONTOKENREQUESTPROTO, + output_type=_GETDELEGATIONTOKENRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='renewDelegationToken', + full_name='ClientNamenodeProtocol.renewDelegationToken', + index=43, + containing_service=None, + input_type=_RENEWDELEGATIONTOKENREQUESTPROTO, + output_type=_RENEWDELEGATIONTOKENRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='cancelDelegationToken', + full_name='ClientNamenodeProtocol.cancelDelegationToken', + index=44, + containing_service=None, + input_type=_CANCELDELEGATIONTOKENREQUESTPROTO, + output_type=_CANCELDELEGATIONTOKENRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='setBalancerBandwidth', + full_name='ClientNamenodeProtocol.setBalancerBandwidth', + index=45, + containing_service=None, + input_type=_SETBALANCERBANDWIDTHREQUESTPROTO, + output_type=_SETBALANCERBANDWIDTHRESPONSEPROTO, + options=None, + ), + descriptor.MethodDescriptor( + name='getDataEncryptionKey', + full_name='ClientNamenodeProtocol.getDataEncryptionKey', + index=46, + containing_service=None, + input_type=_GETDATAENCRYPTIONKEYREQUESTPROTO, + output_type=_GETDATAENCRYPTIONKEYRESPONSEPROTO, + options=None, + ), +]) + +class ClientNamenodeProtocol(service.Service): + __metaclass__ = service_reflection.GeneratedServiceType + DESCRIPTOR = _CLIENTNAMENODEPROTOCOL +class ClientNamenodeProtocol_Stub(ClientNamenodeProtocol): + __metaclass__ = service_reflection.GeneratedServiceStubType + DESCRIPTOR = _CLIENTNAMENODEPROTOCOL + +# @@protoc_insertion_point(module_scope) diff --git a/spotify/snakebite/protobuf/IpcConnectionContext_pb2.py b/spotify/snakebite/protobuf/IpcConnectionContext_pb2.py new file mode 100644 index 0000000..eb668e5 --- /dev/null +++ b/spotify/snakebite/protobuf/IpcConnectionContext_pb2.py @@ -0,0 +1,104 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! + +from google.protobuf import descriptor +from google.protobuf import message +from google.protobuf import reflection +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + + + +DESCRIPTOR = descriptor.FileDescriptor( + name='IpcConnectionContext.proto', + package='hadoop.common', + serialized_pb='\n\x1aIpcConnectionContext.proto\x12\rhadoop.common\"?\n\x14UserInformationProto\x12\x15\n\reffectiveUser\x18\x01 \x01(\t\x12\x10\n\x08realUser\x18\x02 \x01(\t\"d\n\x19IpcConnectionContextProto\x12\x35\n\x08userInfo\x18\x02 \x01(\x0b\x32#.hadoop.common.UserInformationProto\x12\x10\n\x08protocol\x18\x03 \x01(\tB?\n\x1eorg.apache.hadoop.ipc.protobufB\x1aIpcConnectionContextProtos\xa0\x01\x01') + + + + +_USERINFORMATIONPROTO = descriptor.Descriptor( + name='UserInformationProto', + full_name='hadoop.common.UserInformationProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='effectiveUser', full_name='hadoop.common.UserInformationProto.effectiveUser', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='realUser', full_name='hadoop.common.UserInformationProto.realUser', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=45, + serialized_end=108, +) + + +_IPCCONNECTIONCONTEXTPROTO = descriptor.Descriptor( + name='IpcConnectionContextProto', + full_name='hadoop.common.IpcConnectionContextProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='userInfo', full_name='hadoop.common.IpcConnectionContextProto.userInfo', index=0, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='protocol', full_name='hadoop.common.IpcConnectionContextProto.protocol', index=1, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=110, + serialized_end=210, +) + +_IPCCONNECTIONCONTEXTPROTO.fields_by_name['userInfo'].message_type = _USERINFORMATIONPROTO +DESCRIPTOR.message_types_by_name['UserInformationProto'] = _USERINFORMATIONPROTO +DESCRIPTOR.message_types_by_name['IpcConnectionContextProto'] = _IPCCONNECTIONCONTEXTPROTO + +class UserInformationProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _USERINFORMATIONPROTO + + # @@protoc_insertion_point(class_scope:hadoop.common.UserInformationProto) + +class IpcConnectionContextProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _IPCCONNECTIONCONTEXTPROTO + + # @@protoc_insertion_point(class_scope:hadoop.common.IpcConnectionContextProto) + +# @@protoc_insertion_point(module_scope) diff --git a/spotify/snakebite/protobuf/RpcPayloadHeader_pb2.py b/spotify/snakebite/protobuf/RpcPayloadHeader_pb2.py new file mode 100644 index 0000000..251e8a2 --- /dev/null +++ b/spotify/snakebite/protobuf/RpcPayloadHeader_pb2.py @@ -0,0 +1,207 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! + +from google.protobuf import descriptor +from google.protobuf import message +from google.protobuf import reflection +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + + + +DESCRIPTOR = descriptor.FileDescriptor( + name='RpcPayloadHeader.proto', + package='', + serialized_pb='\n\x16RpcPayloadHeader.proto\"q\n\x15RpcPayloadHeaderProto\x12\x1e\n\x07rpcKind\x18\x01 \x01(\x0e\x32\r.RpcKindProto\x12(\n\x05rpcOp\x18\x02 \x01(\x0e\x32\x19.RpcPayloadOperationProto\x12\x0e\n\x06\x63\x61llId\x18\x03 \x02(\r\"f\n\x16RpcResponseHeaderProto\x12\x0e\n\x06\x63\x61llId\x18\x01 \x02(\r\x12\x1f\n\x06status\x18\x02 \x02(\x0e\x32\x0f.RpcStatusProto\x12\x1b\n\x13serverIpcVersionNum\x18\x03 \x01(\r*J\n\x0cRpcKindProto\x12\x0f\n\x0bRPC_BUILTIN\x10\x00\x12\x10\n\x0cRPC_WRITABLE\x10\x01\x12\x17\n\x13RPC_PROTOCOL_BUFFER\x10\x02*i\n\x18RpcPayloadOperationProto\x12\x15\n\x11RPC_FINAL_PAYLOAD\x10\x00\x12\x1c\n\x18RPC_CONTINUATION_PAYLOAD\x10\x01\x12\x18\n\x14RPC_CLOSE_CONNECTION\x10\x02*3\n\x0eRpcStatusProto\x12\x0b\n\x07SUCCESS\x10\x00\x12\t\n\x05\x45RROR\x10\x01\x12\t\n\x05\x46\x41TAL\x10\x02\x42;\n\x1eorg.apache.hadoop.ipc.protobufB\x16RpcPayloadHeaderProtos\xa0\x01\x01') + +_RPCKINDPROTO = descriptor.EnumDescriptor( + name='RpcKindProto', + full_name='RpcKindProto', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='RPC_BUILTIN', index=0, number=0, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='RPC_WRITABLE', index=1, number=1, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='RPC_PROTOCOL_BUFFER', index=2, number=2, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=245, + serialized_end=319, +) + + +_RPCPAYLOADOPERATIONPROTO = descriptor.EnumDescriptor( + name='RpcPayloadOperationProto', + full_name='RpcPayloadOperationProto', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='RPC_FINAL_PAYLOAD', index=0, number=0, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='RPC_CONTINUATION_PAYLOAD', index=1, number=1, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='RPC_CLOSE_CONNECTION', index=2, number=2, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=321, + serialized_end=426, +) + + +_RPCSTATUSPROTO = descriptor.EnumDescriptor( + name='RpcStatusProto', + full_name='RpcStatusProto', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='SUCCESS', index=0, number=0, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='ERROR', index=1, number=1, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='FATAL', index=2, number=2, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=428, + serialized_end=479, +) + + +RPC_BUILTIN = 0 +RPC_WRITABLE = 1 +RPC_PROTOCOL_BUFFER = 2 +RPC_FINAL_PAYLOAD = 0 +RPC_CONTINUATION_PAYLOAD = 1 +RPC_CLOSE_CONNECTION = 2 +SUCCESS = 0 +ERROR = 1 +FATAL = 2 + + + +_RPCPAYLOADHEADERPROTO = descriptor.Descriptor( + name='RpcPayloadHeaderProto', + full_name='RpcPayloadHeaderProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='rpcKind', full_name='RpcPayloadHeaderProto.rpcKind', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='rpcOp', full_name='RpcPayloadHeaderProto.rpcOp', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='callId', full_name='RpcPayloadHeaderProto.callId', index=2, + number=3, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=26, + serialized_end=139, +) + + +_RPCRESPONSEHEADERPROTO = descriptor.Descriptor( + name='RpcResponseHeaderProto', + full_name='RpcResponseHeaderProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='callId', full_name='RpcResponseHeaderProto.callId', index=0, + number=1, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='status', full_name='RpcResponseHeaderProto.status', index=1, + number=2, type=14, cpp_type=8, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='serverIpcVersionNum', full_name='RpcResponseHeaderProto.serverIpcVersionNum', index=2, + number=3, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=141, + serialized_end=243, +) + +_RPCPAYLOADHEADERPROTO.fields_by_name['rpcKind'].enum_type = _RPCKINDPROTO +_RPCPAYLOADHEADERPROTO.fields_by_name['rpcOp'].enum_type = _RPCPAYLOADOPERATIONPROTO +_RPCRESPONSEHEADERPROTO.fields_by_name['status'].enum_type = _RPCSTATUSPROTO +DESCRIPTOR.message_types_by_name['RpcPayloadHeaderProto'] = _RPCPAYLOADHEADERPROTO +DESCRIPTOR.message_types_by_name['RpcResponseHeaderProto'] = _RPCRESPONSEHEADERPROTO + +class RpcPayloadHeaderProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RPCPAYLOADHEADERPROTO + + # @@protoc_insertion_point(class_scope:RpcPayloadHeaderProto) + +class RpcResponseHeaderProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RPCRESPONSEHEADERPROTO + + # @@protoc_insertion_point(class_scope:RpcResponseHeaderProto) + +# @@protoc_insertion_point(module_scope) diff --git a/spotify/snakebite/protobuf/__init__.py b/spotify/snakebite/protobuf/__init__.py new file mode 100644 index 0000000..5c9a5ab --- /dev/null +++ b/spotify/snakebite/protobuf/__init__.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. diff --git a/spotify/snakebite/protobuf/hadoop_rpc_pb2.py b/spotify/snakebite/protobuf/hadoop_rpc_pb2.py new file mode 100644 index 0000000..18b5d81 --- /dev/null +++ b/spotify/snakebite/protobuf/hadoop_rpc_pb2.py @@ -0,0 +1,75 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! + +from google.protobuf import descriptor +from google.protobuf import message +from google.protobuf import reflection +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + + + +DESCRIPTOR = descriptor.FileDescriptor( + name='hadoop_rpc.proto', + package='', + serialized_pb='\n\x10hadoop_rpc.proto\"\x7f\n\x15HadoopRpcRequestProto\x12\x12\n\nmethodName\x18\x01 \x02(\t\x12\x0f\n\x07request\x18\x02 \x01(\x0c\x12\"\n\x1a\x64\x65\x63laringClassProtocolName\x18\x03 \x02(\t\x12\x1d\n\x15\x63lientProtocolVersion\x18\x04 \x02(\x04\x42\x34\n\x1eorg.apache.hadoop.ipc.protobufB\x0fHadoopRpcProtos\xa0\x01\x01') + + + + +_HADOOPRPCREQUESTPROTO = descriptor.Descriptor( + name='HadoopRpcRequestProto', + full_name='HadoopRpcRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='methodName', full_name='HadoopRpcRequestProto.methodName', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='request', full_name='HadoopRpcRequestProto.request', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value="", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='declaringClassProtocolName', full_name='HadoopRpcRequestProto.declaringClassProtocolName', index=2, + number=3, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='clientProtocolVersion', full_name='HadoopRpcRequestProto.clientProtocolVersion', index=3, + number=4, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=20, + serialized_end=147, +) + +DESCRIPTOR.message_types_by_name['HadoopRpcRequestProto'] = _HADOOPRPCREQUESTPROTO + +class HadoopRpcRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _HADOOPRPCREQUESTPROTO + + # @@protoc_insertion_point(class_scope:HadoopRpcRequestProto) + +# @@protoc_insertion_point(module_scope) diff --git a/spotify/snakebite/protobuf/hdfs_pb2.py b/spotify/snakebite/protobuf/hdfs_pb2.py new file mode 100644 index 0000000..7980567 --- /dev/null +++ b/spotify/snakebite/protobuf/hdfs_pb2.py @@ -0,0 +1,1905 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! + +from google.protobuf import descriptor +from google.protobuf import message +from google.protobuf import reflection +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + + + +DESCRIPTOR = descriptor.FileDescriptor( + name='hdfs.proto', + package='', + serialized_pb='\n\nhdfs.proto\"c\n\x12\x45xtendedBlockProto\x12\x0e\n\x06poolId\x18\x01 \x02(\t\x12\x0f\n\x07\x62lockId\x18\x02 \x02(\x04\x12\x17\n\x0fgenerationStamp\x18\x03 \x02(\x04\x12\x13\n\x08numBytes\x18\x04 \x01(\x04:\x01\x30\"`\n\x19\x42lockTokenIdentifierProto\x12\x12\n\nidentifier\x18\x01 \x02(\x0c\x12\x10\n\x08password\x18\x02 \x02(\x0c\x12\x0c\n\x04kind\x18\x03 \x02(\t\x12\x0f\n\x07service\x18\x04 \x02(\t\"{\n\x0f\x44\x61tanodeIDProto\x12\x0e\n\x06ipAddr\x18\x01 \x02(\t\x12\x10\n\x08hostName\x18\x02 \x02(\t\x12\x11\n\tstorageID\x18\x03 \x02(\t\x12\x10\n\x08xferPort\x18\x04 \x02(\r\x12\x10\n\x08infoPort\x18\x05 \x02(\r\x12\x0f\n\x07ipcPort\x18\x06 \x02(\r\";\n\x12\x44\x61tanodeInfosProto\x12%\n\tdatanodes\x18\x01 \x03(\x0b\x32\x12.DatanodeInfoProto\"\xd2\x02\n\x11\x44\x61tanodeInfoProto\x12\x1c\n\x02id\x18\x01 \x02(\x0b\x32\x10.DatanodeIDProto\x12\x13\n\x08\x63\x61pacity\x18\x02 \x01(\x04:\x01\x30\x12\x12\n\x07\x64\x66sUsed\x18\x03 \x01(\x04:\x01\x30\x12\x14\n\tremaining\x18\x04 \x01(\x04:\x01\x30\x12\x18\n\rblockPoolUsed\x18\x05 \x01(\x04:\x01\x30\x12\x15\n\nlastUpdate\x18\x06 \x01(\x04:\x01\x30\x12\x17\n\x0cxceiverCount\x18\x07 \x01(\r:\x01\x30\x12\x10\n\x08location\x18\x08 \x01(\t\x12\x39\n\nadminState\x18\n \x01(\x0e\x32\x1d.DatanodeInfoProto.AdminState:\x06NORMAL\"I\n\nAdminState\x12\n\n\x06NORMAL\x10\x00\x12\x1b\n\x17\x44\x45\x43OMMISSION_INPROGRESS\x10\x01\x12\x12\n\x0e\x44\x45\x43OMMISSIONED\x10\x02\"\x8a\x01\n\x13\x43ontentSummaryProto\x12\x0e\n\x06length\x18\x01 \x02(\x04\x12\x11\n\tfileCount\x18\x02 \x02(\x04\x12\x16\n\x0e\x64irectoryCount\x18\x03 \x02(\x04\x12\r\n\x05quota\x18\x04 \x02(\x04\x12\x15\n\rspaceConsumed\x18\x05 \x02(\x04\x12\x12\n\nspaceQuota\x18\x06 \x02(\x04\"7\n\x16\x43orruptFileBlocksProto\x12\r\n\x05\x66iles\x18\x01 \x03(\t\x12\x0e\n\x06\x63ookie\x18\x02 \x02(\t\"!\n\x11\x46sPermissionProto\x12\x0c\n\x04perm\x18\x01 \x02(\r\"\xa6\x01\n\x11LocatedBlockProto\x12\x1e\n\x01\x62\x18\x01 \x02(\x0b\x32\x13.ExtendedBlockProto\x12\x0e\n\x06offset\x18\x02 \x02(\x04\x12 \n\x04locs\x18\x03 \x03(\x0b\x32\x12.DatanodeInfoProto\x12\x0f\n\x07\x63orrupt\x18\x04 \x02(\x08\x12.\n\nblockToken\x18\x05 \x02(\x0b\x32\x1a.BlockTokenIdentifierProto\"\x93\x01\n\x16\x44\x61taEncryptionKeyProto\x12\r\n\x05keyId\x18\x01 \x02(\r\x12\x13\n\x0b\x62lockPoolId\x18\x02 \x02(\t\x12\r\n\x05nonce\x18\x03 \x02(\x0c\x12\x15\n\rencryptionKey\x18\x04 \x02(\x0c\x12\x12\n\nexpiryDate\x18\x05 \x02(\x04\x12\x1b\n\x13\x65ncryptionAlgorithm\x18\x06 \x01(\t\"\xab\x01\n\x12LocatedBlocksProto\x12\x12\n\nfileLength\x18\x01 \x02(\x04\x12\"\n\x06\x62locks\x18\x02 \x03(\x0b\x32\x12.LocatedBlockProto\x12\x19\n\x11underConstruction\x18\x03 \x02(\x08\x12%\n\tlastBlock\x18\x04 \x01(\x0b\x32\x12.LocatedBlockProto\x12\x1b\n\x13isLastBlockComplete\x18\x05 \x02(\x08\"\xfc\x02\n\x13HdfsFileStatusProto\x12/\n\x08\x66ileType\x18\x01 \x02(\x0e\x32\x1d.HdfsFileStatusProto.FileType\x12\x0c\n\x04path\x18\x02 \x02(\x0c\x12\x0e\n\x06length\x18\x03 \x02(\x04\x12&\n\npermission\x18\x04 \x02(\x0b\x32\x12.FsPermissionProto\x12\r\n\x05owner\x18\x05 \x02(\t\x12\r\n\x05group\x18\x06 \x02(\t\x12\x19\n\x11modification_time\x18\x07 \x02(\x04\x12\x13\n\x0b\x61\x63\x63\x65ss_time\x18\x08 \x02(\x04\x12\x0f\n\x07symlink\x18\t \x01(\x0c\x12\x1c\n\x11\x62lock_replication\x18\n \x01(\r:\x01\x30\x12\x14\n\tblocksize\x18\x0b \x01(\x04:\x01\x30\x12&\n\tlocations\x18\x0c \x01(\x0b\x32\x13.LocatedBlocksProto\"3\n\x08\x46ileType\x12\n\n\x06IS_DIR\x10\x01\x12\x0b\n\x07IS_FILE\x10\x02\x12\x0e\n\nIS_SYMLINK\x10\x03\"\x82\x02\n\x15\x46sServerDefaultsProto\x12\x11\n\tblockSize\x18\x01 \x02(\x04\x12\x18\n\x10\x62ytesPerChecksum\x18\x02 \x02(\r\x12\x17\n\x0fwritePacketSize\x18\x03 \x02(\r\x12\x13\n\x0breplication\x18\x04 \x02(\r\x12\x16\n\x0e\x66ileBufferSize\x18\x05 \x02(\r\x12\"\n\x13\x65ncryptDataTransfer\x18\x06 \x01(\x08:\x05\x66\x61lse\x12\x18\n\rtrashInterval\x18\x07 \x01(\x04:\x01\x30\x12\x38\n\x0c\x63hecksumType\x18\x08 \x01(\x0e\x32\x12.ChecksumTypeProto:\x0e\x43HECKSUM_CRC32\"_\n\x15\x44irectoryListingProto\x12,\n\x0epartialListing\x18\x01 \x03(\x0b\x32\x14.HdfsFileStatusProto\x12\x18\n\x10remainingEntries\x18\x02 \x02(\r\"U\n\x18UpgradeStatusReportProto\x12\x0f\n\x07version\x18\x01 \x02(\r\x12\x15\n\rupgradeStatus\x18\x02 \x02(\r\x12\x11\n\tfinalized\x18\x03 \x02(\x08\"_\n\x10StorageInfoProto\x12\x15\n\rlayoutVersion\x18\x01 \x02(\r\x12\x12\n\nnamespceID\x18\x02 \x02(\r\x12\x11\n\tclusterID\x18\x03 \x02(\t\x12\r\n\x05\x63Time\x18\x04 \x02(\x04\"\xf1\x01\n\x19NamenodeRegistrationProto\x12\x12\n\nrpcAddress\x18\x01 \x02(\t\x12\x13\n\x0bhttpAddress\x18\x02 \x02(\t\x12&\n\x0bstorageInfo\x18\x03 \x02(\x0b\x32\x11.StorageInfoProto\x12\x44\n\x04role\x18\x04 \x01(\x0e\x32,.NamenodeRegistrationProto.NamenodeRoleProto:\x08NAMENODE\"=\n\x11NamenodeRoleProto\x12\x0c\n\x08NAMENODE\x10\x01\x12\n\n\x06\x42\x41\x43KUP\x10\x02\x12\x0e\n\nCHECKPOINT\x10\x03\"\x91\x01\n\x18\x43heckpointSignatureProto\x12\x13\n\x0b\x62lockPoolId\x18\x01 \x02(\t\x12 \n\x18mostRecentCheckpointTxId\x18\x02 \x02(\x04\x12\x16\n\x0e\x63urSegmentTxId\x18\x03 \x02(\x04\x12&\n\x0bstorageInfo\x18\x04 \x02(\x0b\x32\x11.StorageInfoProto\"\xb4\x01\n\x14NamenodeCommandProto\x12\x0e\n\x06\x61\x63tion\x18\x01 \x02(\r\x12(\n\x04type\x18\x02 \x02(\x0e\x32\x1a.NamenodeCommandProto.Type\x12.\n\rcheckpointCmd\x18\x03 \x01(\x0b\x32\x17.CheckpointCommandProto\"2\n\x04Type\x12\x13\n\x0fNamenodeCommand\x10\x00\x12\x15\n\x11\x43heckPointCommand\x10\x01\"a\n\x16\x43heckpointCommandProto\x12,\n\tsignature\x18\x01 \x02(\x0b\x32\x19.CheckpointSignatureProto\x12\x19\n\x11needToReturnImage\x18\x02 \x02(\x08\"D\n\nBlockProto\x12\x0f\n\x07\x62lockId\x18\x01 \x02(\x04\x12\x10\n\x08genStamp\x18\x02 \x02(\x04\x12\x13\n\x08numBytes\x18\x03 \x01(\x04:\x01\x30\"I\n\x17\x42lockWithLocationsProto\x12\x1a\n\x05\x62lock\x18\x01 \x02(\x0b\x32\x0b.BlockProto\x12\x12\n\nstorageIDs\x18\x02 \x03(\t\"D\n\x18\x42locksWithLocationsProto\x12(\n\x06\x62locks\x18\x01 \x03(\x0b\x32\x18.BlockWithLocationsProto\"U\n\x12RemoteEditLogProto\x12\x11\n\tstartTxId\x18\x01 \x02(\x04\x12\x0f\n\x07\x65ndTxId\x18\x02 \x02(\x04\x12\x1b\n\x0cisInProgress\x18\x03 \x01(\x08:\x05\x66\x61lse\"?\n\x1aRemoteEditLogManifestProto\x12!\n\x04logs\x18\x01 \x03(\x0b\x32\x13.RemoteEditLogProto\"\x9c\x01\n\x12NamespaceInfoProto\x12\x14\n\x0c\x62uildVersion\x18\x01 \x02(\t\x12\x1a\n\x12\x64istUpgradeVersion\x18\x02 \x02(\r\x12\x13\n\x0b\x62lockPoolID\x18\x03 \x02(\t\x12&\n\x0bstorageInfo\x18\x04 \x02(\x0b\x32\x11.StorageInfoProto\x12\x17\n\x0fsoftwareVersion\x18\x05 \x02(\t\"D\n\rBlockKeyProto\x12\r\n\x05keyId\x18\x01 \x02(\r\x12\x12\n\nexpiryDate\x18\x02 \x02(\x04\x12\x10\n\x08keyBytes\x18\x03 \x01(\x0c\"\xac\x01\n\x16\x45xportedBlockKeysProto\x12\x1b\n\x13isBlockTokenEnabled\x18\x01 \x02(\x08\x12\x19\n\x11keyUpdateInterval\x18\x02 \x02(\x04\x12\x15\n\rtokenLifeTime\x18\x03 \x02(\x04\x12\"\n\ncurrentKey\x18\x04 \x02(\x0b\x32\x0e.BlockKeyProto\x12\x1f\n\x07\x61llKeys\x18\x05 \x03(\x0b\x32\x0e.BlockKeyProto\"N\n\x14RecoveringBlockProto\x12\x13\n\x0bnewGenStamp\x18\x01 \x02(\x04\x12!\n\x05\x62lock\x18\x02 \x02(\x0b\x32\x12.LocatedBlockProto\"\x15\n\x13VersionRequestProto\"9\n\x14VersionResponseProto\x12!\n\x04info\x18\x01 \x02(\x0b\x32\x13.NamespaceInfoProto*O\n\x11\x43hecksumTypeProto\x12\x11\n\rCHECKSUM_NULL\x10\x00\x12\x12\n\x0e\x43HECKSUM_CRC32\x10\x01\x12\x13\n\x0f\x43HECKSUM_CRC32C\x10\x02*L\n\x11ReplicaStateProto\x12\r\n\tFINALIZED\x10\x00\x12\x07\n\x03RBW\x10\x01\x12\x07\n\x03RWR\x10\x02\x12\x07\n\x03RUR\x10\x03\x12\r\n\tTEMPORARY\x10\x04\x42\x39\n%org.apache.hadoop.hdfs.protocol.protoB\nHdfsProtos\x90\x01\x01\xa0\x01\x01') + +_CHECKSUMTYPEPROTO = descriptor.EnumDescriptor( + name='ChecksumTypeProto', + full_name='ChecksumTypeProto', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='CHECKSUM_NULL', index=0, number=0, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='CHECKSUM_CRC32', index=1, number=1, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='CHECKSUM_CRC32C', index=2, number=2, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=3998, + serialized_end=4077, +) + + +_REPLICASTATEPROTO = descriptor.EnumDescriptor( + name='ReplicaStateProto', + full_name='ReplicaStateProto', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='FINALIZED', index=0, number=0, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='RBW', index=1, number=1, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='RWR', index=2, number=2, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='RUR', index=3, number=3, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='TEMPORARY', index=4, number=4, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=4079, + serialized_end=4155, +) + + +CHECKSUM_NULL = 0 +CHECKSUM_CRC32 = 1 +CHECKSUM_CRC32C = 2 +FINALIZED = 0 +RBW = 1 +RWR = 2 +RUR = 3 +TEMPORARY = 4 + + +_DATANODEINFOPROTO_ADMINSTATE = descriptor.EnumDescriptor( + name='AdminState', + full_name='DatanodeInfoProto.AdminState', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='NORMAL', index=0, number=0, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='DECOMMISSION_INPROGRESS', index=1, number=1, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='DECOMMISSIONED', index=2, number=2, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=665, + serialized_end=738, +) + +_HDFSFILESTATUSPROTO_FILETYPE = descriptor.EnumDescriptor( + name='FileType', + full_name='HdfsFileStatusProto.FileType', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='IS_DIR', index=0, number=1, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='IS_FILE', index=1, number=2, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='IS_SYMLINK', index=2, number=3, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=1796, + serialized_end=1847, +) + +_NAMENODEREGISTRATIONPROTO_NAMENODEROLEPROTO = descriptor.EnumDescriptor( + name='NamenodeRoleProto', + full_name='NamenodeRegistrationProto.NamenodeRoleProto', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='NAMENODE', index=0, number=1, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='BACKUP', index=1, number=2, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='CHECKPOINT', index=2, number=3, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=2572, + serialized_end=2633, +) + +_NAMENODECOMMANDPROTO_TYPE = descriptor.EnumDescriptor( + name='Type', + full_name='NamenodeCommandProto.Type', + filename=None, + file=DESCRIPTOR, + values=[ + descriptor.EnumValueDescriptor( + name='NamenodeCommand', index=0, number=0, + options=None, + type=None), + descriptor.EnumValueDescriptor( + name='CheckPointCommand', index=1, number=1, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=2914, + serialized_end=2964, +) + + +_EXTENDEDBLOCKPROTO = descriptor.Descriptor( + name='ExtendedBlockProto', + full_name='ExtendedBlockProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='poolId', full_name='ExtendedBlockProto.poolId', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='blockId', full_name='ExtendedBlockProto.blockId', index=1, + number=2, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='generationStamp', full_name='ExtendedBlockProto.generationStamp', index=2, + number=3, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='numBytes', full_name='ExtendedBlockProto.numBytes', index=3, + number=4, type=4, cpp_type=4, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=14, + serialized_end=113, +) + + +_BLOCKTOKENIDENTIFIERPROTO = descriptor.Descriptor( + name='BlockTokenIdentifierProto', + full_name='BlockTokenIdentifierProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='identifier', full_name='BlockTokenIdentifierProto.identifier', index=0, + number=1, type=12, cpp_type=9, label=2, + has_default_value=False, default_value="", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='password', full_name='BlockTokenIdentifierProto.password', index=1, + number=2, type=12, cpp_type=9, label=2, + has_default_value=False, default_value="", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='kind', full_name='BlockTokenIdentifierProto.kind', index=2, + number=3, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='service', full_name='BlockTokenIdentifierProto.service', index=3, + number=4, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=115, + serialized_end=211, +) + + +_DATANODEIDPROTO = descriptor.Descriptor( + name='DatanodeIDProto', + full_name='DatanodeIDProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='ipAddr', full_name='DatanodeIDProto.ipAddr', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='hostName', full_name='DatanodeIDProto.hostName', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='storageID', full_name='DatanodeIDProto.storageID', index=2, + number=3, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='xferPort', full_name='DatanodeIDProto.xferPort', index=3, + number=4, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='infoPort', full_name='DatanodeIDProto.infoPort', index=4, + number=5, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='ipcPort', full_name='DatanodeIDProto.ipcPort', index=5, + number=6, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=213, + serialized_end=336, +) + + +_DATANODEINFOSPROTO = descriptor.Descriptor( + name='DatanodeInfosProto', + full_name='DatanodeInfosProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='datanodes', full_name='DatanodeInfosProto.datanodes', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=338, + serialized_end=397, +) + + +_DATANODEINFOPROTO = descriptor.Descriptor( + name='DatanodeInfoProto', + full_name='DatanodeInfoProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='id', full_name='DatanodeInfoProto.id', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='capacity', full_name='DatanodeInfoProto.capacity', index=1, + number=2, type=4, cpp_type=4, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='dfsUsed', full_name='DatanodeInfoProto.dfsUsed', index=2, + number=3, type=4, cpp_type=4, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='remaining', full_name='DatanodeInfoProto.remaining', index=3, + number=4, type=4, cpp_type=4, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='blockPoolUsed', full_name='DatanodeInfoProto.blockPoolUsed', index=4, + number=5, type=4, cpp_type=4, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='lastUpdate', full_name='DatanodeInfoProto.lastUpdate', index=5, + number=6, type=4, cpp_type=4, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='xceiverCount', full_name='DatanodeInfoProto.xceiverCount', index=6, + number=7, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='location', full_name='DatanodeInfoProto.location', index=7, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='adminState', full_name='DatanodeInfoProto.adminState', index=8, + number=10, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DATANODEINFOPROTO_ADMINSTATE, + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=400, + serialized_end=738, +) + + +_CONTENTSUMMARYPROTO = descriptor.Descriptor( + name='ContentSummaryProto', + full_name='ContentSummaryProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='length', full_name='ContentSummaryProto.length', index=0, + number=1, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='fileCount', full_name='ContentSummaryProto.fileCount', index=1, + number=2, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='directoryCount', full_name='ContentSummaryProto.directoryCount', index=2, + number=3, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='quota', full_name='ContentSummaryProto.quota', index=3, + number=4, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='spaceConsumed', full_name='ContentSummaryProto.spaceConsumed', index=4, + number=5, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='spaceQuota', full_name='ContentSummaryProto.spaceQuota', index=5, + number=6, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=741, + serialized_end=879, +) + + +_CORRUPTFILEBLOCKSPROTO = descriptor.Descriptor( + name='CorruptFileBlocksProto', + full_name='CorruptFileBlocksProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='files', full_name='CorruptFileBlocksProto.files', index=0, + number=1, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='cookie', full_name='CorruptFileBlocksProto.cookie', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=881, + serialized_end=936, +) + + +_FSPERMISSIONPROTO = descriptor.Descriptor( + name='FsPermissionProto', + full_name='FsPermissionProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='perm', full_name='FsPermissionProto.perm', index=0, + number=1, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=938, + serialized_end=971, +) + + +_LOCATEDBLOCKPROTO = descriptor.Descriptor( + name='LocatedBlockProto', + full_name='LocatedBlockProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='b', full_name='LocatedBlockProto.b', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='offset', full_name='LocatedBlockProto.offset', index=1, + number=2, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='locs', full_name='LocatedBlockProto.locs', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='corrupt', full_name='LocatedBlockProto.corrupt', index=3, + number=4, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='blockToken', full_name='LocatedBlockProto.blockToken', index=4, + number=5, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=974, + serialized_end=1140, +) + + +_DATAENCRYPTIONKEYPROTO = descriptor.Descriptor( + name='DataEncryptionKeyProto', + full_name='DataEncryptionKeyProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='keyId', full_name='DataEncryptionKeyProto.keyId', index=0, + number=1, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='blockPoolId', full_name='DataEncryptionKeyProto.blockPoolId', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='nonce', full_name='DataEncryptionKeyProto.nonce', index=2, + number=3, type=12, cpp_type=9, label=2, + has_default_value=False, default_value="", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='encryptionKey', full_name='DataEncryptionKeyProto.encryptionKey', index=3, + number=4, type=12, cpp_type=9, label=2, + has_default_value=False, default_value="", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='expiryDate', full_name='DataEncryptionKeyProto.expiryDate', index=4, + number=5, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='encryptionAlgorithm', full_name='DataEncryptionKeyProto.encryptionAlgorithm', index=5, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1143, + serialized_end=1290, +) + + +_LOCATEDBLOCKSPROTO = descriptor.Descriptor( + name='LocatedBlocksProto', + full_name='LocatedBlocksProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='fileLength', full_name='LocatedBlocksProto.fileLength', index=0, + number=1, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='blocks', full_name='LocatedBlocksProto.blocks', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='underConstruction', full_name='LocatedBlocksProto.underConstruction', index=2, + number=3, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='lastBlock', full_name='LocatedBlocksProto.lastBlock', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='isLastBlockComplete', full_name='LocatedBlocksProto.isLastBlockComplete', index=4, + number=5, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1293, + serialized_end=1464, +) + + +_HDFSFILESTATUSPROTO = descriptor.Descriptor( + name='HdfsFileStatusProto', + full_name='HdfsFileStatusProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='fileType', full_name='HdfsFileStatusProto.fileType', index=0, + number=1, type=14, cpp_type=8, label=2, + has_default_value=False, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='path', full_name='HdfsFileStatusProto.path', index=1, + number=2, type=12, cpp_type=9, label=2, + has_default_value=False, default_value="", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='length', full_name='HdfsFileStatusProto.length', index=2, + number=3, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='permission', full_name='HdfsFileStatusProto.permission', index=3, + number=4, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='owner', full_name='HdfsFileStatusProto.owner', index=4, + number=5, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='group', full_name='HdfsFileStatusProto.group', index=5, + number=6, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='modification_time', full_name='HdfsFileStatusProto.modification_time', index=6, + number=7, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='access_time', full_name='HdfsFileStatusProto.access_time', index=7, + number=8, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='symlink', full_name='HdfsFileStatusProto.symlink', index=8, + number=9, type=12, cpp_type=9, label=1, + has_default_value=False, default_value="", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='block_replication', full_name='HdfsFileStatusProto.block_replication', index=9, + number=10, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='blocksize', full_name='HdfsFileStatusProto.blocksize', index=10, + number=11, type=4, cpp_type=4, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='locations', full_name='HdfsFileStatusProto.locations', index=11, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _HDFSFILESTATUSPROTO_FILETYPE, + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1467, + serialized_end=1847, +) + + +_FSSERVERDEFAULTSPROTO = descriptor.Descriptor( + name='FsServerDefaultsProto', + full_name='FsServerDefaultsProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='blockSize', full_name='FsServerDefaultsProto.blockSize', index=0, + number=1, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='bytesPerChecksum', full_name='FsServerDefaultsProto.bytesPerChecksum', index=1, + number=2, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='writePacketSize', full_name='FsServerDefaultsProto.writePacketSize', index=2, + number=3, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='replication', full_name='FsServerDefaultsProto.replication', index=3, + number=4, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='fileBufferSize', full_name='FsServerDefaultsProto.fileBufferSize', index=4, + number=5, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='encryptDataTransfer', full_name='FsServerDefaultsProto.encryptDataTransfer', index=5, + number=6, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='trashInterval', full_name='FsServerDefaultsProto.trashInterval', index=6, + number=7, type=4, cpp_type=4, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='checksumType', full_name='FsServerDefaultsProto.checksumType', index=7, + number=8, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=1850, + serialized_end=2108, +) + + +_DIRECTORYLISTINGPROTO = descriptor.Descriptor( + name='DirectoryListingProto', + full_name='DirectoryListingProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='partialListing', full_name='DirectoryListingProto.partialListing', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='remainingEntries', full_name='DirectoryListingProto.remainingEntries', index=1, + number=2, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2110, + serialized_end=2205, +) + + +_UPGRADESTATUSREPORTPROTO = descriptor.Descriptor( + name='UpgradeStatusReportProto', + full_name='UpgradeStatusReportProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='version', full_name='UpgradeStatusReportProto.version', index=0, + number=1, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='upgradeStatus', full_name='UpgradeStatusReportProto.upgradeStatus', index=1, + number=2, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='finalized', full_name='UpgradeStatusReportProto.finalized', index=2, + number=3, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2207, + serialized_end=2292, +) + + +_STORAGEINFOPROTO = descriptor.Descriptor( + name='StorageInfoProto', + full_name='StorageInfoProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='layoutVersion', full_name='StorageInfoProto.layoutVersion', index=0, + number=1, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='namespceID', full_name='StorageInfoProto.namespceID', index=1, + number=2, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='clusterID', full_name='StorageInfoProto.clusterID', index=2, + number=3, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='cTime', full_name='StorageInfoProto.cTime', index=3, + number=4, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2294, + serialized_end=2389, +) + + +_NAMENODEREGISTRATIONPROTO = descriptor.Descriptor( + name='NamenodeRegistrationProto', + full_name='NamenodeRegistrationProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='rpcAddress', full_name='NamenodeRegistrationProto.rpcAddress', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='httpAddress', full_name='NamenodeRegistrationProto.httpAddress', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='storageInfo', full_name='NamenodeRegistrationProto.storageInfo', index=2, + number=3, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='role', full_name='NamenodeRegistrationProto.role', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _NAMENODEREGISTRATIONPROTO_NAMENODEROLEPROTO, + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2392, + serialized_end=2633, +) + + +_CHECKPOINTSIGNATUREPROTO = descriptor.Descriptor( + name='CheckpointSignatureProto', + full_name='CheckpointSignatureProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='blockPoolId', full_name='CheckpointSignatureProto.blockPoolId', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='mostRecentCheckpointTxId', full_name='CheckpointSignatureProto.mostRecentCheckpointTxId', index=1, + number=2, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='curSegmentTxId', full_name='CheckpointSignatureProto.curSegmentTxId', index=2, + number=3, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='storageInfo', full_name='CheckpointSignatureProto.storageInfo', index=3, + number=4, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2636, + serialized_end=2781, +) + + +_NAMENODECOMMANDPROTO = descriptor.Descriptor( + name='NamenodeCommandProto', + full_name='NamenodeCommandProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='action', full_name='NamenodeCommandProto.action', index=0, + number=1, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='type', full_name='NamenodeCommandProto.type', index=1, + number=2, type=14, cpp_type=8, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='checkpointCmd', full_name='NamenodeCommandProto.checkpointCmd', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _NAMENODECOMMANDPROTO_TYPE, + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2784, + serialized_end=2964, +) + + +_CHECKPOINTCOMMANDPROTO = descriptor.Descriptor( + name='CheckpointCommandProto', + full_name='CheckpointCommandProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='signature', full_name='CheckpointCommandProto.signature', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='needToReturnImage', full_name='CheckpointCommandProto.needToReturnImage', index=1, + number=2, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=2966, + serialized_end=3063, +) + + +_BLOCKPROTO = descriptor.Descriptor( + name='BlockProto', + full_name='BlockProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='blockId', full_name='BlockProto.blockId', index=0, + number=1, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='genStamp', full_name='BlockProto.genStamp', index=1, + number=2, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='numBytes', full_name='BlockProto.numBytes', index=2, + number=3, type=4, cpp_type=4, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3065, + serialized_end=3133, +) + + +_BLOCKWITHLOCATIONSPROTO = descriptor.Descriptor( + name='BlockWithLocationsProto', + full_name='BlockWithLocationsProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='block', full_name='BlockWithLocationsProto.block', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='storageIDs', full_name='BlockWithLocationsProto.storageIDs', index=1, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3135, + serialized_end=3208, +) + + +_BLOCKSWITHLOCATIONSPROTO = descriptor.Descriptor( + name='BlocksWithLocationsProto', + full_name='BlocksWithLocationsProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='blocks', full_name='BlocksWithLocationsProto.blocks', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3210, + serialized_end=3278, +) + + +_REMOTEEDITLOGPROTO = descriptor.Descriptor( + name='RemoteEditLogProto', + full_name='RemoteEditLogProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='startTxId', full_name='RemoteEditLogProto.startTxId', index=0, + number=1, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='endTxId', full_name='RemoteEditLogProto.endTxId', index=1, + number=2, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='isInProgress', full_name='RemoteEditLogProto.isInProgress', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3280, + serialized_end=3365, +) + + +_REMOTEEDITLOGMANIFESTPROTO = descriptor.Descriptor( + name='RemoteEditLogManifestProto', + full_name='RemoteEditLogManifestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='logs', full_name='RemoteEditLogManifestProto.logs', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3367, + serialized_end=3430, +) + + +_NAMESPACEINFOPROTO = descriptor.Descriptor( + name='NamespaceInfoProto', + full_name='NamespaceInfoProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='buildVersion', full_name='NamespaceInfoProto.buildVersion', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='distUpgradeVersion', full_name='NamespaceInfoProto.distUpgradeVersion', index=1, + number=2, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='blockPoolID', full_name='NamespaceInfoProto.blockPoolID', index=2, + number=3, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='storageInfo', full_name='NamespaceInfoProto.storageInfo', index=3, + number=4, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='softwareVersion', full_name='NamespaceInfoProto.softwareVersion', index=4, + number=5, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=unicode("", "utf-8"), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3433, + serialized_end=3589, +) + + +_BLOCKKEYPROTO = descriptor.Descriptor( + name='BlockKeyProto', + full_name='BlockKeyProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='keyId', full_name='BlockKeyProto.keyId', index=0, + number=1, type=13, cpp_type=3, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='expiryDate', full_name='BlockKeyProto.expiryDate', index=1, + number=2, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='keyBytes', full_name='BlockKeyProto.keyBytes', index=2, + number=3, type=12, cpp_type=9, label=1, + has_default_value=False, default_value="", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3591, + serialized_end=3659, +) + + +_EXPORTEDBLOCKKEYSPROTO = descriptor.Descriptor( + name='ExportedBlockKeysProto', + full_name='ExportedBlockKeysProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='isBlockTokenEnabled', full_name='ExportedBlockKeysProto.isBlockTokenEnabled', index=0, + number=1, type=8, cpp_type=7, label=2, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='keyUpdateInterval', full_name='ExportedBlockKeysProto.keyUpdateInterval', index=1, + number=2, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='tokenLifeTime', full_name='ExportedBlockKeysProto.tokenLifeTime', index=2, + number=3, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='currentKey', full_name='ExportedBlockKeysProto.currentKey', index=3, + number=4, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='allKeys', full_name='ExportedBlockKeysProto.allKeys', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3662, + serialized_end=3834, +) + + +_RECOVERINGBLOCKPROTO = descriptor.Descriptor( + name='RecoveringBlockProto', + full_name='RecoveringBlockProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='newGenStamp', full_name='RecoveringBlockProto.newGenStamp', index=0, + number=1, type=4, cpp_type=4, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + descriptor.FieldDescriptor( + name='block', full_name='RecoveringBlockProto.block', index=1, + number=2, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3836, + serialized_end=3914, +) + + +_VERSIONREQUESTPROTO = descriptor.Descriptor( + name='VersionRequestProto', + full_name='VersionRequestProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3916, + serialized_end=3937, +) + + +_VERSIONRESPONSEPROTO = descriptor.Descriptor( + name='VersionResponseProto', + full_name='VersionResponseProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + descriptor.FieldDescriptor( + name='info', full_name='VersionResponseProto.info', index=0, + number=1, type=11, cpp_type=10, label=2, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + extension_ranges=[], + serialized_start=3939, + serialized_end=3996, +) + +_DATANODEINFOSPROTO.fields_by_name['datanodes'].message_type = _DATANODEINFOPROTO +_DATANODEINFOPROTO.fields_by_name['id'].message_type = _DATANODEIDPROTO +_DATANODEINFOPROTO.fields_by_name['adminState'].enum_type = _DATANODEINFOPROTO_ADMINSTATE +_DATANODEINFOPROTO_ADMINSTATE.containing_type = _DATANODEINFOPROTO; +_LOCATEDBLOCKPROTO.fields_by_name['b'].message_type = _EXTENDEDBLOCKPROTO +_LOCATEDBLOCKPROTO.fields_by_name['locs'].message_type = _DATANODEINFOPROTO +_LOCATEDBLOCKPROTO.fields_by_name['blockToken'].message_type = _BLOCKTOKENIDENTIFIERPROTO +_LOCATEDBLOCKSPROTO.fields_by_name['blocks'].message_type = _LOCATEDBLOCKPROTO +_LOCATEDBLOCKSPROTO.fields_by_name['lastBlock'].message_type = _LOCATEDBLOCKPROTO +_HDFSFILESTATUSPROTO.fields_by_name['fileType'].enum_type = _HDFSFILESTATUSPROTO_FILETYPE +_HDFSFILESTATUSPROTO.fields_by_name['permission'].message_type = _FSPERMISSIONPROTO +_HDFSFILESTATUSPROTO.fields_by_name['locations'].message_type = _LOCATEDBLOCKSPROTO +_HDFSFILESTATUSPROTO_FILETYPE.containing_type = _HDFSFILESTATUSPROTO; +_FSSERVERDEFAULTSPROTO.fields_by_name['checksumType'].enum_type = _CHECKSUMTYPEPROTO +_DIRECTORYLISTINGPROTO.fields_by_name['partialListing'].message_type = _HDFSFILESTATUSPROTO +_NAMENODEREGISTRATIONPROTO.fields_by_name['storageInfo'].message_type = _STORAGEINFOPROTO +_NAMENODEREGISTRATIONPROTO.fields_by_name['role'].enum_type = _NAMENODEREGISTRATIONPROTO_NAMENODEROLEPROTO +_NAMENODEREGISTRATIONPROTO_NAMENODEROLEPROTO.containing_type = _NAMENODEREGISTRATIONPROTO; +_CHECKPOINTSIGNATUREPROTO.fields_by_name['storageInfo'].message_type = _STORAGEINFOPROTO +_NAMENODECOMMANDPROTO.fields_by_name['type'].enum_type = _NAMENODECOMMANDPROTO_TYPE +_NAMENODECOMMANDPROTO.fields_by_name['checkpointCmd'].message_type = _CHECKPOINTCOMMANDPROTO +_NAMENODECOMMANDPROTO_TYPE.containing_type = _NAMENODECOMMANDPROTO; +_CHECKPOINTCOMMANDPROTO.fields_by_name['signature'].message_type = _CHECKPOINTSIGNATUREPROTO +_BLOCKWITHLOCATIONSPROTO.fields_by_name['block'].message_type = _BLOCKPROTO +_BLOCKSWITHLOCATIONSPROTO.fields_by_name['blocks'].message_type = _BLOCKWITHLOCATIONSPROTO +_REMOTEEDITLOGMANIFESTPROTO.fields_by_name['logs'].message_type = _REMOTEEDITLOGPROTO +_NAMESPACEINFOPROTO.fields_by_name['storageInfo'].message_type = _STORAGEINFOPROTO +_EXPORTEDBLOCKKEYSPROTO.fields_by_name['currentKey'].message_type = _BLOCKKEYPROTO +_EXPORTEDBLOCKKEYSPROTO.fields_by_name['allKeys'].message_type = _BLOCKKEYPROTO +_RECOVERINGBLOCKPROTO.fields_by_name['block'].message_type = _LOCATEDBLOCKPROTO +_VERSIONRESPONSEPROTO.fields_by_name['info'].message_type = _NAMESPACEINFOPROTO +DESCRIPTOR.message_types_by_name['ExtendedBlockProto'] = _EXTENDEDBLOCKPROTO +DESCRIPTOR.message_types_by_name['BlockTokenIdentifierProto'] = _BLOCKTOKENIDENTIFIERPROTO +DESCRIPTOR.message_types_by_name['DatanodeIDProto'] = _DATANODEIDPROTO +DESCRIPTOR.message_types_by_name['DatanodeInfosProto'] = _DATANODEINFOSPROTO +DESCRIPTOR.message_types_by_name['DatanodeInfoProto'] = _DATANODEINFOPROTO +DESCRIPTOR.message_types_by_name['ContentSummaryProto'] = _CONTENTSUMMARYPROTO +DESCRIPTOR.message_types_by_name['CorruptFileBlocksProto'] = _CORRUPTFILEBLOCKSPROTO +DESCRIPTOR.message_types_by_name['FsPermissionProto'] = _FSPERMISSIONPROTO +DESCRIPTOR.message_types_by_name['LocatedBlockProto'] = _LOCATEDBLOCKPROTO +DESCRIPTOR.message_types_by_name['DataEncryptionKeyProto'] = _DATAENCRYPTIONKEYPROTO +DESCRIPTOR.message_types_by_name['LocatedBlocksProto'] = _LOCATEDBLOCKSPROTO +DESCRIPTOR.message_types_by_name['HdfsFileStatusProto'] = _HDFSFILESTATUSPROTO +DESCRIPTOR.message_types_by_name['FsServerDefaultsProto'] = _FSSERVERDEFAULTSPROTO +DESCRIPTOR.message_types_by_name['DirectoryListingProto'] = _DIRECTORYLISTINGPROTO +DESCRIPTOR.message_types_by_name['UpgradeStatusReportProto'] = _UPGRADESTATUSREPORTPROTO +DESCRIPTOR.message_types_by_name['StorageInfoProto'] = _STORAGEINFOPROTO +DESCRIPTOR.message_types_by_name['NamenodeRegistrationProto'] = _NAMENODEREGISTRATIONPROTO +DESCRIPTOR.message_types_by_name['CheckpointSignatureProto'] = _CHECKPOINTSIGNATUREPROTO +DESCRIPTOR.message_types_by_name['NamenodeCommandProto'] = _NAMENODECOMMANDPROTO +DESCRIPTOR.message_types_by_name['CheckpointCommandProto'] = _CHECKPOINTCOMMANDPROTO +DESCRIPTOR.message_types_by_name['BlockProto'] = _BLOCKPROTO +DESCRIPTOR.message_types_by_name['BlockWithLocationsProto'] = _BLOCKWITHLOCATIONSPROTO +DESCRIPTOR.message_types_by_name['BlocksWithLocationsProto'] = _BLOCKSWITHLOCATIONSPROTO +DESCRIPTOR.message_types_by_name['RemoteEditLogProto'] = _REMOTEEDITLOGPROTO +DESCRIPTOR.message_types_by_name['RemoteEditLogManifestProto'] = _REMOTEEDITLOGMANIFESTPROTO +DESCRIPTOR.message_types_by_name['NamespaceInfoProto'] = _NAMESPACEINFOPROTO +DESCRIPTOR.message_types_by_name['BlockKeyProto'] = _BLOCKKEYPROTO +DESCRIPTOR.message_types_by_name['ExportedBlockKeysProto'] = _EXPORTEDBLOCKKEYSPROTO +DESCRIPTOR.message_types_by_name['RecoveringBlockProto'] = _RECOVERINGBLOCKPROTO +DESCRIPTOR.message_types_by_name['VersionRequestProto'] = _VERSIONREQUESTPROTO +DESCRIPTOR.message_types_by_name['VersionResponseProto'] = _VERSIONRESPONSEPROTO + +class ExtendedBlockProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _EXTENDEDBLOCKPROTO + + # @@protoc_insertion_point(class_scope:ExtendedBlockProto) + +class BlockTokenIdentifierProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _BLOCKTOKENIDENTIFIERPROTO + + # @@protoc_insertion_point(class_scope:BlockTokenIdentifierProto) + +class DatanodeIDProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _DATANODEIDPROTO + + # @@protoc_insertion_point(class_scope:DatanodeIDProto) + +class DatanodeInfosProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _DATANODEINFOSPROTO + + # @@protoc_insertion_point(class_scope:DatanodeInfosProto) + +class DatanodeInfoProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _DATANODEINFOPROTO + + # @@protoc_insertion_point(class_scope:DatanodeInfoProto) + +class ContentSummaryProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _CONTENTSUMMARYPROTO + + # @@protoc_insertion_point(class_scope:ContentSummaryProto) + +class CorruptFileBlocksProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _CORRUPTFILEBLOCKSPROTO + + # @@protoc_insertion_point(class_scope:CorruptFileBlocksProto) + +class FsPermissionProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _FSPERMISSIONPROTO + + # @@protoc_insertion_point(class_scope:FsPermissionProto) + +class LocatedBlockProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _LOCATEDBLOCKPROTO + + # @@protoc_insertion_point(class_scope:LocatedBlockProto) + +class DataEncryptionKeyProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _DATAENCRYPTIONKEYPROTO + + # @@protoc_insertion_point(class_scope:DataEncryptionKeyProto) + +class LocatedBlocksProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _LOCATEDBLOCKSPROTO + + # @@protoc_insertion_point(class_scope:LocatedBlocksProto) + +class HdfsFileStatusProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _HDFSFILESTATUSPROTO + + # @@protoc_insertion_point(class_scope:HdfsFileStatusProto) + +class FsServerDefaultsProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _FSSERVERDEFAULTSPROTO + + # @@protoc_insertion_point(class_scope:FsServerDefaultsProto) + +class DirectoryListingProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _DIRECTORYLISTINGPROTO + + # @@protoc_insertion_point(class_scope:DirectoryListingProto) + +class UpgradeStatusReportProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _UPGRADESTATUSREPORTPROTO + + # @@protoc_insertion_point(class_scope:UpgradeStatusReportProto) + +class StorageInfoProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _STORAGEINFOPROTO + + # @@protoc_insertion_point(class_scope:StorageInfoProto) + +class NamenodeRegistrationProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _NAMENODEREGISTRATIONPROTO + + # @@protoc_insertion_point(class_scope:NamenodeRegistrationProto) + +class CheckpointSignatureProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _CHECKPOINTSIGNATUREPROTO + + # @@protoc_insertion_point(class_scope:CheckpointSignatureProto) + +class NamenodeCommandProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _NAMENODECOMMANDPROTO + + # @@protoc_insertion_point(class_scope:NamenodeCommandProto) + +class CheckpointCommandProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _CHECKPOINTCOMMANDPROTO + + # @@protoc_insertion_point(class_scope:CheckpointCommandProto) + +class BlockProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _BLOCKPROTO + + # @@protoc_insertion_point(class_scope:BlockProto) + +class BlockWithLocationsProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _BLOCKWITHLOCATIONSPROTO + + # @@protoc_insertion_point(class_scope:BlockWithLocationsProto) + +class BlocksWithLocationsProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _BLOCKSWITHLOCATIONSPROTO + + # @@protoc_insertion_point(class_scope:BlocksWithLocationsProto) + +class RemoteEditLogProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _REMOTEEDITLOGPROTO + + # @@protoc_insertion_point(class_scope:RemoteEditLogProto) + +class RemoteEditLogManifestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _REMOTEEDITLOGMANIFESTPROTO + + # @@protoc_insertion_point(class_scope:RemoteEditLogManifestProto) + +class NamespaceInfoProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _NAMESPACEINFOPROTO + + # @@protoc_insertion_point(class_scope:NamespaceInfoProto) + +class BlockKeyProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _BLOCKKEYPROTO + + # @@protoc_insertion_point(class_scope:BlockKeyProto) + +class ExportedBlockKeysProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _EXPORTEDBLOCKKEYSPROTO + + # @@protoc_insertion_point(class_scope:ExportedBlockKeysProto) + +class RecoveringBlockProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _RECOVERINGBLOCKPROTO + + # @@protoc_insertion_point(class_scope:RecoveringBlockProto) + +class VersionRequestProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _VERSIONREQUESTPROTO + + # @@protoc_insertion_point(class_scope:VersionRequestProto) + +class VersionResponseProto(message.Message): + __metaclass__ = reflection.GeneratedProtocolMessageType + DESCRIPTOR = _VERSIONRESPONSEPROTO + + # @@protoc_insertion_point(class_scope:VersionResponseProto) + +# @@protoc_insertion_point(module_scope) diff --git a/spotify/snakebite/service.py b/spotify/snakebite/service.py new file mode 100644 index 0000000..3ad3646 --- /dev/null +++ b/spotify/snakebite/service.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +from spotify.snakebite.channel import SocketRpcChannel +from spotify.snakebite.channel import SocketRpcController + + +class RpcService(object): + + def __init__(self, service_stub_class, port, host): + self.service_stub_class = service_stub_class + self.port = port + self.host = host + + # Setup the RPC channel + self.channel = SocketRpcChannel(host=self.host, port=self.port) + self.service = self.service_stub_class(self.channel) + + # go through service_stub methods and add a wrapper function to + # this object that will call the method + for method in service_stub_class.GetDescriptor().methods: + # Add service methods to the this object + rpc = lambda request, service=self, method=method.name: service.call(service_stub_class.__dict__[method], request) + + self.__dict__[method.name] = rpc + + def call(self, method, request): + controller = SocketRpcController() + return method(self.service, controller, request) diff --git a/test/chgrp_test.py b/test/chgrp_test.py new file mode 100644 index 0000000..8c62202 --- /dev/null +++ b/test/chgrp_test.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +from minicluster import MiniClusterTestBase +from spotify.snakebite.errors import FileNotFoundException +from spotify.snakebite.errors import InvalidInputException + + +class ChgrpTest(MiniClusterTestBase): + + def test_onepath(self): + self.client.chgrp(['/dir1'], "onepathgroup") + client_output = self.client.ls(['/dir1'], include_toplevel=True, include_children=False) + self.assertEqual(client_output[0]["group"], "onepathgroup") + + def test_multipath(self): + self.client.chgrp(['/dir1', '/zerofile'], "multipathgroup") + client_output = self.client.ls(['/dir1', '/zerofile'], include_toplevel=True, include_children=False) + for node in client_output: + self.assertEqual(node["group"], "multipathgroup") + + def test_recursive(self): + self.client.chgrp(['/'], 'recursivegroup', recurse=True) + expected_output = self.cluster.ls(["/"], ["-R"]) + for node in expected_output: + self.assertEqual(node["group"], "recursivegroup") + + def test_unknown_file(self): + self.assertRaises(FileNotFoundException, self.client.chgrp, ['/nonexistent'], 'myOnwer', recurse=True) + + def test_invalid_input(self): + self.assertRaises(InvalidInputException, self.client.chgrp, '/doesnotexist', 'myOnwer') diff --git a/test/chmod_test.py b/test/chmod_test.py new file mode 100644 index 0000000..77b18c6 --- /dev/null +++ b/test/chmod_test.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +from minicluster import MiniClusterTestBase +from spotify.snakebite.errors import FileNotFoundException +from spotify.snakebite.errors import InvalidInputException + + +class ChmodTest(MiniClusterTestBase): + + def test_onepath(self): + self.client.chmod(['/dir1'], 0777) + client_output = self.client.ls(['/dir1'], include_toplevel=True, include_children=False) + self.assertEqual(client_output[0]["permission"], 511) + + def test_multipath(self): + self.client.chmod(['/dir1', '/zerofile'], 0700) + client_output = self.client.ls(['/dir1', '/zerofile'], include_toplevel=True, include_children=False) + for node in client_output: + if node["file_type"] == "d": + self.assertEqual(node["permission"], 448) + else: + self.assertEqual(node["permission"], 384) + + def test_recursive(self): + self.client.chmod(['/'], 0770, recurse=True) + expected_output = self.cluster.ls(["/"], ["-R"]) + for node in expected_output: + if node["file_type"] == "d": + self.assertEqual(node["permission"], 504) + else: + self.assertEqual(node["permission"], 432) + + def test_unknown_file(self): + self.assertRaises(FileNotFoundException, self.client.chmod, ['/nonexistent'], 0777, recurse=True) + + def test_invalid_input(self): + self.assertRaises(InvalidInputException, self.client.chmod, '/stringpath', 777) diff --git a/test/chown_test.py b/test/chown_test.py new file mode 100644 index 0000000..b64af6e --- /dev/null +++ b/test/chown_test.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +from minicluster import MiniClusterTestBase +from spotify.snakebite.errors import FileNotFoundException +from spotify.snakebite.errors import InvalidInputException + + +class ChownTest(MiniClusterTestBase): + + def test_onepath(self): + self.client.chown(['/dir1'], "onepathowner") + client_output = self.client.ls(['/dir1'], include_toplevel=True, include_children=False) + self.assertEqual(client_output[0]["owner"], "onepathowner") + + def test_multipath(self): + self.client.chown(['/dir1', '/zerofile'], "multipathowner") + client_output = self.client.ls(['/dir1', '/zerofile'], include_toplevel=True, include_children=False) + for node in client_output: + self.assertEqual(node["owner"], "multipathowner") + + def test_recursive(self): + self.client.chown(['/'], 'recursiveowner', recurse=True) + expected_output = self.cluster.ls(["/"], ["-R"]) + for node in expected_output: + self.assertEqual(node["owner"], "recursiveowner") + + def test_unknown_file(self): + self.assertRaises(FileNotFoundException, self.client.chown, ['/nonexistent'], 'myGroup', recurse=True) + + def test_user_group(self): + self.client.chown(['/dir1'], "myUser:myGroup") + client_output = self.client.ls(['/dir1'], include_toplevel=True, include_children=False) + self.assertEqual(client_output[0]["owner"], "myUser") + self.assertEqual(client_output[0]["group"], "myGroup") + + def test_group(self): + client_output = self.client.ls(['/dir1'], include_toplevel=True, include_children=False) + expected_owner = client_output[0]["owner"] + self.client.chown(['/dir1'], ":mySuperGroup") + client_output = self.client.ls(['/dir1'], include_toplevel=True, include_children=False) + self.assertEqual(client_output[0]["owner"], expected_owner) + self.assertEqual(client_output[0]["group"], "mySuperGroup") + + def test_invalid_input(self): + self.assertRaises(InvalidInputException, self.client.chown, '/stringpath', 'myGroup') diff --git a/test/count_test.py b/test/count_test.py new file mode 100644 index 0000000..327b82a --- /dev/null +++ b/test/count_test.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +from spotify.snakebite.errors import FileNotFoundException +from spotify.snakebite.errors import InvalidInputException +from minicluster import MiniClusterTestBase + + +class CountTest(MiniClusterTestBase): + def test_count_path(self): + client_output = sorted(self.client.count(["/"]), key=lambda node: node['path']) + expected_output = sorted(self.cluster.count(["/"]), key=lambda node: node['path']) + self.assertEqual(len(client_output), len(client_output)) + for i, expected_node in enumerate(expected_output): + client_node = client_output[i] + for key in ['path', 'length', 'directoryCount', 'fileCount']: + self.assertEqual(client_node[key], expected_node[key]) + + def test_count_multi(self): + client_output = sorted(self.client.count(["/", "/dir1"]), key=lambda node: node['path']) + expected_output = sorted(self.cluster.count(["/", "/dir1"]), key=lambda node: node['path']) + self.assertEqual(len(client_output), len(client_output)) + for i, expected_node in enumerate(expected_output): + client_node = client_output[i] + for key in ['path', 'length', 'directoryCount', 'fileCount']: + self.assertEqual(client_node[key], expected_node[key]) + + def test_unknown_file(self): + self.assertRaises(FileNotFoundException, self.client.count, ['/doesnotexist']) + + def test_invalid_input(self): + self.assertRaises(InvalidInputException, self.client.count, '/stringpath') diff --git a/test/delete_test.py b/test/delete_test.py new file mode 100644 index 0000000..fd0be4b --- /dev/null +++ b/test/delete_test.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +from spotify.snakebite.errors import FileNotFoundException +from spotify.snakebite.errors import InvalidInputException +from minicluster import MiniClusterTestBase + + +class DeleteTest(MiniClusterTestBase): + def test_delete_file(self): + before_state = set([node['path'] for node in self.client.ls(['/'])]) + self.client.delete(['/zerofile']) + after_state = set([node['path'] for node in self.client.ls(['/'])]) + self.assertEqual(len(after_state), len(before_state) - 1) + self.assertFalse('/zerofile' in after_state) + + def test_delete_multi(self): + before_state = set([node['path'] for node in self.client.ls(['/'])]) + self.client.delete(['/test1', '/test2']) + after_state = set([node['path'] for node in self.client.ls(['/'])]) + self.assertEqual(len(after_state), len(before_state) - 2) + self.assertFalse('/test1' in after_state or '/test2' in after_state) + + def test_unknown_file(self): + self.assertRaises(FileNotFoundException, self.client.delete, ['/doesnotexist']) + + def test_invalid_input(self): + self.assertRaises(InvalidInputException, self.client.delete, '/stringpath') diff --git a/test/df_test.py b/test/df_test.py new file mode 100644 index 0000000..203684c --- /dev/null +++ b/test/df_test.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +import re +from minicluster import MiniClusterTestBase + + +class DfTest(MiniClusterTestBase): + + def test_df(self): + client_output = self.client.df()[0] + expected_output = self.cluster.df("/").split("\n")[1] + + print client_output + print expected_output + (filesystem, capacity, used, remaining, pct) = re.split("\s+", expected_output) + + self.assertEqual(filesystem, client_output["filesystem"]) + self.assertEqual(long(capacity), client_output["capacity"]) + self.assertEqual(long(used), client_output["used"]) diff --git a/test/du_test.py b/test/du_test.py new file mode 100644 index 0000000..4dfa09e --- /dev/null +++ b/test/du_test.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +from spotify.snakebite.errors import FileNotFoundException +from spotify.snakebite.errors import InvalidInputException +from minicluster import MiniClusterTestBase +from util import assertDu + + +class DfTest(MiniClusterTestBase): + + def test_onepath(self): + client_output = sorted(self.client.du(['/']), key=lambda node: node['path']) + expected_output = sorted(self.cluster.du('/'), key=lambda node: node['path']) + assertDu(expected_output, client_output, self.assertEqual, self.assertEqual) + + def test_multipath(self): + client_output = sorted(self.client.du(['/', '/dir1']), key=lambda node: node['path']) + expected_output = sorted(self.cluster.du(['/', '/dir1']), key=lambda node: node['path']) + assertDu(expected_output, client_output, self.assertEqual, self.assertEqual) + + def test_toplevel(self): + client_output = sorted(self.client.du(['/'], include_toplevel=True, include_children=False), key=lambda node: node['path']) + expected_output = sorted(self.cluster.du(['/'], ['-s']), key=lambda node: node['path']) + self.assertEqual(len(client_output), 1) + assertDu(expected_output, client_output, self.assertEqual, self.assertEqual) + + def test_unknown_file(self): + self.assertRaises(FileNotFoundException, self.client.du, ['/nonexistent']) + + def test_invalid_input(self): + self.assertRaises(InvalidInputException, self.client.du, '/stringpath') diff --git a/test/glob_test.py b/test/glob_test.py new file mode 100644 index 0000000..9cbf689 --- /dev/null +++ b/test/glob_test.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +import unittest2 +import spotify.snakebite.glob as glob + + +class GlobTest(unittest2.TestCase): + def test_path_expansion(self): + paths = ['/foo/bar', '/foo/{bar,baz}', '/foo/{bar,baz}/{quz,quux}', '/foo/{bar,baz}/{quz,quux}/{aap}'] + expected = ['/foo/bar', '/foo/bar', '/foo/baz', '/foo/bar/quz', '/foo/bar/quux', '/foo/baz/quz', '/foo/baz/quux', '/foo/bar/quz/aap', '/foo/bar/quux/aap', '/foo/baz/quz/aap', '/foo/baz/quux/aap'] + new_paths = glob.expandPaths(paths) + self.assertEqual(new_paths, expected) diff --git a/test/list_test.py b/test/list_test.py new file mode 100644 index 0000000..e993d37 --- /dev/null +++ b/test/list_test.py @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +from util import assertListings +from minicluster import MiniClusterTestBase +from spotify.snakebite.errors import FileNotFoundException +from spotify.snakebite.errors import InvalidInputException + + +class ListTest(MiniClusterTestBase): + + def test_toplevel_root(self): + expected_output = self.cluster.ls(['/']) + client_output = self.client.ls(['/']) + assertListings(expected_output, client_output, self.assertEqual, self.assertEqual) + + def test_toplevel_dir(self): + client_output = self.client.ls(['/dir1'], include_toplevel=True, include_children=False) + self.assertEqual(len(client_output), 1) + self.assertEqual(client_output[0]['file_type'], 'd') + self.assertEqual(client_output[0]['length'], 0) + + def test_zerofile(self): + client_output = self.client.ls(['/zerofile'], include_toplevel=True, include_children=False) + self.assertEqual(len(client_output), 1) + self.assertEqual(client_output[0]['file_type'], 'f') + self.assertEqual(client_output[0]['length'], 0) + + def test_file_even_if_toplevel_is_false(self): + client_output = self.client.ls(['/zerofile']) + self.assertEqual(len(client_output), 1) + self.assertEqual(client_output[0]['file_type'], 'f') + self.assertEqual(client_output[0]['length'], 0) + + def test_root_incl_toplevel(self): + expected_output = self.cluster.ls(['/']) + result = self.client.ls(['/'], include_toplevel=True, include_children=True) + self.assertEqual(len(result), len(expected_output) + 1) + + def test_root_recursive(self): + expected_output = self.cluster.ls(['/'], ['-R']) + client_output = self.client.ls(['/'], include_toplevel=False, recurse=True) + assertListings(expected_output, client_output, self.assertEqual, self.assertEqual) + + def test_multiple_files(self): + client_output = self.client.ls(['/zerofile', '/dir1'], include_toplevel=True, include_children=False) + client_output = sorted(client_output, key=lambda node: node['path']) + self.assertEqual(len(client_output), 2) + self.assertEqual(client_output[0]['path'], '/dir1') + self.assertEqual(client_output[1]['path'], '/zerofile') + + def test_glob(self): + expected_output = self.cluster.ls(['/b*']) + client_output = self.client.ls(['/b*']) + self.assertTrue(len(client_output) > 1) + self.assertTrue(len(expected_output) > 1) + assertListings(expected_output, client_output, self.assertEqual, self.assertEqual) + + expected_output = self.cluster.ls(['/{foo,bar}']) + client_output = self.client.ls(['/{foo,bar}']) + self.assertTrue(len(client_output) > 1) + self.assertTrue(len(expected_output) > 1) + assertListings(expected_output, client_output, self.assertEqual, self.assertEqual) + + expected_output = self.cluster.ls(['/[fb]*/*/*/qux']) + client_output = self.client.ls(['/[fb]*/*/*/qux']) + self.assertTrue(len(client_output) > 1) + self.assertTrue(len(expected_output) > 1) + assertListings(expected_output, client_output, self.assertEqual, self.assertEqual) + + expected_output = self.cluster.ls(['/{foo,bar}/*/*/qux']) + client_output = self.client.ls(['/{foo,bar}/*/*/qux']) + self.assertTrue(len(client_output) > 1) + self.assertTrue(len(expected_output) > 1) + assertListings(expected_output, client_output, self.assertEqual, self.assertEqual) + + def test_unknown_file(self): + self.assertRaises(FileNotFoundException, self.client.ls, ['/doesnotexist']) + + def test_invalid_input(self): + self.assertRaises(InvalidInputException, self.client.ls, '/stringpath') diff --git a/test/minicluster.py b/test/minicluster.py new file mode 100644 index 0000000..f49d75c --- /dev/null +++ b/test/minicluster.py @@ -0,0 +1,187 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +import os +import subprocess +import select +import re +import unittest2 +import datetime + +from spotify.snakebite.client import Client + + +class MiniCluster(object): + def __init__(self, testfiles_path, jar_search_paths=[]): + self._testfiles_path = testfiles_path + self._hadoop_home = os.environ['HADOOP_HOME'] + self._jobclient_jar = os.environ.get('HADOOP_JOBCLIENT_JAR') + self._hadoop_cmd = "%s/bin/hadoop" % self._hadoop_home + self._startMiniCluster() + self.host = "localhost" + self.port = self._getNameNodePort() + self.hdfs_url = "hdfs://%s:%d" % (self.host, self.port) + + def terminate(self): + self.hdfs.terminate() + + def put(self, src, dst): + src = "%s%s" % (self._testfiles_path, src) + return self._runCmd([self._hadoop_cmd, 'fs', '-put', src, self._full_hdfs_path(dst)]) + + def ls(self, src, extra_args=[]): + src = [self._full_hdfs_path(x) for x in src] + output = self._runCmd([self._hadoop_cmd, 'fs', '-ls'] + extra_args + src) + return self._transformLsOutput(output, self.hdfs_url) + + def mkdir(self, src, extra_args=[]): + return self._runCmd([self._hadoop_cmd, 'fs', '-mkdir'] + extra_args + [self._full_hdfs_path(src)]) + + def df(self, src): + return self._runCmd([self._hadoop_cmd, 'fs', '-df', self._full_hdfs_path(src)]) + + def du(self, src, extra_args=[]): + src = [self._full_hdfs_path(x) for x in src] + return self._transformDuOutput(self._runCmd([self._hadoop_cmd, 'fs', '-du'] + extra_args + src), self.hdfs_url) + + def count(self, src): + src = [self._full_hdfs_path(x) for x in src] + return self._transformCountOutput(self._runCmd([self._hadoop_cmd, 'fs', '-count'] + src), self.hdfs_url) + + def _runCmd(self, cmd): + print cmd + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + return p.communicate()[0] + + def _full_hdfs_path(self, src): + return "%s%s" % (self.hdfs_url, src) + + def _findMiniClusterJar(self, path): + for dirpath, dirnames, filenames in os.walk(path): + for files in filenames: + if re.match(".*hadoop-mapreduce-client-jobclient.+-tests.jar", files): + return os.path.join(dirpath, files) + + def _startMiniCluster(self): + if self._jobclient_jar: + hadoop_jar = self._jobclient_jar + else: + hadoop_jar = self._findMiniClusterJar(self._hadoop_home) + if not hadoop_jar: + raise Exception("No hadoop jobclient test jar found") + self.hdfs = subprocess.Popen([self._hadoop_cmd, + 'jar', + hadoop_jar, + 'minicluster', '-nomr', '-format'], + bufsize=0, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + + def _getNameNodePort(self): + port_found = False + while self.hdfs.poll() is None and not port_found: + rlist, wlist, xlist = select.select([self.hdfs.stderr, self.hdfs.stdout], [], []) + for f in rlist: + line = f.readline() + print line, + m = re.match(".*Started MiniDFSCluster -- namenode on port (\d+).*", line) + if m: + return int(m.group(1)) + + def _transformLsOutput(self, i, base_path): + result = [] + for line in i.split("\n"): + if not line or line.startswith("Found"): + continue + + (perms, replication, owner, group, length, date, time, path) = re.split("\s+", line) + node = {} + + if replication == '-': + replication = 0 + + node['permission'] = self._perms_to_int(perms) + node['block_replication'] = int(replication) + node['owner'] = owner + node['group'] = group + node['length'] = int(length) + dt = "%s %s" % (date, time) + node['modification_time'] = long(datetime.datetime.strptime(dt, '%Y-%m-%d %H:%M').strftime('%s')) + node['path'] = path.replace(base_path, '') + node['file_type'] = self._getFileType(perms[0]) + result.append(node) + return result + + def _transformDuOutput(self, i, base_path): + result = [] + for line in i.split("\n"): + if line: + (length, path) = re.split("\s+", line) + result.append({"path": path.replace(base_path, ""), "length": long(length)}) + return result + + def _transformCountOutput(self, i, base_path): + result = [] + for line in i.split("\n"): + if line: + (_, dir_count, file_count, length, path) = re.split("\s+", line) + result.append({"path": path.replace(base_path, ""), "length": long(length), + "directoryCount": long(dir_count), "fileCount": long(file_count)}) + return result + + def _getFileType(self, i): + if i == "-": + return "f" + else: + return i + + def _perms_to_int(self, perms): + s = "" + for x in perms[1:]: + if x == "-": + s += "0" + else: + s += "1" + octal = "%d%d%d" % (int(s[0:3], 2), int(s[3:6], 2), int(s[6:9], 2)) + return int(octal, 8) + + +class MiniClusterTestBase(unittest2.TestCase): + + cluster = None + + @classmethod + def setupClass(cls): + if not cls.cluster: + testfiles_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "testfiles") + cls.cluster = MiniCluster(testfiles_path) + cls.cluster.put("/test1", "/test1") + cls.cluster.put("/test1", "/test2") + cls.cluster.put("/zerofile", "/") + cls.cluster.mkdir("/dir1") + cls.cluster.put("/zerofile", "/dir1") + cls.cluster.mkdir("/foo/bar/baz", ['-p']) + cls.cluster.put("/zerofile", "/foo/bar/baz/qux") + cls.cluster.mkdir("/bar/baz/foo", ['-p']) + cls.cluster.put("/zerofile", "/bar/baz/foo/qux") + cls.cluster.mkdir("/bar/foo/baz", ['-p']) + cls.cluster.put("/zerofile", "/bar/foo/baz/qux") + + @classmethod + def tearDownClass(cls): + if cls.cluster: + cls.cluster.terminate() + + def setUp(self): + self.cluster = self.__class__.cluster + self.client = Client(self.cluster.host, self.cluster.port) diff --git a/test/rename_test.py b/test/rename_test.py new file mode 100644 index 0000000..e4384b1 --- /dev/null +++ b/test/rename_test.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +from spotify.snakebite.errors import FileNotFoundException +from spotify.snakebite.errors import InvalidInputException +from minicluster import MiniClusterTestBase + + +class RenameTest(MiniClusterTestBase): + def test_rename_file(self): + self.client.rename(['/zerofile'], '/zerofile2') + expected_output = self.client.ls(['/zerofile2'], include_toplevel=True) + self.assertEqual(len(expected_output), 1) + self.assertEqual(expected_output[0]['path'], '/zerofile2') + self.assertRaises(FileNotFoundException, self.client.ls, ['/zerofile']) + + def test_rename_multi(self): + self.client.rename(['/test1', '/test2'], '/dir1') + expected_output = self.client.ls(['/dir1']) + paths = set([node["path"] for node in expected_output]) + for path in ['/dir1/test1', '/dir1/test2']: + self.assertTrue(path in paths) + + def test_unknown_file(self): + self.assertRaises(FileNotFoundException, self.client.rename, ['/doesnotexist'], '/somewhereelse') + + def test_invalid_input(self): + self.assertRaises(InvalidInputException, self.client.rename, '/stringpath', '777') diff --git a/test/test.py b/test/test.py new file mode 100755 index 0000000..94942a5 --- /dev/null +++ b/test/test.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +import sys +import os +import glob +import unittest2 + + +def suite(): + suite = unittest2.TestSuite() + for filename in glob.glob('test/*_test.py'): + print filename + f = os.path.splitext(os.path.basename(filename))[0] + module = __import__(f) + suite.addTest(unittest2.defaultTestLoader.loadTestsFromModule(module)) + return suite + + +class run(unittest2.TestProgram): + """Runs tests and counts errors.""" + def __init__(self): + #sys.path.append(test) + unittest2.TestProgram.__init__(self, '__main__', 'suite') + + def usageExit(self, msg=None): + if msg: + print msg + print self.USAGE % self.__dict__ + sys.exit(-2) + + def runTests(self): + if self.testRunner is None: + self.testRunner = unittest2.TextTestRunner(verbosity=self.verbosity) + result = self.testRunner.run(self.test) + error_count = len(result.errors) + len(result.failures) + sys.exit(error_count) + +if __name__ == '__main__': + run() diff --git a/test/testfiles/test1 b/test/testfiles/test1 new file mode 100644 index 0000000..9873756 --- /dev/null +++ b/test/testfiles/test1 @@ -0,0 +1,13921 @@ +# +# Network services, Internet style +# +# Note that it is presently the policy of IANA to assign a single well-known +# port number for both TCP and UDP; hence, most entries here have two entries +# even if the protocol doesn't support UDP operations. +# +# The latest IANA port assignments can be gotten from +# +# http://www.iana.org/assignments/port-numbers +# +# The Well Known Ports are those from 0 through 1023. +# The Registered Ports are those from 1024 through 49151 +# The Dynamic and/or Private Ports are those from 49152 through 65535 +# +# $FreeBSD: src/etc/services,v 1.89 2002/12/17 23:59:10 eric Exp $ +# From: @(#)services 5.8 (Berkeley) 5/9/91 +# +# WELL KNOWN PORT NUMBERS +# +rtmp 1/ddp #Routing Table Maintenance Protocol +tcpmux 1/udp # TCP Port Service Multiplexer +tcpmux 1/tcp # TCP Port Service Multiplexer +# Mark Lottor +nbp 2/ddp #Name Binding Protocol +compressnet 2/udp # Management Utility +compressnet 2/tcp # Management Utility +compressnet 3/udp # Compression Process +compressnet 3/tcp # Compression Process +# Bernie Volz +echo 4/ddp #AppleTalk Echo Protocol +# 4/tcp Unassigned +# 4/udp Unassigned +rje 5/udp # Remote Job Entry +rje 5/tcp # Remote Job Entry +# Jon Postel +zip 6/ddp #Zone Information Protocol +# 6/tcp Unassigned +# 6/udp Unassigned +echo 7/udp # Echo +echo 7/tcp # Echo +# Jon Postel +# 8/tcp Unassigned +# 8/udp Unassigned +discard 9/udp # Discard +discard 9/tcp # Discard +# Jon Postel +# 10/tcp Unassigned +# 10/udp Unassigned +systat 11/udp # Active Users +systat 11/tcp # Active Users +# Jon Postel +# 12/tcp Unassigned +# 12/udp Unassigned +daytime 13/udp # Daytime (RFC 867) +daytime 13/tcp # Daytime (RFC 867) +# Jon Postel +# 14/tcp Unassigned +# 14/udp Unassigned +# 15/tcp Unassigned [was netstat] +# 15/udp Unassigned +# 16/tcp Unassigned +# 16/udp Unassigned +qotd 17/udp # Quote of the Day +qotd 17/tcp # Quote of the Day +# Jon Postel +msp 18/udp # Message Send Protocol +msp 18/tcp # Message Send Protocol +# Rina Nethaniel <---none---> +chargen 19/udp # Character Generator +chargen 19/tcp # Character Generator +ftp-data 20/udp # File Transfer [Default Data] +ftp-data 20/tcp # File Transfer [Default Data] +ftp 21/udp # File Transfer [Control] +ftp 21/tcp # File Transfer [Control] +# Jon Postel +ssh 22/udp # SSH Remote Login Protocol +ssh 22/tcp # SSH Remote Login Protocol +# Tatu Ylonen +telnet 23/udp # Telnet +telnet 23/tcp # Telnet +# Jon Postel + 24/udp # any private mail system + 24/tcp # any private mail system +# Rick Adams +smtp 25/udp # Simple Mail Transfer +smtp 25/tcp # Simple Mail Transfer +# Jon Postel +# 26/tcp Unassigned +# 26/udp Unassigned +nsw-fe 27/udp # NSW User System FE +nsw-fe 27/tcp # NSW User System FE +# Robert Thomas +# 28/tcp Unassigned +# 28/udp Unassigned +msg-icp 29/udp # MSG ICP +msg-icp 29/tcp # MSG ICP +# Robert Thomas +# 30/tcp Unassigned +# 30/udp Unassigned +msg-auth 31/udp # MSG Authentication +msg-auth 31/tcp # MSG Authentication +# Robert Thomas +# 32/tcp Unassigned +# 32/udp Unassigned +dsp 33/udp # Display Support Protocol +dsp 33/tcp # Display Support Protocol +# Ed Cain +# 34/tcp Unassigned +# 34/udp Unassigned + 35/udp # any private printer server + 35/tcp # any private printer server +# Jon Postel +# 36/tcp Unassigned +# 36/udp Unassigned +time 37/udp # Time +time 37/tcp # Time +# Jon Postel +rap 38/udp # Route Access Protocol +rap 38/tcp # Route Access Protocol +# Robert Ullmann +rlp 39/udp # Resource Location Protocol +rlp 39/tcp # Resource Location Protocol +# Mike Accetta +# 40/tcp Unassigned +# 40/udp Unassigned +graphics 41/udp # Graphics +graphics 41/tcp # Graphics +name 42/udp nameserver # Host Name Server +name 42/tcp nameserver # Host Name Server +nicname 43/tcp whois +nicname 43/udp whois +mpm-flags 44/udp # MPM FLAGS Protocol +mpm-flags 44/tcp # MPM FLAGS Protocol +mpm 45/udp # Message Processing Module [recv] +mpm 45/tcp # Message Processing Module [recv] +mpm-snd 46/udp # MPM [default send] +mpm-snd 46/tcp # MPM [default send] +# Jon Postel +ni-ftp 47/udp # NI FTP +ni-ftp 47/tcp # NI FTP +# Steve Kille +auditd 48/udp # Digital Audit Daemon +auditd 48/tcp # Digital Audit Daemon +# Larry Scott +tacacs 49/udp # Login Host Protocol (TACACS) +tacacs 49/tcp # Login Host Protocol (TACACS) +# Pieter Ditmars +re-mail-ck 50/udp # Remote Mail Checking Protocol +re-mail-ck 50/tcp # Remote Mail Checking Protocol +# Steve Dorner +la-maint 51/udp # IMP Logical Address Maintenance +la-maint 51/tcp # IMP Logical Address Maintenance +# Andy Malis +xns-time 52/udp # XNS Time Protocol +xns-time 52/tcp # XNS Time Protocol +# Susie Armstrong +domain 53/udp # Domain Name Server +domain 53/tcp # Domain Name Server +# Paul Mockapetris +xns-ch 54/udp # XNS Clearinghouse +xns-ch 54/tcp # XNS Clearinghouse +# Susie Armstrong +isi-gl 55/udp # ISI Graphics Language +isi-gl 55/tcp # ISI Graphics Language +xns-auth 56/udp # XNS Authentication +xns-auth 56/tcp # XNS Authentication +# Susie Armstrong + 57/udp # any private terminal access + 57/tcp # any private terminal access +# Jon Postel +xns-mail 58/udp # XNS Mail +xns-mail 58/tcp # XNS Mail +# Susie Armstrong + 59/udp # any private file service + 59/tcp # any private file service +# Jon Postel + 60/udp # Unassigned + 60/tcp # Unassigned +ni-mail 61/udp # NI MAIL +ni-mail 61/tcp # NI MAIL +# Steve Kille +acas 62/udp # ACA Services +acas 62/tcp # ACA Services +# E. Wald +whois++ 63/udp # whois++ +whois++ 63/tcp # whois++ +# Rickard Schoultz +covia 64/udp # Communications Integrator (CI) +covia 64/tcp # Communications Integrator (CI) +# Dan Smith +tacacs-ds 65/udp # TACACS-Database Service +tacacs-ds 65/tcp # TACACS-Database Service +# Kathy Huber +sql*net 66/udp # Oracle SQL*NET +sql*net 66/tcp # Oracle SQL*NET +# Jack Haverty +bootps 67/udp # Bootstrap Protocol Server +bootps 67/tcp # Bootstrap Protocol Server +bootpc 68/udp # Bootstrap Protocol Client +bootpc 68/tcp # Bootstrap Protocol Client +# Bill Croft +tftp 69/udp # Trivial File Transfer +tftp 69/tcp # Trivial File Transfer +# David Clark +gopher 70/udp # Gopher +gopher 70/tcp # Gopher +# Mark McCahill +netrjs-1 71/udp # Remote Job Service +netrjs-1 71/tcp # Remote Job Service +netrjs-2 72/udp # Remote Job Service +netrjs-2 72/tcp # Remote Job Service +netrjs-3 73/udp # Remote Job Service +netrjs-3 73/tcp # Remote Job Service +netrjs-4 74/udp # Remote Job Service +netrjs-4 74/tcp # Remote Job Service +# Bob Braden + 75/udp # any private dial out service + 75/tcp # any private dial out service +# Jon Postel +deos 76/udp # Distributed External Object Store +deos 76/tcp # Distributed External Object Store +# Robert Ullmann + 77/udp # any private RJE service + 77/tcp # any private RJE service +# Jon Postel +vettcp 78/udp # vettcp +vettcp 78/tcp # vettcp +# Christopher Leong +finger 79/udp # Finger +finger 79/tcp # Finger +# David Zimmerman +http 80/udp www www-http # World Wide Web HTTP +http 80/tcp www www-http # World Wide Web HTTP +# Tim Berners-Lee +hosts2-ns 81/udp # HOSTS2 Name Server +hosts2-ns 81/tcp # HOSTS2 Name Server +# Earl Killian +xfer 82/udp # XFER Utility +xfer 82/tcp # XFER Utility +# Thomas M. Smith +mit-ml-dev 83/udp # MIT ML Device +mit-ml-dev 83/tcp # MIT ML Device +# David Reed <--none---> +ctf 84/udp # Common Trace Facility +ctf 84/tcp # Common Trace Facility +# Hugh Thomas +mit-ml-dev 85/udp # MIT ML Device +mit-ml-dev 85/tcp # MIT ML Device +# David Reed <--none---> +mfcobol 86/udp # Micro Focus Cobol +mfcobol 86/tcp # Micro Focus Cobol +# Simon Edwards <--none---> + 87/udp # any private terminal link + 87/tcp # any private terminal link +# Jon Postel +kerberos 88/udp # Kerberos +kerberos 88/tcp # Kerberos +# B. Clifford Neuman +su-mit-tg 89/udp # SU/MIT Telnet Gateway +su-mit-tg 89/tcp # SU/MIT Telnet Gateway +# Mark Crispin +########### PORT 90 also being used unofficially by Pointcast ######### +dnsix 90/udp # DNSIX Securit Attribute Token Map +dnsix 90/tcp # DNSIX Securit Attribute Token Map +# Charles Watt +mit-dov 91/udp # MIT Dover Spooler +mit-dov 91/tcp # MIT Dover Spooler +# Eliot Moss +npp 92/udp # Network Printing Protocol +npp 92/tcp # Network Printing Protocol +# Louis Mamakos +dcp 93/udp # Device Control Protocol +dcp 93/tcp # Device Control Protocol +# Daniel Tappan +objcall 94/udp # Tivoli Object Dispatcher +objcall 94/tcp # Tivoli Object Dispatcher +# Tom Bereiter <--none---> +supdup 95/udp # SUPDUP +supdup 95/tcp # SUPDUP +# Mark Crispin +dixie 96/udp # DIXIE Protocol Specification +dixie 96/tcp # DIXIE Protocol Specification +# Tim Howes +swift-rvf 97/udp # Swift Remote Virtural File Protocol +swift-rvf 97/tcp # Swift Remote Virtural File Protocol +# Maurice R. Turcotte +# +tacnews 98/udp # TAC News +tacnews 98/tcp # TAC News +# Jon Postel +metagram 99/udp # Metagram Relay +metagram 99/tcp # Metagram Relay +# Geoff Goodfellow +newacct 100/tcp # [unauthorized use] +hostname 101/udp # NIC Host Name Server +hostname 101/tcp # NIC Host Name Server +# Jon Postel +iso-tsap 102/udp # ISO-TSAP Class 0 +iso-tsap 102/tcp # ISO-TSAP Class 0 +# Marshall Rose +gppitnp 103/udp # Genesis Point-to-Point Trans Net +gppitnp 103/tcp # Genesis Point-to-Point Trans Net +acr-nema 104/udp # ACR-NEMA Digital Imag. & Comm. 300 +acr-nema 104/tcp # ACR-NEMA Digital Imag. & Comm. 300 +# Patrick McNamee <--none---> +cso 105/udp # CCSO name server protocol +cso 105/tcp # CCSO name server protocol +# Martin Hamilton +csnet-ns 105/udp # Mailbox Name Nameserver +csnet-ns 105/tcp # Mailbox Name Nameserver +# Marvin Solomon +3com-tsmux 106/udp # 3COM-TSMUX +3com-tsmux 106/tcp # 3COM-TSMUX +# Jeremy Siegel +########## 106 Unauthorized use by insecure poppassd protocol +rtelnet 107/udp # Remote Telnet Service +rtelnet 107/tcp # Remote Telnet Service +# Jon Postel +snagas 108/udp # SNA Gateway Access Server +snagas 108/tcp # SNA Gateway Access Server +# Kevin Murphy +pop2 109/udp # Post Office Protocol - Version 2 +pop2 109/tcp # Post Office Protocol - Version 2 +# Joyce K. Reynolds +pop3 110/udp # Post Office Protocol - Version 3 +pop3 110/tcp # Post Office Protocol - Version 3 +# Marshall Rose +sunrpc 111/udp # SUN Remote Procedure Call +sunrpc 111/tcp # SUN Remote Procedure Call +# Chuck McManis +mcidas 112/udp # McIDAS Data Transmission Protocol +mcidas 112/tcp # McIDAS Data Transmission Protocol +# Glenn Davis +auth 113/udp # Authentication Service +auth 113/tcp ident # +# Mike St. Johns +audionews 114/udp # Audio News Multicast +audionews 114/tcp # Audio News Multicast +# Martin Forssen +sftp 115/udp # Simple File Transfer Protocol +sftp 115/tcp # Simple File Transfer Protocol +# Mark Lottor +ansanotify 116/udp # ANSA REX Notify +ansanotify 116/tcp # ANSA REX Notify +# Nicola J. Howarth +uucp-path 117/udp # UUCP Path Service +uucp-path 117/tcp # UUCP Path Service +sqlserv 118/udp # SQL Services +sqlserv 118/tcp # SQL Services +# Larry Barnes +nntp 119/udp # Network News Transfer Protocol +nntp 119/tcp # Network News Transfer Protocol +# Phil Lapsley +cfdptkt 120/udp # CFDPTKT +cfdptkt 120/tcp # CFDPTKT +# John Ioannidis +erpc 121/udp # Encore Expedited Remote Pro.Call +erpc 121/tcp # Encore Expedited Remote Pro.Call +# Jack O'Neil <---none---> +smakynet 122/udp # SMAKYNET +smakynet 122/tcp # SMAKYNET +# Pierre Arnaud +ntp 123/udp # Network Time Protocol +ntp 123/tcp # Network Time Protocol +# Dave Mills +ansatrader 124/udp # ANSA REX Trader +ansatrader 124/tcp # ANSA REX Trader +# Nicola J. Howarth +locus-map 125/udp # Locus PC-Interface Net Map Ser +locus-map 125/tcp # Locus PC-Interface Net Map Ser +# Eric Peterson +nxedit 126/udp # NXEdit +nxedit 126/tcp # NXEdit +# Don Payette +###########Port 126 Previously assigned to application below####### +#unitary 126/tcp Unisys Unitary Login +#unitary 126/udp Unisys Unitary Login +# +###########Port 126 Previously assigned to application above####### +locus-con 127/udp # Locus PC-Interface Conn Server +locus-con 127/tcp # Locus PC-Interface Conn Server +# Eric Peterson +gss-xlicen 128/udp # GSS X License Verification +gss-xlicen 128/tcp # GSS X License Verification +# John Light +pwdgen 129/udp # Password Generator Protocol +pwdgen 129/tcp # Password Generator Protocol +# Frank J. Wacho +cisco-fna 130/udp # cisco FNATIVE +cisco-fna 130/tcp # cisco FNATIVE +cisco-tna 131/udp # cisco TNATIVE +cisco-tna 131/tcp # cisco TNATIVE +cisco-sys 132/udp # cisco SYSMAINT +cisco-sys 132/tcp # cisco SYSMAINT +statsrv 133/udp # Statistics Service +statsrv 133/tcp # Statistics Service +# Dave Mills +ingres-net 134/udp # INGRES-NET Service +ingres-net 134/tcp # INGRES-NET Service +# Mike Berrow <---none---> +epmap 135/udp # DCE endpoint resolution +epmap 135/tcp # DCE endpoint resolution +# Joe Pato +profile 136/udp # PROFILE Naming System +profile 136/tcp # PROFILE Naming System +# Larry Peterson +netbios-ns 137/udp # NETBIOS Name Service +netbios-ns 137/tcp # NETBIOS Name Service +netbios-dgm 138/udp # NETBIOS Datagram Service +netbios-dgm 138/tcp # NETBIOS Datagram Service +netbios-ssn 139/udp # NETBIOS Session Service +netbios-ssn 139/tcp # NETBIOS Session Service +# Jon Postel +emfis-data 140/udp # EMFIS Data Service +emfis-data 140/tcp # EMFIS Data Service +emfis-cntl 141/udp # EMFIS Control Service +emfis-cntl 141/tcp # EMFIS Control Service +# Gerd Beling +bl-idm 142/udp # Britton-Lee IDM +bl-idm 142/tcp # Britton-Lee IDM +# Susie Snitzer <---none---> +imap 143/udp # Internet Message Access Protocol +imap 143/tcp # Internet Message Access Protocol +# Mark Crispin +uma 144/udp # Universal Management Architecture +uma 144/tcp # Universal Management Architecture +# Jay Whitney +uaac 145/udp # UAAC Protocol +uaac 145/tcp # UAAC Protocol +# David A. Gomberg +iso-tp0 146/udp # ISO-IP0 +iso-tp0 146/tcp # ISO-IP0 +iso-ip 147/udp # ISO-IP +iso-ip 147/tcp # ISO-IP +# Marshall Rose +jargon 148/udp # Jargon +jargon 148/tcp # Jargon +# Bill Weinman +aed-512 149/udp # AED 512 Emulation Service +aed-512 149/tcp # AED 512 Emulation Service +# Albert G. Broscius +sql-net 150/udp # SQL-NET +sql-net 150/tcp # SQL-NET +# Martin Picard <<---none---> +hems 151/udp # HEMS +hems 151/tcp # HEMS +bftp 152/udp # Background File Transfer Program +bftp 152/tcp # Background File Transfer Program +# Annette DeSchon +sgmp 153/udp # SGMP +sgmp 153/tcp # SGMP +# Marty Schoffstahl +netsc-prod 154/udp # NETSC +netsc-prod 154/tcp # NETSC +netsc-dev 155/udp # NETSC +netsc-dev 155/tcp # NETSC +# Sergio Heker +sqlsrv 156/udp # SQL Service +sqlsrv 156/tcp # SQL Service +# Craig Rogers +knet-cmp 157/udp # KNET/VM Command/Message Protocol +knet-cmp 157/tcp # KNET/VM Command/Message Protocol +# Gary S. Malkin +pcmail-srv 158/udp # PCMail Server +pcmail-srv 158/tcp # PCMail Server +# Mark L. Lambert +nss-routing 159/udp # NSS-Routing +nss-routing 159/tcp # NSS-Routing +# Yakov Rekhter +sgmp-traps 160/udp # SGMP-TRAPS +sgmp-traps 160/tcp # SGMP-TRAPS +# Marty Schoffstahl +snmp 161/udp # SNMP +snmp 161/tcp # SNMP +snmptrap 162/udp # SNMPTRAP +snmptrap 162/tcp # SNMPTRAP +# Marshall Rose +cmip-man 163/udp # CMIP/TCP Manager +cmip-man 163/tcp # CMIP/TCP Manager +cmip-agent 164/udp # CMIP/TCP Agent +cmip-agent 164/tcp # CMIP/TCP Agent +# Amatzia Ben-Artzi <---none---> +xns-courier 165/udp # Xerox +xns-courier 165/tcp # Xerox +# Susie Armstrong +s-net 166/udp # Sirius Systems +s-net 166/tcp # Sirius Systems +# Brian Lloyd +namp 167/udp # NAMP +namp 167/tcp # NAMP +# Marty Schoffstahl +rsvd 168/udp # RSVD +rsvd 168/tcp # RSVD +# Neil Todd +send 169/udp # SEND +send 169/tcp # SEND +# William D. Wisner +print-srv 170/udp # Network PostScript +print-srv 170/tcp # Network PostScript +# Brian Reid +multiplex 171/udp # Network Innovations Multiplex +multiplex 171/tcp # Network Innovations Multiplex +cl/1 172/udp # Network Innovations CL/1 +cl/1 172/tcp # Network Innovations CL/1 +# Kevin DeVault <<---none---> +xyplex-mux 173/udp # Xyplex +xyplex-mux 173/tcp # Xyplex +# Bob Stewart +mailq 174/udp # MAILQ +mailq 174/tcp # MAILQ +# Rayan Zachariassen +vmnet 175/udp # VMNET +vmnet 175/tcp # VMNET +# Christopher Tengi +genrad-mux 176/udp # GENRAD-MUX +genrad-mux 176/tcp # GENRAD-MUX +# Ron Thornton +xdmcp 177/udp # X Display Manager Control Protocol +xdmcp 177/tcp # X Display Manager Control Protocol +# Robert W. Scheifler +nextstep 178/udp # NextStep Window Server +nextstep 178/tcp # NextStep Window Server +# Leo Hourvitz +bgp 179/udp # Border Gateway Protocol +bgp 179/tcp # Border Gateway Protocol +# Kirk Lougheed +ris 180/udp # Intergraph +ris 180/tcp # Intergraph +# Dave Buehmann +unify 181/udp # Unify +unify 181/tcp # Unify +# Mark Ainsley +audit 182/udp # Unisys Audit SITP +audit 182/tcp # Unisys Audit SITP +# Gil Greenbaum +ocbinder 183/udp # OCBinder +ocbinder 183/tcp # OCBinder +ocserver 184/udp # OCServer +ocserver 184/tcp # OCServer +# Jerrilynn Okamura <--none---> +remote-kis 185/udp # Remote-KIS +remote-kis 185/tcp # Remote-KIS +kis 186/udp # KIS Protocol +kis 186/tcp # KIS Protocol +# Ralph Droms +aci 187/udp # Application Communication Interface +aci 187/tcp # Application Communication Interface +# Rick Carlos +mumps 188/udp # Plus Five's MUMPS +mumps 188/tcp # Plus Five's MUMPS +# Hokey Stenn +qft 189/udp # Queued File Transport +qft 189/tcp # Queued File Transport +# Wayne Schroeder +gacp 190/udp # Gateway Access Control Protocol +gacp 190/tcp # Gateway Access Control Protocol +# C. Philip Wood +prospero 191/udp # Prospero Directory Service +prospero 191/tcp # Prospero Directory Service +# B. Clifford Neuman +osu-nms 192/udp # OSU Network Monitoring System +osu-nms 192/tcp # OSU Network Monitoring System +# Doug Karl +srmp 193/udp # Spider Remote Monitoring Protocol +srmp 193/tcp # Spider Remote Monitoring Protocol +# Ted J. Socolofsky +irc 194/udp # Internet Relay Chat Protocol +irc 194/tcp # Internet Relay Chat Protocol +# Jarkko Oikarinen +dn6-nlm-aud 195/udp # DNSIX Network Level Module Audit +dn6-nlm-aud 195/tcp # DNSIX Network Level Module Audit +dn6-smm-red 196/udp # DNSIX Session Mgt Module Audit Redir +dn6-smm-red 196/tcp # DNSIX Session Mgt Module Audit Redir +# Lawrence Lebahn +dls 197/udp # Directory Location Service +dls 197/tcp # Directory Location Service +dls-mon 198/udp # Directory Location Service Monitor +dls-mon 198/tcp # Directory Location Service Monitor +# Scott Bellew +smux 199/udp # SMUX +smux 199/tcp # SMUX +# Marshall Rose +src 200/udp # IBM System Resource Controller +src 200/tcp # IBM System Resource Controller +# Gerald McBrearty <---none---> +at-rtmp 201/udp # AppleTalk Routing Maintenance +at-rtmp 201/tcp # AppleTalk Routing Maintenance +at-nbp 202/udp # AppleTalk Name Binding +at-nbp 202/tcp # AppleTalk Name Binding +at-3 203/udp # AppleTalk Unused +at-3 203/tcp # AppleTalk Unused +at-echo 204/udp # AppleTalk Echo +at-echo 204/tcp # AppleTalk Echo +at-5 205/udp # AppleTalk Unused +at-5 205/tcp # AppleTalk Unused +at-zis 206/udp # AppleTalk Zone Information +at-zis 206/tcp # AppleTalk Zone Information +at-7 207/udp # AppleTalk Unused +at-7 207/tcp # AppleTalk Unused +at-8 208/udp # AppleTalk Unused +at-8 208/tcp # AppleTalk Unused +# Rob Chandhok +qmtp 209/udp # The Quick Mail Transfer Protocol +qmtp 209/tcp # The Quick Mail Transfer Protocol +# Dan Bernstein +z39.50 210/udp # ANSI Z39.50 +z39.50 210/tcp # ANSI Z39.50 +# Mark H. Needleman +914c/g 211/udp # Texas Instruments 914C/G Terminal +914c/g 211/tcp # Texas Instruments 914C/G Terminal +# Bill Harrell <---none---> +anet 212/udp # ATEXSSTR +anet 212/tcp # ATEXSSTR +# Jim Taylor +ipx 213/udp # IPX +ipx 213/tcp # IPX +# Don Provan +vmpwscs 214/udp # VM PWSCS +vmpwscs 214/tcp # VM PWSCS +# Dan Shia +softpc 215/udp # Insignia Solutions +softpc 215/tcp # Insignia Solutions +# Martyn Thomas <---none---> +CAIlic 216/udp # Computer Associates Int'l License Server +CAIlic 216/tcp # Computer Associates Int'l License Server +# Chuck Spitz +dbase 217/udp # dBASE Unix +dbase 217/tcp # dBASE Unix +# Don Gibson +# +mpp 218/udp # Netix Message Posting Protocol +mpp 218/tcp # Netix Message Posting Protocol +# Shannon Yeh +uarps 219/udp # Unisys ARPs +uarps 219/tcp # Unisys ARPs +# Ashok Marwaha <---none---> +imap3 220/udp # Interactive Mail Access Protocol v3 +imap3 220/tcp # Interactive Mail Access Protocol v3 +# James Rice +fln-spx 221/udp # Berkeley rlogind with SPX auth +fln-spx 221/tcp # Berkeley rlogind with SPX auth +rsh-spx 222/udp # Berkeley rshd with SPX auth +rsh-spx 222/tcp # Berkeley rshd with SPX auth +cdc 223/udp # Certificate Distribution Center +cdc 223/tcp # Certificate Distribution Center +# Kannan Alagappan +########### Possible Conflict of Port 222 with "Masqdialer"############## +### Contact for Masqdialer is Charles Wright ### +masqdialer 224/udp # masqdialer +masqdialer 224/tcp # masqdialer +# Charles Wright +# 225-241 Reserved +# Jon Postel +direct 242/udp # Direct +direct 242/tcp # Direct +# Herb Sutter +sur-meas 243/udp # Survey Measurement +sur-meas 243/tcp # Survey Measurement +# Dave Clark +inbusiness 244/udp # inbusiness +inbusiness 244/tcp # inbusiness +# Derrick Hisatake +link 245/udp # LINK +link 245/tcp # LINK +dsp3270 246/udp # Display Systems Protocol +dsp3270 246/tcp # Display Systems Protocol +# Weldon J. Showalter +subntbcst_tftp 247/udp # SUBNTBCST_TFTP +subntbcst_tftp 247/tcp # SUBNTBCST_TFTP +# John Fake +bhfhs 248/udp # bhfhs +bhfhs 248/tcp # bhfhs +# John Kelly +# 249-255 Reserved +# Jon Postel +rap 256/udp # RAP +rap 256/tcp # RAP +# J.S. Greenfield +set 257/udp # Secure Electronic Transaction +set 257/tcp # Secure Electronic Transaction +# Donald Eastlake +yak-chat 258/udp # Yak Winsock Personal Chat +yak-chat 258/tcp # Yak Winsock Personal Chat +# Brian Bandy +esro-gen 259/udp # Efficient Short Remote Operations +esro-gen 259/tcp # Efficient Short Remote Operations +# Mohsen Banan +openport 260/udp # Openport +openport 260/tcp # Openport +# John Marland +nsiiops 261/udp # IIOP Name Service over TLS/SSL +nsiiops 261/tcp # IIOP Name Service over TLS/SSL +# Jeff Stewart +arcisdms 262/udp # Arcisdms +arcisdms 262/tcp # Arcisdms +# Russell Crook (rmc@sni.ca> +hdap 263/udp # HDAP +hdap 263/tcp # HDAP +# Troy Gau +bgmp 264/udp # BGMP +bgmp 264/tcp # BGMP +# Dave Thaler +x-bone-ctl 265/udp # X-Bone CTL +x-bone-ctl 265/tcp # X-Bone CTL +# Joe Touch +sst 266/udp # SCSI on ST +sst 266/tcp # SCSI on ST +# Donald D. Woelz +td-service 267/udp # Tobit David Service Layer +td-service 267/tcp # Tobit David Service Layer +td-replica 268/udp # Tobit David Replica +td-replica 268/tcp # Tobit David Replica +# Franz-Josef Leuders +# 269-279 Unassigned +http-mgmt 280/udp # http-mgmt +http-mgmt 280/tcp # http-mgmt +# Adrian Pell +# +personal-link 281/udp # Personal Link +personal-link 281/tcp # Personal Link +# Dan Cummings +cableport-ax 282/udp # Cable Port A/X +cableport-ax 282/tcp # Cable Port A/X +# Craig Langfahl +rescap 283/udp # rescap +rescap 283/tcp # rescap +# Paul Hoffman +corerjd 284/udp # corerjd +corerjd 284/tcp # corerjd +# Chris Thornhill +# 285 Unassigned +fxp-1 286/udp # FXP-1 +fxp-1 286/tcp # FXP-1 +# James Darnall +k-block 287/udp # K-BLOCK +k-block 287/tcp # K-BLOCK +# Simon P Jackson +# 288-307 Unassigned +novastorbakcup 308/udp # Novastor Backup +novastorbakcup 308/tcp # Novastor Backup +# Brian Dickman +entrusttime 309/udp # EntrustTime +entrusttime 309/tcp # EntrustTime +# Peter Whittaker +bhmds 310/udp # bhmds +bhmds 310/tcp # bhmds +# John Kelly +asip-webadmin 311/udp # AppleShare IP WebAdmin +asip-webadmin 311/tcp # AppleShare IP WebAdmin +# Ann Huang +vslmp 312/udp # VSLMP +vslmp 312/tcp # VSLMP +# Gerben Wierda +magenta-logic 313/udp # Magenta Logic +magenta-logic 313/tcp # Magenta Logic +# Karl Rousseau +opalis-robot 314/udp # Opalis Robot +opalis-robot 314/tcp # Opalis Robot +# Laurent Domenech, Opalis +dpsi 315/udp # DPSI +dpsi 315/tcp # DPSI +# Tony Scamurra +decauth 316/udp # decAuth +decauth 316/tcp # decAuth +# Michael Agishtein +zannet 317/udp # Zannet +zannet 317/tcp # Zannet +# Zan Oliphant +pkix-timestamp 318/udp # PKIX TimeStamp +pkix-timestamp 318/tcp # PKIX TimeStamp +# Robert Zuccherato +ptp-event 319/udp # PTP Event +ptp-event 319/tcp # PTP Event +ptp-general 320/udp # PTP General +ptp-general 320/tcp # PTP General +# John Eidson +pip 321/udp # PIP +pip 321/tcp # PIP +# Gordon Mohr +rtsps 322/udp # RTSPS +rtsps 322/tcp # RTSPS +# Anders Klemets +# 323-332 Unassigned +texar 333/udp # Texar Security Port +texar 333/tcp # Texar Security Port +# Eugen Bacic +# 334-343 Unassigned +pdap 344/udp # Prospero Data Access Protocol +pdap 344/tcp # Prospero Data Access Protocol +# B. Clifford Neuman +pawserv 345/udp # Perf Analysis Workbench +pawserv 345/tcp # Perf Analysis Workbench +zserv 346/udp # Zebra server +zserv 346/tcp # Zebra server +fatserv 347/udp # Fatmen Server +fatserv 347/tcp # Fatmen Server +csi-sgwp 348/udp # Cabletron Management Protocol +csi-sgwp 348/tcp # Cabletron Management Protocol +mftp 349/udp # mftp +mftp 349/tcp # mftp +# Dave Feinleib +matip-type-a 350/udp # MATIP Type A +matip-type-a 350/tcp # MATIP Type A +matip-type-b 351/udp # MATIP Type B +matip-type-b 351/tcp # MATIP Type B +# Alain Robert +# The following entry records an unassigned but widespread use +bhoetty 351/udp # bhoetty +bhoetty 351/tcp # bhoetty (added 5/21/97) +# John Kelly +dtag-ste-sb 352/udp # DTAG +dtag-ste-sb 352/tcp # DTAG (assigned long ago) +# Ruediger Wald +# The following entry records an unassigned but widespread use +bhoedap4 352/udp # bhoedap4 +bhoedap4 352/tcp # bhoedap4 (added 5/21/97) +# John Kelly +ndsauth 353/udp # NDSAUTH +ndsauth 353/tcp # NDSAUTH +# Jayakumar Ramalingam +bh611 354/udp # bh611 +bh611 354/tcp # bh611 +# John Kelly +datex-asn 355/udp # DATEX-ASN +datex-asn 355/tcp # DATEX-ASN +# Kenneth Vaughn +cloanto-net-1 356/udp # Cloanto Net 1 +cloanto-net-1 356/tcp # Cloanto Net 1 +# Michael Battilana +bhevent 357/udp # bhevent +bhevent 357/tcp # bhevent +# John Kelly +shrinkwrap 358/udp # Shrinkwrap +shrinkwrap 358/tcp # Shrinkwrap +# Bill Simpson +nsrmp 359/udp # Network Security Risk Management Protocol +nsrmp 359/tcp # Network Security Risk Management Protocol +# Eric Jacksch +scoi2odialog 360/udp # scoi2odialog +scoi2odialog 360/tcp # scoi2odialog +# Keith Petley +semantix 361/udp # Semantix +semantix 361/tcp # Semantix +# Semantix +srssend 362/udp # SRS Send +srssend 362/tcp # SRS Send +# Curt Mayer +rsvp_tunnel 363/udp # RSVP Tunnel +rsvp_tunnel 363/tcp # RSVP Tunnel +# Andreas Terzis +aurora-cmgr 364/udp # Aurora CMGR +aurora-cmgr 364/tcp # Aurora CMGR +# Philip Budne +dtk 365/udp # DTK +dtk 365/tcp # DTK +# Fred Cohen +odmr 366/udp # ODMR +odmr 366/tcp # ODMR +# Randall Gellens +mortgageware 367/udp # MortgageWare +mortgageware 367/tcp # MortgageWare +# Ole Hellevik +qbikgdp 368/udp # QbikGDP +qbikgdp 368/tcp # QbikGDP +# Adrien de Croy +rpc2portmap 369/udp # rpc2portmap +rpc2portmap 369/tcp # rpc2portmap +codaauth2 370/udp # codaauth2 +codaauth2 370/tcp # codaauth2 +# Robert Watson +clearcase 371/udp # Clearcase +clearcase 371/tcp # Clearcase +# Dave LeBlang +ulistproc 372/udp # ListProcessor +ulistproc 372/tcp # ListProcessor +# Anastasios Kotsikonas +legent-1 373/udp # Legent Corporation +legent-1 373/tcp # Legent Corporation +legent-2 374/udp # Legent Corporation +legent-2 374/tcp # Legent Corporation +# Keith Boyce <---none---> +hassle 375/udp # Hassle +hassle 375/tcp # Hassle +# Reinhard Doelz +nip 376/udp # Amiga Envoy Network Inquiry Proto +nip 376/tcp # Amiga Envoy Network Inquiry Proto +# Heinz Wrobel +tnETOS 377/udp # NEC Corporation +tnETOS 377/tcp # NEC Corporation +dsETOS 378/udp # NEC Corporation +dsETOS 378/tcp # NEC Corporation +# Tomoo Fujita +is99c 379/udp # TIA/EIA/IS-99 modem client +is99c 379/tcp # TIA/EIA/IS-99 modem client +is99s 380/udp # TIA/EIA/IS-99 modem server +is99s 380/tcp # TIA/EIA/IS-99 modem server +# Frank Quick +hp-collector 381/udp # hp performance data collector +hp-collector 381/tcp # hp performance data collector +hp-managed-node 382/udp # hp performance data managed node +hp-managed-node 382/tcp # hp performance data managed node +hp-alarm-mgr 383/udp # hp performance data alarm manager +hp-alarm-mgr 383/tcp # hp performance data alarm manager +# Frank Blakely +arns 384/udp # A Remote Network Server System +arns 384/tcp # A Remote Network Server System +# David Hornsby +ibm-app 385/udp # IBM Application +ibm-app 385/tcp # IBM Application +# Lisa Tomita <---none---> +asa 386/udp # ASA Message Router Object Def. +asa 386/tcp # ASA Message Router Object Def. +# Steve Laitinen +aurp 387/udp # Appletalk Update-Based Routing Pro. +aurp 387/tcp # Appletalk Update-Based Routing Pro. +# Chris Ranch +unidata-ldm 388/udp # Unidata LDM +unidata-ldm 388/tcp # Unidata LDM +# Glenn Davis +ldap 389/udp # Lightweight Directory Access Protocol +ldap 389/tcp # Lightweight Directory Access Protocol +# Tim Howes +uis 390/udp # UIS +uis 390/tcp # UIS +# Ed Barron <---none---> +synotics-relay 391/udp # SynOptics SNMP Relay Port +synotics-relay 391/tcp # SynOptics SNMP Relay Port +synotics-broker 392/udp # SynOptics Port Broker Port +synotics-broker 392/tcp # SynOptics Port Broker Port +# Illan Raab +meta5 393/udp # Meta5 +meta5 393/tcp # Meta5 +# Jim Kanzler +embl-ndt 394/udp # EMBL Nucleic Data Transfer +embl-ndt 394/tcp # EMBL Nucleic Data Transfer +# Peter Gad +netcp 395/udp # NETscout Control Protocol +netcp 395/tcp # NETscout Control Protocol +# Anil Singhal <---none---> +netware-ip 396/udp # Novell Netware over IP +netware-ip 396/tcp # Novell Netware over IP +mptn 397/udp # Multi Protocol Trans. Net. +mptn 397/tcp # Multi Protocol Trans. Net. +# Soumitra Sarkar +kryptolan 398/udp # Kryptolan +kryptolan 398/tcp # Kryptolan +# Peter de Laval +iso-tsap-c2 399/udp # ISO Transport Class 2 Non-Control over UDP +iso-tsap-c2 399/tcp # ISO Transport Class 2 Non-Control over TCP +# Yanick Pouffary +work-sol 400/udp # Workstation Solutions +work-sol 400/tcp # Workstation Solutions +# Jim Ward +ups 401/udp # Uninterruptible Power Supply +ups 401/tcp # Uninterruptible Power Supply +# Charles Bennett +genie 402/udp # Genie Protocol +genie 402/tcp # Genie Protocol +# Mark Hankin <---none---> +decap 403/udp # decap +decap 403/tcp # decap +nced 404/udp # nced +nced 404/tcp # nced +ncld 405/udp # ncld +ncld 405/tcp # ncld +# Richard Jones <---none---> +imsp 406/udp # Interactive Mail Support Protocol +imsp 406/tcp # Interactive Mail Support Protocol +# John Myers +timbuktu 407/udp # Timbuktu +timbuktu 407/tcp # Timbuktu +# Marc Epard +prm-sm 408/udp # Prospero Resource Manager Sys. Man. +prm-sm 408/tcp # Prospero Resource Manager Sys. Man. +prm-nm 409/udp # Prospero Resource Manager Node Man. +prm-nm 409/tcp # Prospero Resource Manager Node Man. +# B. Clifford Neuman +decladebug 410/udp # DECLadebug Remote Debug Protocol +decladebug 410/tcp # DECLadebug Remote Debug Protocol +# Anthony Berent +rmt 411/udp # Remote MT Protocol +rmt 411/tcp # Remote MT Protocol +# Peter Eriksson +synoptics-trap 412/udp # Trap Convention Port +synoptics-trap 412/tcp # Trap Convention Port +# Illan Raab +smsp 413/udp # Storage Management Services Protocol +smsp 413/tcp # Storage Management Services Protocol +# Murthy Srinivas +infoseek 414/udp # InfoSeek +infoseek 414/tcp # InfoSeek +# Steve Kirsch +bnet 415/udp # BNet +bnet 415/tcp # BNet +# Jim Mertz +silverplatter 416/udp # Silverplatter +silverplatter 416/tcp # Silverplatter +# Peter Ciuffetti +onmux 417/udp # Onmux +onmux 417/tcp # Onmux +# Stephen Hanna +hyper-g 418/udp # Hyper-G +hyper-g 418/tcp # Hyper-G +# Frank Kappe +ariel1 419/udp # Ariel 1 +ariel1 419/tcp # Ariel 1 +# Joel Karafin +smpte 420/udp # SMPTE +smpte 420/tcp # SMPTE +# Si Becker <71362.22@CompuServe.COM> +ariel2 421/udp # Ariel 2 +ariel2 421/tcp # Ariel 2 +ariel3 422/udp # Ariel 3 +ariel3 422/tcp # Ariel 3 +# Joel Karafin +opc-job-start 423/udp # IBM Operations Planning and Control Start +opc-job-start 423/tcp # IBM Operations Planning and Control Start +opc-job-track 424/udp # IBM Operations Planning and Control Track +opc-job-track 424/tcp # IBM Operations Planning and Control Track +# Conny Larsson +icad-el 425/udp # ICAD +icad-el 425/tcp # ICAD +# Larry Stone +smartsdp 426/udp # smartsdp +smartsdp 426/tcp # smartsdp +# Alexander Dupuy +svrloc 427/udp # Server Location +svrloc 427/tcp # Server Location +# +ocs_cmu 428/udp # OCS_CMU +ocs_cmu 428/tcp # OCS_CMU +ocs_amu 429/udp # OCS_AMU +ocs_amu 429/tcp # OCS_AMU +# Florence Wyman +utmpsd 430/udp # UTMPSD +utmpsd 430/tcp # UTMPSD +utmpcd 431/udp # UTMPCD +utmpcd 431/tcp # UTMPCD +iasd 432/udp # IASD +iasd 432/tcp # IASD +# Nir Baroz +nnsp 433/udp # NNSP +nnsp 433/tcp # NNSP +# Rob Robertson +mobileip-agent 434/udp # MobileIP-Agent +mobileip-agent 434/tcp # MobileIP-Agent +mobilip-mn 435/udp # MobilIP-MN +mobilip-mn 435/tcp # MobilIP-MN +# Kannan Alagappan +dna-cml 436/udp # DNA-CML +dna-cml 436/tcp # DNA-CML +# Dan Flowers +comscm 437/udp # comscm +comscm 437/tcp # comscm +# Jim Teague +dsfgw 438/udp # dsfgw +dsfgw 438/tcp # dsfgw +# Andy McKeen +dasp 439/udp # dasp tommy@inlab.m.eunet.de +dasp 439/tcp # dasp Thomas Obermair +# Thomas Obermair +sgcp 440/udp # sgcp +sgcp 440/tcp # sgcp +# Marshall Rose +decvms-sysmgt 441/udp # decvms-sysmgt +decvms-sysmgt 441/tcp # decvms-sysmgt +# Lee Barton +cvc_hostd 442/udp # cvc_hostd +cvc_hostd 442/tcp # cvc_hostd +# Bill Davidson +https 443/udp # http protocol over TLS/SSL +https 443/tcp # http protocol over TLS/SSL +# Kipp E.B. Hickman +snpp 444/udp # Simple Network Paging Protocol +snpp 444/tcp # Simple Network Paging Protocol +# [RFC1568] +microsoft-ds 445/udp # Microsoft-DS +microsoft-ds 445/tcp # Microsoft-DS +# Pradeep Bahl +ddm-rdb 446/udp # DDM-RDB +ddm-rdb 446/tcp # DDM-RDB +ddm-dfm 447/udp # DDM-RFM +ddm-dfm 447/tcp # DDM-RFM +# Jan David Fisher +ddm-ssl 448/udp # DDM-SSL +ddm-ssl 448/tcp # DDM-SSL +# Steve Ritland +as-servermap 449/udp # AS Server Mapper +as-servermap 449/tcp # AS Server Mapper +# Barbara Foss +tserver 450/udp # Computer Supported Telecomunication Applications +tserver 450/tcp # Computer Supported Telecomunication Applications +# Harvey S. Schultz +sfs-smp-net 451/udp # Cray Network Semaphore server +sfs-smp-net 451/tcp # Cray Network Semaphore server +sfs-config 452/udp # Cray SFS config server +sfs-config 452/tcp # Cray SFS config server +# Walter Poxon +creativeserver 453/udp # CreativeServer +creativeserver 453/tcp # CreativeServer +contentserver 454/udp # ContentServer +contentserver 454/tcp # ContentServer +creativepartnr 455/udp # CreativePartnr +creativepartnr 455/tcp # CreativePartnr +# Jesus Ortiz +macon-udp 456/udp # macon-udp +macon-tcp 456/tcp # macon-tcp +# Yoshinobu Inoue +# +scohelp 457/udp # scohelp +scohelp 457/tcp # scohelp +# Faith Zack +appleqtc 458/udp # apple quick time +appleqtc 458/tcp # apple quick time +# Murali Ranganathan +# +ampr-rcmd 459/udp # ampr-rcmd +ampr-rcmd 459/tcp # ampr-rcmd +# Rob Janssen +skronk 460/udp # skronk +skronk 460/tcp # skronk +# Henry Strickland +datasurfsrv 461/udp # DataRampSrv +datasurfsrv 461/tcp # DataRampSrv +datasurfsrvsec 462/udp # DataRampSrvSec +datasurfsrvsec 462/tcp # DataRampSrvSec +# Diane Downie +alpes 463/udp # alpes +alpes 463/tcp # alpes +# Alain Durand +kpasswd 464/udp # kpasswd +kpasswd 464/tcp # kpasswd +# Theodore Ts'o +igmpv3lite 465/udp # IGMP over UDP for SSM +urd 465/tcp # URL Rendesvous Directory for SSM +# Toerless Eckert +digital-vrc 466/udp # digital-vrc +digital-vrc 466/tcp # digital-vrc +# Peter Higginson +mylex-mapd 467/udp # mylex-mapd +mylex-mapd 467/tcp # mylex-mapd +# Gary Lewis +photuris 468/udp # proturis +photuris 468/tcp # proturis +# Bill Simpson +rcp 469/udp # Radio Control Protocol +rcp 469/tcp # Radio Control Protocol +# Jim Jennings +1-708-538-7241 +scx-proxy 470/udp # scx-proxy +scx-proxy 470/tcp # scx-proxy +# Scott Narveson +mondex 471/udp # Mondex +mondex 471/tcp # Mondex +# Bill Reding +ljk-login 472/udp # ljk-login +ljk-login 472/tcp # ljk-login +# LJK Software, Cambridge, Massachusetts +# +hybrid-pop 473/udp # hybrid-pop +hybrid-pop 473/tcp # hybrid-pop +# Rami Rubin +tn-tl-w2 474/udp # tn-tl-w2 +tn-tl-w1 474/tcp # tn-tl-w1 +# Ed Kress +tcpnethaspsrv 475/udp # tcpnethaspsrv +tcpnethaspsrv 475/tcp # tcpnethaspsrv +# Charlie Hava +tn-tl-fd1 476/udp # tn-tl-fd1 +tn-tl-fd1 476/tcp # tn-tl-fd1 +# Ed Kress +ss7ns 477/udp # ss7ns +ss7ns 477/tcp # ss7ns +# Jean-Michel URSCH +spsc 478/udp # spsc +spsc 478/tcp # spsc +# Mike Rieker +iafserver 479/udp # iafserver +iafserver 479/tcp # iafserver +iafdbase 480/udp # iafdbase +iafdbase 480/tcp # iafdbase +# ricky@solect.com +ph 481/udp # Ph service +ph 481/tcp # Ph service +# Roland Hedberg +bgs-nsi 482/udp # bgs-nsi +bgs-nsi 482/tcp # bgs-nsi +# Jon Saperia +ulpnet 483/udp # ulpnet +ulpnet 483/tcp # ulpnet +# Kevin Mooney +integra-sme 484/udp # Integra Software Management Environment +integra-sme 484/tcp # Integra Software Management Environment +# Randall Dow +powerburst 485/udp # Air Soft Power Burst +powerburst 485/tcp # Air Soft Power Burst +# +avian 486/udp # avian +avian 486/tcp # avian +# Robert Ullmann +# +saft 487/udp # saft Simple Asynchronous File Transfer +saft 487/tcp # saft Simple Asynchronous File Transfer +# Ulli Horlacher +gss-http 488/udp # gss-http +gss-http 488/tcp # gss-http +# Doug Rosenthal +nest-protocol 489/udp # nest-protocol +nest-protocol 489/tcp # nest-protocol +# Gilles Gameiro +micom-pfs 490/udp # micom-pfs +micom-pfs 490/tcp # micom-pfs +# David Misunas +go-login 491/udp # go-login +go-login 491/tcp # go-login +# Troy Morrison +ticf-1 492/udp # Transport Independent Convergence for FNA +ticf-1 492/tcp # Transport Independent Convergence for FNA +ticf-2 493/udp # Transport Independent Convergence for FNA +ticf-2 493/tcp # Transport Independent Convergence for FNA +# Mamoru Ito +pov-ray 494/udp # POV-Ray +pov-ray 494/tcp # POV-Ray +# POV-Team Co-ordinator +# +intecourier 495/udp # intecourier +intecourier 495/tcp # intecourier +# Steve Favor +pim-rp-disc 496/udp # PIM-RP-DISC +pim-rp-disc 496/tcp # PIM-RP-DISC +# Dino Farinacci +dantz 497/udp # dantz +dantz 497/tcp # dantz +# Richard Zulch +siam 498/udp # siam +siam 498/tcp # siam +# Philippe Gilbert +iso-ill 499/udp # ISO ILL Protocol +iso-ill 499/tcp # ISO ILL Protocol +# Mark H. Needleman +isakmp 500/udp # isakmp +isakmp 500/tcp # isakmp +# Mark Schertler +stmf 501/udp # STMF +stmf 501/tcp # STMF +# Alan Ungar +asa-appl-proto 502/udp # asa-appl-proto +asa-appl-proto 502/tcp # asa-appl-proto +# Dennis Dube +intrinsa 503/udp # Intrinsa +intrinsa 503/tcp # Intrinsa +# Robert Ford +citadel 504/udp # citadel +citadel 504/tcp # citadel +# Art Cancro +mailbox-lm 505/udp # mailbox-lm +mailbox-lm 505/tcp # mailbox-lm +# Beverly Moody +ohimsrv 506/udp # ohimsrv +ohimsrv 506/tcp # ohimsrv +# Scott Powell +crs 507/udp # crs +crs 507/tcp # crs +# Brad Wright +xvttp 508/udp # xvttp +xvttp 508/tcp # xvttp +# Keith J. Alphonso +snare 509/udp # snare +snare 509/tcp # snare +# Dennis Batchelder +fcp 510/udp # FirstClass Protocol +fcp 510/tcp # FirstClass Protocol +# Mike Marshburn +passgo 511/udp # PassGo +passgo 511/tcp # PassGo +# John Rainford +exec 512/tcp # remote process execution; +# authentication performed using +# passwords and UNIX login names +comsat 512/udp biff # +# of new mail received; currently +# receives messages only from +# processes on the same machine +login 513/tcp # remote login a la telnet; +# automatic authentication performed +# based on priviledged port numbers +# and distributed data bases which +# identify "authentication domains" +who 513/udp # maintains data bases showing who's +# logged in to machines on a local +# net and the load average of the +# machine +shell 514/tcp # cmd +# like exec, but automatic authentication +# is performed as for login server +syslog 514/udp # +printer 515/udp # spooler +printer 515/tcp # spooler +videotex 516/udp # videotex +videotex 516/tcp # videotex +# Daniel Mavrakis +talk 517/tcp # like tenex link, but across +# machine - unfortunately, doesn't +# use link protocol (this is actually +# just a rendezvous port from which a +# tcp connection is established) +talk 517/udp # like tenex link, but across +# machine - unfortunately, doesn't +# use link protocol (this is actually +# just a rendezvous port from which a +# tcp connection is established) +ntalk 518/udp # +ntalk 518/tcp # +utime 519/udp # unixtime +utime 519/tcp # unixtime +router 520/udp # local routing process (on site); +efs 520/tcp # extended file name server +# uses variant of Xerox NS routing +# information protocol - RIP +ripng 521/udp # ripng +ripng 521/tcp # ripng +# Robert E. Minnear +ulp 522/udp # ULP +ulp 522/tcp # ULP +# Max Morris +ibm-db2 523/udp # IBM-DB2 +ibm-db2 523/tcp # IBM-DB2 +# Peter Pau +ncp 524/udp # NCP +ncp 524/tcp # NCP +# Don Provan +timed 525/udp # timeserver +timed 525/tcp # timeserver +tempo 526/udp # newdate +tempo 526/tcp # newdate +# Unknown +stx 527/udp # Stock IXChange +stx 527/tcp # Stock IXChange +custix 528/udp # Customer IXChange +custix 528/tcp # Customer IXChange +# Ferdi Ladeira +irc-serv 529/udp # IRC-SERV +irc-serv 529/tcp # IRC-SERV +# Brian Tackett +courier 530/udp # rpc +courier 530/tcp # rpc +conference 531/udp # chat +conference 531/tcp # chat +netnews 532/udp # readnews +netnews 532/tcp # readnews +netwall 533/udp # for emergency broadcasts +netwall 533/tcp # for emergency broadcasts +mm-admin 534/udp # MegaMedia Admin +mm-admin 534/tcp # MegaMedia Admin +# Andreas Heidemann +iiop 535/udp # iiop +iiop 535/tcp # iiop +# Jeff M.Michaud +opalis-rdv 536/udp # opalis-rdv +opalis-rdv 536/tcp # opalis-rdv +# Laurent Domenech +nmsp 537/udp # Networked Media Streaming Protocol +nmsp 537/tcp # Networked Media Streaming Protocol +# Paul Santinelli Jr. +gdomap 538/udp # gdomap +gdomap 538/tcp # gdomap +# Richard Frith-Macdonald +apertus-ldp 539/udp # Apertus Technologies Load Determination +apertus-ldp 539/tcp # Apertus Technologies Load Determination +uucp 540/udp # uucpd +uucp 540/tcp # uucpd +uucp-rlogin 541/udp # uucp-rlogin +uucp-rlogin 541/tcp # uucp-rlogin +# Stuart Lynne +commerce 542/udp # commerce +commerce 542/tcp # commerce +# Randy Epstein +klogin 543/udp # +klogin 543/tcp # +kshell 544/udp # krcmd +kshell 544/tcp # krcmd +appleqtcsrvr 545/udp # appleqtcsrvr +appleqtcsrvr 545/tcp # appleqtcsrvr +# Murali Ranganathan +# +dhcpv6-client 546/udp # DHCPv6 Client +dhcpv6-client 546/tcp # DHCPv6 Client +dhcpv6-server 547/udp # DHCPv6 Server +dhcpv6-server 547/tcp # DHCPv6 Server +# Jim Bound +afpovertcp 548/udp # AFP over TCP +afpovertcp 548/tcp # AFP over TCP +# Leland Wallace +idfp 549/udp # IDFP +idfp 549/tcp # IDFP +# Ramana Kovi +new-rwho 550/udp # new-who +new-rwho 550/tcp # new-who +cybercash 551/udp # cybercash +cybercash 551/tcp # cybercash +# Donald E. Eastlake 3rd +devshr-nts 552/udp # DeviceShare +devshr-nts 552/tcp # DeviceShare +# Benjamin Rosenberg +pirp 553/udp # pirp +pirp 553/tcp # pirp +# D. J. Bernstein +rtsp 554/udp # Real Time Stream Control Protocol +rtsp 554/tcp # Real Time Stream Control Protocol +# Rob Lanphier +dsf 555/udp # +dsf 555/tcp # +remotefs 556/udp # rfs server +remotefs 556/tcp # rfs server +openvms-sysipc 557/udp # openvms-sysipc +openvms-sysipc 557/tcp # openvms-sysipc +# Alan Potter +sdnskmp 558/udp # SDNSKMP +sdnskmp 558/tcp # SDNSKMP +teedtap 559/udp # TEEDTAP +teedtap 559/tcp # TEEDTAP +# Mort Hoffman +rmonitor 560/udp # rmonitord +rmonitor 560/tcp # rmonitord +monitor 561/udp # +monitor 561/tcp # +chshell 562/udp # chcmd +chshell 562/tcp # chcmd +nntps 563/udp # nntp protocol over TLS/SSL (was snntp) +nntps 563/tcp # nntp protocol over TLS/SSL (was snntp) +# Kipp E.B. Hickman +9pfs 564/udp # plan 9 file service +9pfs 564/tcp # plan 9 file service +whoami 565/udp # whoami +whoami 565/tcp # whoami +streettalk 566/udp # streettalk +streettalk 566/tcp # streettalk +banyan-rpc 567/udp # banyan-rpc +banyan-rpc 567/tcp # banyan-rpc +# Tom Lemaire +ms-shuttle 568/udp # microsoft shuttle +ms-shuttle 568/tcp # microsoft shuttle +# Rudolph Balaz +ms-rome 569/udp # microsoft rome +ms-rome 569/tcp # microsoft rome +# Rudolph Balaz +meter 570/udp # demon +meter 570/tcp # demon +meter 571/udp # udemon +meter 571/tcp # udemon +sonar 572/udp # sonar +sonar 572/tcp # sonar +# Keith Moore +banyan-vip 573/udp # banyan-vip +banyan-vip 573/tcp # banyan-vip +# Denis Leclerc +ftp-agent 574/udp # FTP Software Agent System +ftp-agent 574/tcp # FTP Software Agent System +# Michael S. Greenberg +vemmi 575/udp # VEMMI +vemmi 575/tcp # VEMMI +# Daniel Mavrakis +ipcd 576/udp # ipcd +ipcd 576/tcp # ipcd +vnas 577/udp # vnas +vnas 577/tcp # vnas +ipdd 578/udp # ipdd +ipdd 578/tcp # ipdd +# Jay Farhat +decbsrv 579/udp # decbsrv +decbsrv 579/tcp # decbsrv +# Rudi Martin +sntp-heartbeat 580/udp # SNTP HEARTBEAT +sntp-heartbeat 580/tcp # SNTP HEARTBEAT +# Louis Mamakos +bdp 581/udp # Bundle Discovery Protocol +bdp 581/tcp # Bundle Discovery Protocol +# Gary Malkin +scc-security 582/udp # SCC Security +scc-security 582/tcp # SCC Security +# Prashant Dholakia +philips-vc 583/udp # Philips Video-Conferencing +philips-vc 583/tcp # Philips Video-Conferencing +# Janna Chang +keyserver 584/udp # Key Server +keyserver 584/tcp # Key Server +# Gary Howland +imap4-ssl 585/udp # IMAP4+SSL (use 993 instead) +imap4-ssl 585/tcp # IMAP4+SSL (use 993 instead) +# Terry Gray +# Use of 585 is not recommended, use 993 instead +password-chg 586/udp # Password Change +password-chg 586/tcp # Password Change +submission 587/udp # Submission +submission 587/tcp # Submission +# Randy Gellens +cal 588/udp # CAL +cal 588/tcp # CAL +# Myron Hattig +eyelink 589/udp # EyeLink +eyelink 589/tcp # EyeLink +# Dave Stampe +tns-cml 590/udp # TNS CML +tns-cml 590/tcp # TNS CML +# Jerome Albin +http-alt 591/udp # FileMaker, Inc. - HTTP Alternate (see Port 80) +http-alt 591/tcp # FileMaker, Inc. - HTTP Alternate (see Port 80) +# Clay Maeckel +eudora-set 592/udp # Eudora Set +eudora-set 592/tcp # Eudora Set +# Randall Gellens +http-rpc-epmap 593/udp # HTTP RPC Ep Map +http-rpc-epmap 593/tcp # HTTP RPC Ep Map +# Edward Reus +tpip 594/udp # TPIP +tpip 594/tcp # TPIP +# Brad Spear +cab-protocol 595/udp # CAB Protocol +cab-protocol 595/tcp # CAB Protocol +# Winston Hetherington +smsd 596/udp # SMSD +smsd 596/tcp # SMSD +# Wayne Barlow +ptcnameservice 597/udp # PTC Name Service +ptcnameservice 597/tcp # PTC Name Service +# Yuri Machkasov +sco-websrvrmg3 598/udp # SCO Web Server Manager 3 +sco-websrvrmg3 598/tcp # SCO Web Server Manager 3 +# Simon Baldwin +acp 599/udp # Aeolon Core Protocol +acp 599/tcp # Aeolon Core Protocol +# Michael Alyn Miller +ipcserver 600/udp # Sun IPC server +ipcserver 600/tcp # Sun IPC server +# Bill Schiefelbein +syslog-conn 601/udp # Reliable Syslog Service +syslog-conn 601/tcp # Reliable Syslog Service +# RFC 3195 +xmlrpc-beep 602/udp # XML-RPC over BEEP +xmlrpc-beep 602/tcp # XML-RPC over BEEP +# RFC3529 March 2003 +idxp 603/udp # IDXP +idxp 603/tcp # IDXP +# RFC-ietf-idwg-beep-idxp-07.txt +tunnel 604/udp # TUNNEL +tunnel 604/tcp # TUNNEL +# RFC-ietf-idwg-beep-tunnel-05.txt +soap-beep 605/udp # SOAP over BEEP +soap-beep 605/tcp # SOAP over BEEP +# RFC3288 April 2002 +urm 606/udp # Cray Unified Resource Manager +urm 606/tcp # Cray Unified Resource Manager +nqs 607/udp # nqs +nqs 607/tcp # nqs +# Bill Schiefelbein +sift-uft 608/udp # Sender-Initiated/Unsolicited File Transfer +sift-uft 608/tcp # Sender-Initiated/Unsolicited File Transfer +# Rick Troth +npmp-trap 609/udp # npmp-trap +npmp-trap 609/tcp # npmp-trap +npmp-local 610/udp # npmp-local +npmp-local 610/tcp # npmp-local +npmp-gui 611/udp # npmp-gui +npmp-gui 611/tcp # npmp-gui +# John Barnes +hmmp-ind 612/udp # HMMP Indication +hmmp-ind 612/tcp # HMMP Indication +hmmp-op 613/udp # HMMP Operation +hmmp-op 613/tcp # HMMP Operation +# Andrew Sinclair +sshell 614/udp # SSLshell +sshell 614/tcp # SSLshell +# Simon J. Gerraty +sco-inetmgr 615/udp # Internet Configuration Manager +sco-inetmgr 615/tcp # Internet Configuration Manager +sco-sysmgr 616/udp # SCO System Administration Server +sco-sysmgr 616/tcp # SCO System Administration Server +sco-dtmgr 617/udp # SCO Desktop Administration Server +sco-dtmgr 617/tcp # SCO Desktop Administration Server +# Christopher Durham +dei-icda 618/udp # DEI-ICDA +dei-icda 618/tcp # DEI-ICDA +# David Turner +compaq-evm 619/udp # Compaq EVM +compaq-evm 619/tcp # Compaq EVM +# Jem Treadwell +sco-websrvrmgr 620/udp # SCO WebServer Manager +sco-websrvrmgr 620/tcp # SCO WebServer Manager +# Christopher Durham +escp-ip 621/udp # ESCP +escp-ip 621/tcp # ESCP +# Lai Zit Seng +collaborator 622/udp # Collaborator +collaborator 622/tcp # Collaborator +# Johnson Davis +asf-rmcp 623/udp # ASF Remote Management and Control Protocol +asf-rmcp 623/tcp # ASF Remote Management and Control Protocol +# Carl First +cryptoadmin 624/udp # Crypto Admin +cryptoadmin 624/tcp # Crypto Admin +# Tony Walker +dec_dlm 625/udp # DEC DLM +dec_dlm 625/tcp # DEC DLM +# Rudi Martin +asia 626/udp # ASIA +asia 626/tcp # ASIA +# Michael Dasenbrock +passgo-tivoli 627/udp # PassGo Tivoli +passgo-tivoli 627/tcp # PassGo Tivoli +# Chris Hall +qmqp 628/udp # QMQP +qmqp 628/tcp # QMQP +# Dan Bernstein +3com-amp3 629/udp # 3Com AMP3 +3com-amp3 629/tcp # 3Com AMP3 +# Prakash Banthia +rda 630/udp # RDA +rda 630/tcp # RDA +# John Hadjioannou +ipp 631/udp # IPP (Internet Printing Protocol) +ipp 631/tcp # IPP (Internet Printing Protocol) +# Carl-Uno Manros +bmpp 632/udp # bmpp +bmpp 632/tcp # bmpp +# Troy Rollo +servstat 633/udp # Service Status update (Sterling Software) +servstat 633/tcp # Service Status update (Sterling Software) +# Greg Rose +ginad 634/udp # ginad +ginad 634/tcp # ginad +# Mark Crother +rlzdbase 635/udp # RLZ DBase +rlzdbase 635/tcp # RLZ DBase +# Michael Ginn +ldaps 636/udp # ldap protocol over TLS/SSL (was sldap) +ldaps 636/tcp # ldap protocol over TLS/SSL (was sldap) +# Pat Richard +lanserver 637/udp # lanserver +lanserver 637/tcp # lanserver +# Chris Larsson +mcns-sec 638/udp # mcns-sec +mcns-sec 638/tcp # mcns-sec +# Kaz Ozawa +msdp 639/udp # MSDP +msdp 639/tcp # MSDP +# Dino Farinacci +entrust-sps 640/udp # entrust-sps +entrust-sps 640/tcp # entrust-sps +# Marek Buchler +repcmd 641/udp # repcmd +repcmd 641/tcp # repcmd +# Scott Dale +esro-emsdp 642/udp # ESRO-EMSDP V1.3 +esro-emsdp 642/tcp # ESRO-EMSDP V1.3 +# Mohsen Banan +sanity 643/udp # SANity +sanity 643/tcp # SANity +# Peter Viscarola +dwr 644/udp # dwr +dwr 644/tcp # dwr +# Bill Fenner +pssc 645/udp # PSSC +pssc 645/tcp # PSSC +# Egon Meier-Engelen +ldp 646/udp # LDP +ldp 646/tcp # LDP +# Bob Thomas +dhcp-failover 647/udp # DHCP Failover +dhcp-failover 647/tcp # DHCP Failover +# Bernard Volz +rrp 648/udp # Registry Registrar Protocol (RRP) +rrp 648/tcp # Registry Registrar Protocol (RRP) +# Scott Hollenbeck +cadview-3d 649/udp # Cadview-3d - streaming 3d models over the internet +cadview-3d 649/tcp # Cadview-3d - streaming 3d models over the internet +# David Cooper +obex 650/udp # OBEX +obex 650/tcp # OBEX +# Jeff Garbers +ieee-mms 651/udp # IEEE MMS +ieee-mms 651/tcp # IEEE MMS +# Curtis Anderson +hello-port 652/udp # HELLO_PORT +hello-port 652/tcp # HELLO_PORT +# Patrick Cipiere +repscmd 653/udp # RepCmd +repscmd 653/tcp # RepCmd +# Scott Dale +aodv 654/udp # AODV +aodv 654/tcp # AODV +# Charles Perkins +tinc 655/udp # TINC +tinc 655/tcp # TINC +# Ivo Timmermans +spmp 656/udp # SPMP +spmp 656/tcp # SPMP +# Jakob Kaivo +rmc 657/udp # RMC +rmc 657/tcp # RMC +# Michael Schmidt +tenfold 658/udp # TenFold +tenfold 658/tcp # TenFold +# Louis Olszyk +# 659 Removed (2001-06-06) +mac-srvr-admin 660/udp # MacOS Server Admin +mac-srvr-admin 660/tcp # MacOS Server Admin +# Forest Hill +hap 661/udp # HAP +hap 661/tcp # HAP +# Igor Plotnikov +pftp 662/udp # PFTP +pftp 662/tcp # PFTP +# Ben Schluricke +purenoise 663/udp # PureNoise +purenoise 663/tcp # PureNoise +# Sam Osa +asf-secure-rmcp 664/udp # ASF Secure Remote Management and Control Protocol +asf-secure-rmcp 664/tcp # ASF Secure Remote Management and Control Protocol +# Carl First +sun-dr 665/udp # Sun DR +sun-dr 665/tcp # Sun DR +# Harinder Bhasin +mdqs 666/udp doom # +mdqs 666/tcp doom # +# +disclose 667/udp # campaign contribution disclosures - SDR Technologies +disclose 667/tcp # campaign contribution disclosures - SDR Technologies +# Jim Dixon +mecomm 668/udp # MeComm +mecomm 668/tcp # MeComm +meregister 669/udp # MeRegister +meregister 669/tcp # MeRegister +# Armin Sawusch +vacdsm-sws 670/udp # VACDSM-SWS +vacdsm-sws 670/tcp # VACDSM-SWS +vacdsm-app 671/udp # VACDSM-APP +vacdsm-app 671/tcp # VACDSM-APP +vpps-qua 672/udp # VPPS-QUA +vpps-qua 672/tcp # VPPS-QUA +cimplex 673/udp # CIMPLEX +cimplex 673/tcp # CIMPLEX +# Ulysses G. Smith Jr. +acap 674/udp # ACAP +acap 674/tcp # ACAP +# Chris Newman +dctp 675/udp # DCTP +dctp 675/tcp # DCTP +# Andre Kramer +vpps-via 676/udp # VPPS Via +vpps-via 676/tcp # VPPS Via +# Ulysses G. Smith Jr. +vpp 677/udp # Virtual Presence Protocol +vpp 677/tcp # Virtual Presence Protocol +# Klaus Wolf +ggf-ncp 678/udp # GNU Generation Foundation NCP +ggf-ncp 678/tcp # GNU Generation Foundation NCP +# Noah Paul +mrm 679/udp # MRM +mrm 679/tcp # MRM +# Liming Wei +entrust-aaas 680/udp # entrust-aaas +entrust-aaas 680/tcp # entrust-aaas +entrust-aams 681/udp # entrust-aams +entrust-aams 681/tcp # entrust-aams +# Adrian Mancini +xfr 682/udp # XFR +xfr 682/tcp # XFR +# Noah Paul +corba-iiop 683/udp # CORBA IIOP +corba-iiop 683/tcp # CORBA IIOP +corba-iiop-ssl 684/udp # CORBA IIOP SSL +corba-iiop-ssl 684/tcp # CORBA IIOP SSL +# Henry Lowe +mdc-portmapper 685/udp # MDC Port Mapper +mdc-portmapper 685/tcp # MDC Port Mapper +# Noah Paul +hcp-wismar 686/udp # Hardware Control Protocol Wismar +hcp-wismar 686/tcp # Hardware Control Protocol Wismar +# David Merchant +asipregistry 687/udp # asipregistry +asipregistry 687/tcp # asipregistry +# Erik Sea +realm-rusd 688/udp # REALM-RUSD +realm-rusd 688/tcp # REALM-RUSD +# Jerry Knight +nmap 689/udp # NMAP +nmap 689/tcp # NMAP +# Peter Dennis Bartok +vatp 690/udp # VATP +vatp 690/tcp # VATP +# Atica Software +msexch-routing 691/udp # MS Exchange Routing +msexch-routing 691/tcp # MS Exchange Routing +# David Lemson +hyperwave-isp 692/udp # Hyperwave-ISP +hyperwave-isp 692/tcp # Hyperwave-ISP +# Gerald Mesaric +connendp 693/udp # connendp +connendp 693/tcp # connendp +# Ronny Bremer +ha-cluster 694/udp # ha-cluster +ha-cluster 694/tcp # ha-cluster +# Alan Robertson +ieee-mms-ssl 695/udp # IEEE-MMS-SSL +ieee-mms-ssl 695/tcp # IEEE-MMS-SSL +# Curtis Anderson +rushd 696/udp # RUSHD +rushd 696/tcp # RUSHD +# Greg Ercolano +uuidgen 697/udp # UUIDGEN +uuidgen 697/tcp # UUIDGEN +# James Falkner +olsr 698/udp # OLSR +olsr 698/tcp # OLSR +# Thomas Clausen +accessnetwork 699/udp # Access Network +accessnetwork 699/tcp # Access Network +# Yingchun Xu +epp 700/tcp # Extensible Provisioning Protocol +epp 700/udp # Extensible Provisioning Protocol +# [RFC3734] +lmp 701/tcp # Link Management Protocol (LMP) +lmp 701/udp # Link Management Protocol (LMP) +# [RFC4204] +iris-beep 702/tcp # IRIS over BEEP +iris-beep 702/udp # IRIS over BEEP +# [RFC3983] +# 703 Unassigned +elcsd 704/udp # errlog copy/server daemon +elcsd 704/tcp # errlog copy/server daemon +agentx 705/udp # AgentX +agentx 705/tcp # AgentX +# Bob Natale +silc 706/udp # SILC +silc 706/tcp # SILC +# Pekka Riikonen +borland-dsj 707/udp # Borland DSJ +borland-dsj 707/tcp # Borland DSJ +# Gerg Cole +# 708 Unassigned +entrust-kmsh 709/udp # Entrust Key Management Service Handler +entrust-kmsh 709/tcp # Entrust Key Management Service Handler +entrust-ash 710/udp # Entrust Administration Service Handler +entrust-ash 710/tcp # Entrust Administration Service Handler +# Peter Whittaker +cisco-tdp 711/udp # Cisco TDP +cisco-tdp 711/tcp # Cisco TDP +# Bruce Davie +tbrpf 712/tcp # TBRPF +tbrpf 712/udp # TBRPF +# RFC3684 +# 713-728 Unassigned +netviewdm1 729/udp # IBM NetView DM/6000 Server/Client +netviewdm1 729/tcp # IBM NetView DM/6000 Server/Client +netviewdm2 730/udp # IBM NetView DM/6000 send/tcp +netviewdm2 730/tcp # IBM NetView DM/6000 send/tcp +netviewdm3 731/udp # IBM NetView DM/6000 receive/tcp +netviewdm3 731/tcp # IBM NetView DM/6000 receive/tcp +# Philippe Binet (phbinet@vnet.IBM.COM) +# 732-740 Unassigned +netgw 741/udp # netGW +netgw 741/tcp # netGW +# Oliver Korfmacher (okorf@netcs.com) +netrcs 742/udp # Network based Rev. Cont. Sys. +netrcs 742/tcp # Network based Rev. Cont. Sys. +# Gordon C. Galligher +# 743 Unassigned +flexlm 744/udp # Flexible License Manager +flexlm 744/tcp # Flexible License Manager +# Matt Christiano +# +# 745-746 Unassigned +fujitsu-dev 747/udp # Fujitsu Device Control +fujitsu-dev 747/tcp # Fujitsu Device Control +ris-cm 748/udp # Russell Info Sci Calendar Manager +ris-cm 748/tcp # Russell Info Sci Calendar Manager +kerberos-adm 749/udp # kerberos administration +kerberos-adm 749/tcp # kerberos administration +loadav 750/udp kerberos-iv # +rfile 750/tcp # +# Martin Hamilton +pump 751/udp # +pump 751/tcp # +qrh 752/udp # +qrh 752/tcp # +rrh 753/udp # +rrh 753/tcp # +tell 754/udp # send +tell 754/tcp # send +# Josyula R. Rao +# 755-756 Unassigned +nlogin 758/udp # +nlogin 758/tcp # +con 759/udp # +con 759/tcp # +ns 760/udp # +ns 760/tcp # +rxe 761/udp # +rxe 761/tcp # +quotad 762/udp # +quotad 762/tcp # +cycleserv 763/udp # +cycleserv 763/tcp # +omserv 764/udp # +omserv 764/tcp # +webster 765/udp # +webster 765/tcp # +# Josyula R. Rao +# 766 Unassigned +phonebook 767/udp # phone +phonebook 767/tcp # phone +# Josyula R. Rao +# 768 Unassigned +vid 769/udp # +vid 769/tcp # +cadlock 770/udp # +cadlock 770/tcp # +rtip 771/udp # +rtip 771/tcp # +cycleserv2 772/udp # +cycleserv2 772/tcp # +notify 773/udp # +submit 773/tcp # +acmaint_dbd 774/udp # +rpasswd 774/tcp # +acmaint_transd 775/udp # +entomb 775/tcp # +wpages 776/udp # +wpages 776/tcp # +# Josyula R. Rao +multiling-http 777/udp # Multiling HTTP +multiling-http 777/tcp # Multiling HTTP +# Alejandro Bonet +# 778-779 Unassigned +wpgs 780/udp # +wpgs 780/tcp # +# Josyula R. Rao +# 781-785 Unassigned +# 786 Unassigned (Removed 2002-05-08) +# 787 Unassigned (Removed 2002-10-08) +# 788-799 Unassigned +mdbs_daemon 800/udp # +mdbs_daemon 800/tcp # +device 801/udp # +device 801/tcp # +# 802-809 Unassigned +fcp-udp 810/udp # FCP Datagram +fcp-udp 810/tcp # FCP +# Paul Whittemore +# 811-827 Unassigned +itm-mcell-s 828/udp # itm-mcell-s +itm-mcell-s 828/tcp # itm-mcell-s +# Miles O'Neal +pkix-3-ca-ra 829/udp # PKIX-3 CA/RA +pkix-3-ca-ra 829/tcp # PKIX-3 CA/RA +# Carlisle Adams +netconf-ssh 830/tcp # NETCONF over SSH +netconf-ssh 830/udp # NETCONF over SSH +# [RFC4742] +netconf-beep 831/tcp # NETCONF over BEEP +netconf-beep 831/udp # NETCONF over BEEP +# [RFC4744] +netconfsoaphttp 832/tcp # NETCONF for SOAP over HTTPS +netconfsoaphttp 832/udp # NETCONF for SOAP over HTTPS +# [RFC4743] +netconfsoapbeep 833/tcp # NETCONF for SOAP over BEEP +netconfsoapbeep 833/udp # NETCONF for SOAP over BEEP +# [RFC4743] +# 834-846 Unassigned +dhcp-failover2 847/udp # dhcp-failover 2 +dhcp-failover2 847/tcp # dhcp-failover 2 +# Bernard Volz +gdoi 848/udp # GDOI +gdoi 848/tcp # GDOI +# RFC-ietf-msec-gdoi-07.txt +# 849-859 Unassigned +iscsi 860/udp # iSCSI +iscsi 860/tcp # iSCSI +# RFC-draft-ietf-ips-iscsi-20.txt +owamp-control 861/tcp # OWAMP-Control +owamp-control 861/udp # OWAMP-Control +# [RFC4656] +# 862-872 Unassigned +rsync 873/udp # rsync +rsync 873/tcp # rsync +# Andrew Tridgell +# 874-885 Unassigned +iclcnet-locate 886/udp # ICL coNETion locate server +iclcnet-locate 886/tcp # ICL coNETion locate server +# Bob Lyon +iclcnet_svinfo 887/udp # ICL coNETion server info +iclcnet_svinfo 887/tcp # ICL coNETion server info +# Bob Lyon +accessbuilder 888/udp # AccessBuilder +accessbuilder 888/tcp # AccessBuilder +# Steve Sweeney +# The following entry records an unassigned but widespread use +cddbp 888/tcp # CD Database Protocol +# Steve Scherf +# +# 889-899 Unassigned +omginitialrefs 900/udp # OMG Initial Refs +omginitialrefs 900/tcp # OMG Initial Refs +# Christian Callsen +smpnameres 901/udp # SMPNAMERES +smpnameres 901/tcp # SMPNAMERES +# Leif Ekblad +ideafarm-chat 902/udp # IDEAFARM-CHAT +ideafarm-chat 902/tcp # IDEAFARM-CHAT +ideafarm-catch 903/udp # IDEAFARM-CATCH +ideafarm-catch 903/tcp # IDEAFARM-CATCH +# Wo'o Ideafarm +# 904-910 Unassigned +kink 910/tcp # Kerberized Internet Negotiation of Keys (KINK) +kink 910/udp # Kerberized Internet Negotiation of Keys (KINK) +# [RFC4430] +# 911 Unassigned +xact-backup 911/udp # xact-backup +xact-backup 911/tcp # xact-backup +# Bill Carroll +apex-mesh 912/udp # APEX relay-relay service +apex-mesh 912/tcp # APEX relay-relay service +apex-edge 913/udp # APEX endpoint-relay service +apex-edge 913/tcp # APEX endpoint-relay service +# [RFC3340] +# 914-988 Unassigned +ftps-data 989/udp # ftp protocol, data, over TLS/SSL +ftps-data 989/tcp # ftp protocol, data, over TLS/SSL +ftps 990/udp # ftp protocol, control, over TLS/SSL +ftps 990/tcp # ftp protocol, control, over TLS/SSL +# Christopher Allen +nas 991/udp # Netnews Administration System +nas 991/tcp # Netnews Administration System +# Vera Heinau +# Heiko Schlichting +telnets 992/udp # telnet protocol over TLS/SSL +telnets 992/tcp # telnet protocol over TLS/SSL +imaps 993/udp # imap4 protocol over TLS/SSL +imaps 993/tcp # imap4 protocol over TLS/SSL +ircs 994/udp # irc protocol over TLS/SSL +ircs 994/tcp # irc protocol over TLS/SSL +# Christopher Allen +pop3s 995/udp # pop3 protocol over TLS/SSL (was spop3) +pop3s 995/tcp # pop3 protocol over TLS/SSL (was spop3) +# Gordon Mangione +vsinet 996/udp # vsinet +vsinet 996/tcp # vsinet +# Rob Juergens +maitrd 997/udp # +maitrd 997/tcp # +puparp 998/udp # +busboy 998/tcp # +applix 999/udp puprouter # Applix ac +garcon 999/tcp puprouter # +cadlock2 1000/udp # +cadlock2 1000/tcp # +# 1001-1009 Unassigned +# 1008/udp Possibly used by Sun Solaris???? +surf 1010/udp # surf +surf 1010/tcp # surf +# Joseph Geer +# 1011-1022 Reserved + 1023/udp # Reserved + 1023/tcp # Reserved +# IANA + 1024/udp # Reserved + 1024/tcp # Reserved +# IANA +# +# REGISTERED PORT NUMBERS +# +exp1 1021/tcp # RFC3692-style Experiment 1 (*) [RFC4727] +exp1 1021/udp # RFC3692-style Experiment 1 (*) [RFC4727] +exp2 1022/tcp # RFC3692-style Experiment 2 (*) [RFC4727] +exp2 1022/udp # RFC3692-style Experiment 2 (*) [RFC4727] +# 1023-1024 Unassigned +blackjack 1025/udp # network blackjack +blackjack 1025/tcp # network blackjack +# Unknown contact +cap 1026/udp # Calender Access Protocol +cap 1026/tcp # Calender Access Protocol +# Doug Royer June 2002 +exosee 1027/udp # ExoSee +exosee 1027/tcp # ExoSee +# Chagdali Isamail June 2003 +# 1028-1029 Unassigned +solid-mux 1029/tcp # Solid Mux Server +solid-mux 1029/udp # Solid Mux Server +# 1030 Unassigned +iad1 1030/udp # BBN IAD +iad1 1030/tcp # BBN IAD +iad2 1031/udp # BBN IAD +iad2 1031/tcp # BBN IAD +iad3 1032/udp # BBN IAD +iad3 1032/tcp # BBN IAD +# Andy Malis +netinfo-local 1033/udp # local netinfo port +netinfo-local 1033/tcp # local netinfo port +# Marc Majka August 2002 +activesync 1034/udp # ActiveSync Notifications +activesync 1034/tcp # ActiveSync Notifications +# Sandra Vargas March 2003 +mxxrlogin 1035/udp # MX-XR RPC +mxxrlogin 1035/tcp # MX-XR RPC +# Arnold E. Mauer April 2003 +pcg-radar 1036/udp # RADAR Service Protocol +pcg-radar 1036/tcp # RADAR Service Protocol +# Steve Ravida +ams 1037/tcp # AMS +ams 1037/udp # AMS +mtqp 1038/tcp # Message Tracking Query Protocol +mtqp 1038/udp # Message Tracking Query Protocol +# [RFC3887] +sbl 1039/tcp # Streamlined Blackhole +sbl 1039/udp # Streamlined Blackhole +# 1040 Unassigned +netarx 1040/udp # Netarx +netarx 1040/tcp # Netarx +# Fredrick Paul Eisele +danf-ak2 1041/tcp # AK2 Product +danf-ak2 1041/udp # AK2 Product +afrog 1042/tcp # Subnet Roaming +afrog 1042/udp # Subnet Roaming +boinc-client 1043/tcp # BOINC Client Control +boinc-client 1043/udp # BOINC Client Control +dcutility 1044/tcp # Dev Consortium Utility +dcutility 1044/udp # Dev Consortium Utility +# 1045 Unassigned +fpitp 1045/udp # Fingerprint Image Transfer Protocol +fpitp 1045/tcp # Fingerprint Image Transfer Protocol +# Steven Fields February 2002 +wfremotertm 1046/tcp # WebFilter Remote Monitor +wfremotertm 1046/udp # WebFilter Remote Monitor +# 1047 Unassigned +neod1 1047/udp # Sun's NEO Object Request Broker +neod1 1047/tcp # Sun's NEO Object Request Broker +neod2 1048/udp # Sun's NEO Object Request Broker +neod2 1048/tcp # Sun's NEO Object Request Broker +# Rohit Garg +td-postman 1049/udp # Tobit David Postman VPMN +td-postman 1049/tcp # Tobit David Postman VPMN +# Franz-Josef Leuders +cma 1050/udp # CORBA Management Agent +cma 1050/tcp # CORBA Management Agent +# Ramy Zaarour +optima-vnet 1051/udp # Optima VNET +optima-vnet 1051/tcp # Optima VNET +# Ralf Doewich +ddt 1052/udp # Dynamic DNS Tools +ddt 1052/tcp # Dynamic DNS Tools +# Remi Lefebvre +remote-as 1053/udp # Remote Assistant (RA) +remote-as 1053/tcp # Remote Assistant (RA) +# Roman Kriis +brvread 1054/udp # BRVREAD +brvread 1054/tcp # BRVREAD +# Gilles Roussel +ansyslmd 1055/udp # ANSYS - License Manager +ansyslmd 1055/tcp # ANSYS - License Manager +# Suzanne Lorrin +vfo 1056/udp # VFO +vfo 1056/tcp # VFO +# Anthony Gonzalez +startron 1057/udp # STARTRON +startron 1057/tcp # STARTRON +# Markus Sabadello +nim 1058/udp # nim +nim 1058/tcp # nim +nimreg 1059/udp # nimreg +nimreg 1059/tcp # nimreg +# Robert Gordon +polestar 1060/udp # POLESTAR +polestar 1060/tcp # POLESTAR +# Masakuni Okada +kiosk 1061/udp # KIOSK +kiosk 1061/tcp # KIOSK +# Howard Buck +veracity 1062/udp # Veracity +veracity 1062/tcp # Veracity +# Ross Williams +kyoceranetdev 1063/udp # KyoceraNetDev +kyoceranetdev 1063/tcp # KyoceraNetDev +# Shigenaka Kanemitsu +# +jstel 1064/udp # JSTEL +jstel 1064/tcp # JSTEL +# Duane Kiser +syscomlan 1065/udp # SYSCOMLAN +syscomlan 1065/tcp # SYSCOMLAN +# Urs Ryf +fpo-fns 1066/udp # FPO-FNS +fpo-fns 1066/tcp # FPO-FNS +# Jens Klose +instl_boots 1067/udp # Installation Bootstrap Proto. Serv. +instl_boots 1067/tcp # Installation Bootstrap Proto. Serv. +instl_bootc 1068/udp # Installation Bootstrap Proto. Cli. +instl_bootc 1068/tcp # Installation Bootstrap Proto. Cli. +# David Arko +cognex-insight 1069/udp # COGNEX-INSIGHT +cognex-insight 1069/tcp # COGNEX-INSIGHT +# Steve Olson +gmrupdateserv 1070/udp # GMRUpdateSERV +gmrupdateserv 1070/tcp # GMRUpdateSERV +# Steve Kellogg +bsquare-voip 1071/udp # BSQUARE-VOIP +bsquare-voip 1071/tcp # BSQUARE-VOIP +# Yen Lee +cardax 1072/udp # CARDAX +cardax 1072/tcp # CARDAX +# Charles Oram +bridgecontrol 1073/udp # Bridge Control +bridgecontrol 1073/tcp # Bridge Control +# Andy Heron +fastechnologlm 1074/udp # FASTechnologies License Manager +fastechnologlm 1074/tcp # FASTechnologies License Manager +# Robert C. Henningsgard +# +rdrmshc 1075/udp # RDRMSHC +rdrmshc 1075/tcp # RDRMSHC +# Ericko Shimada +dab-sti-c 1076/udp # DAB STI-C +dab-sti-c 1076/tcp # DAB STI-C +# World DAB +imgames 1077/udp # IMGames +imgames 1077/tcp # IMGames +# Jean A. Ames +avocent-proxy 1078/udp # Avocent Proxy Protocol +avocent-proxy 1078/tcp # Avocent Proxy Protocol +# Steven W. Clark +asprovatalk 1079/udp # ASPROVATalk +asprovatalk 1079/tcp # ASPROVATalk +# Chiew Farn Chung +socks 1080/udp # Socks +socks 1080/tcp # Socks +# Ying-Da Lee Peter.Lipp@iaik.at> +amt-esd-prot 1082/udp # AMT-ESD-PROT +amt-esd-prot 1082/tcp # AMT-ESD-PROT +# AMTEC S.p.A +ansoft-lm-1 1083/udp # Anasoft License Manager +ansoft-lm-1 1083/tcp # Anasoft License Manager +ansoft-lm-2 1084/udp # Anasoft License Manager +ansoft-lm-2 1084/tcp # Anasoft License Manager +webobjects 1085/udp # Web Objects +webobjects 1085/tcp # Web Objects +# Andy Belk +cplscrambler-lg 1086/udp # CPL Scrambler Logging +cplscrambler-lg 1086/tcp # CPL Scrambler Logging +cplscrambler-in 1087/udp # CPL Scrambler Internal +cplscrambler-in 1087/tcp # CPL Scrambler Internal +cplscrambler-al 1088/udp # CPL Scrambler Alarm Log +cplscrambler-al 1088/tcp # CPL Scrambler Alarm Log +# Richard Corn +ff-annunc 1089/udp # FF Annunciation +ff-annunc 1089/tcp # FF Annunciation +ff-fms 1090/udp # FF Fieldbus Message Specification +ff-fms 1090/tcp # FF Fieldbus Message Specification +ff-sm 1091/udp # FF System Management +ff-sm 1091/tcp # FF System Management +# Fieldbus Foundation +obrpd 1092/udp # Open Business Reporting Protocol +obrpd 1092/tcp # Open Business Reporting Protocol +# William Randolph Royere III +# +proofd 1093/udp # PROOFD +proofd 1093/tcp # PROOFD +rootd 1094/udp # ROOTD +rootd 1094/tcp # ROOTD +# Fons Rademakers +nicelink 1095/udp # NICELink +nicelink 1095/tcp # NICELink +# Jordi Lisbona +cnrprotocol 1096/udp # Common Name Resolution Protocol +cnrprotocol 1096/tcp # Common Name Resolution Protocol +# Michael Mealling +sunclustermgr 1097/udp # Sun Cluster Manager +sunclustermgr 1097/tcp # Sun Cluster Manager +# Ashit Patel +rmiactivation 1098/udp # RMI Activation +rmiactivation 1098/tcp # RMI Activation +rmiregistry 1099/udp # RMI Registry +rmiregistry 1099/tcp # RMI Registry +# Mark Hodapp +mctp 1100/udp # MCTP +mctp 1100/tcp # MCTP +# Vitaly Revsin +pt2-discover 1101/udp # PT2-DISCOVER +pt2-discover 1101/tcp # PT2-DISCOVER +# Ralph Kammerlander +# +adobeserver-1 1102/udp # ADOBE SERVER 1 +adobeserver-1 1102/tcp # ADOBE SERVER 1 +adobeserver-2 1103/udp # ADOBE SERVER 2 +adobeserver-2 1103/tcp # ADOBE SERVER 2 +# Frank Soetebeer +xrl 1104/udp # XRL +xrl 1104/tcp # XRL +# Patrick Robinson +ftranhc 1105/udp # FTRANHC +ftranhc 1105/tcp # FTRANHC +# Eriko Shimada +isoipsigport-1 1106/udp # ISOIPSIGPORT-1 +isoipsigport-1 1106/tcp # ISOIPSIGPORT-1 +isoipsigport-2 1107/udp # ISOIPSIGPORT-2 +isoipsigport-2 1107/tcp # ISOIPSIGPORT-2 +# Peter Egli +ratio-adp 1108/udp # ratio-adp +ratio-adp 1108/tcp # ratio-adp +# Oliver Thulke +# 1109 Reserved - IANA +nfsd-keepalive 1110/udp # Client status info +nfsd-status 1110/tcp # Cluster status info +# Edgar Circenis +lmsocialserver 1111/udp # LM Social Server +lmsocialserver 1111/tcp # LM Social Server +# Ron Lussier +icp 1112/udp # Intelligent Communication Protocol +icp 1112/tcp # Intelligent Communication Protocol +# Mark H. David +ltp-deepspace 1113/tcp # Licklider Transmission Pr +ltp-deepspace 1113/udp # Licklider Transmission Pr +# 1114 Unassigned +mini-sql 1114/udp # Mini SQL +mini-sql 1114/tcp # Mini SQL +# David Hughes +ardus-trns 1115/udp # ARDUS Transfer +ardus-trns 1115/tcp # ARDUS Transfer +ardus-cntl 1116/udp # ARDUS Control +ardus-cntl 1116/tcp # ARDUS Control +ardus-mtrns 1117/udp # ARDUS Multicast Transfer +ardus-mtrns 1117/tcp # ARDUS Multicast Transfer +# Shinya Abe +sacred 1118/tcp # SACRED +sacred 1118/udp # SACRED +# RFC3767 +bnetgame 1119/tcp # Battle.net Chat/Game Protocol +bnetgame 1119/udp # Battle.net Chat/Game Protocol +bnetfile 1120/tcp # Battle.net File Transfer Protocol +bnetfile 1120/udp # Battle.net File Transfer Protocol +rmpp 1121/tcp # Datalode RMPP +rmpp 1121/udp # Datalode RMPP +# 1122 Unassigned +availant-mgr 1122/udp # availant-mgr +availant-mgr 1122/tcp # availant-mgr +# Steven Pelletier +murray 1123/udp # Murray +murray 1123/tcp # Murray +# Stu Mark +hpvmmcontrol 1124/tcp # HP VMM Control +hpvmmcontrol 1124/udp # HP VMM Control +hpvmmagent 1125/tcp # HP VMM Agent +hpvmmagent 1125/udp # HP VMM Agent +hpvmmdata 1126/tcp # HP VMM Agent +hpvmmdata 1126/udp # HP VMM Agent +kwdb-commn 1127/tcp # KWDB Remote Communication +kwdb-commn 1127/udp # KWDB Remote Communication +saphostctrl 1128/tcp # SAPHostControl over SOAP/HTTP +saphostctrl 1128/udp # SAPHostControl over SOAP/HTTP +saphostctrls 1129/tcp # SAPHostControl over SOAP/HTTPS +saphostctrls 1129/udp # SAPHostControl over SOAP/HTTPS +casp 1130/tcp # CAC App Service Protocol +casp 1130/udp # CAC App Service Protocol +caspssl 1131/tcp # CAC App Service Protocol Encripted +caspssl 1131/udp # CAC App Service Protocol Encripted +kvm-via-ip 1132/tcp # KVM-via-IP Management Service +kvm-via-ip 1132/udp # KVM-via-IP Management Service +dfn 1133/tcp # Data Flow Network +dfn 1133/udp # Data Flow Network +aplx 1134/tcp # MicroAPL APLX +aplx 1134/udp # MicroAPL APLX +omnivision 1135/tcp # OmniVision Communication Service +omnivision 1135/udp # OmniVision Communication Service +hhb-gateway 1136/tcp # HHB Gateway Control +hhb-gateway 1136/udp # HHB Gateway Control +trim 1137/tcp # TRIM Workgroup Service +trim 1137/udp # TRIM Workgroup Service +# 1138-1139 Unassigned +autonoc 1140/tcp # AutoNOC Network Operations Protocol +autonoc 1140/udp # AutoNOC Network Operations Protocol +mxomss 1141/tcp # User Message Service +mxomss 1141/udp # User Message Service +edtools 1142/tcp # User Discovery Service +edtools 1142/udp # User Discovery Service +imyx 1143/tcp # Infomatryx Exchange +imyx 1143/udp # Infomatryx Exchange +fuscript 1144/tcp # Fusion Script +fuscript 1144/udp # Fusion Script +x9-icue 1145/tcp # X9 iCue Show Control +x9-icue 1145/udp # X9 iCue Show Control +audit-transfer 1146/tcp # audit transfer +audit-transfer 1146/udp # audit transfer +capioverlan 1147/tcp # CAPIoverLAN +capioverlan 1147/udp # CAPIoverLAN +elfiq-repl 1148/tcp # Elfiq Replication Service +elfiq-repl 1148/udp # Elfiq Replication Service +bvtsonar 1149/tcp # BVT Sonar Service +bvtsonar 1149/udp # BVT Sonar Service +blaze 1150/tcp # Blaze File Server +blaze 1150/udp # Blaze File Server +unizensus 1151/tcp # Unizensus Login Server +unizensus 1151/udp # Unizensus Login Server +winpoplanmess 1152/tcp # Winpopup LAN Messenger +winpoplanmess 1152/udp # Winpopup LAN Messenger +c1222-acse 1153/tcp # ANSI C12.22 Port +c1222-acse 1153/udp # ANSI C12.22 Port +resacommunity 1154/tcp # Community Service +resacommunity 1154/udp # Community Service +# 1155 Unassigned +nfa 1155/udp # Network File Access +nfa 1155/tcp # Network File Access +# James Powell +iascontrol-oms 1156/tcp # iasControl OMS +iascontrol-oms 1156/udp # iasControl OMS +iascontrol 1157/tcp # Oracle iASControl +iascontrol 1157/udp # Oracle iASControl +dbcontrol-oms 1158/tcp # dbControl OMS +dbcontrol-oms 1158/udp # dbControl OMS +oracle-oms 1159/tcp # Oracle OMS +oracle-oms 1159/udp # Oracle OMS +olsv 1160/tcp # DB Lite Mult-User Server +olsv 1160/udp # DB Lite Mult-User Server +# 1161 Unassigned +health-polling 1161/udp # Health Polling +health-polling 1161/tcp # Health Polling +health-trap 1162/udp # Health Trap +health-trap 1162/tcp # Health Trap +sddp 1163/tcp # SmartDialer Data Protocol +sddp 1163/udp # SmartDialer Data Protocol +qsm-proxy 1164/tcp # QSM Proxy Service +qsm-proxy 1164/udp # QSM Proxy Service +qsm-gui 1165/tcp # QSM GUI Service +qsm-gui 1165/udp # QSM GUI Service +qsm-remote 1166/tcp # QSM RemoteExec +qsm-remote 1166/udp # QSM RemoteExec +cisco-ipsla 1167/tcp # Cisco IP SLAs Control Protocol +cisco-ipsla 1167/udp # Cisco IP SLAs Control Protocol +# 1168 Unassigned +vchat 1168/udp # VChat Conference Service +vchat 1168/tcp # VChat Conference Service +# Andreas Wetzel September 2002 +tripwire 1169/udp # TRIPWIRE +tripwire 1169/tcp # TRIPWIRE +# Ed Metcalf +# Albert Holt +atc-lm 1170/tcp # AT+C License Manager +atc-lm 1170/udp # AT+C License Manager +atc-appserver 1171/tcp # AT+C FmiApplicationServer +atc-appserver 1171/udp # AT+C FmiApplicationServer +dnap 1172/tcp # DNA Protocol +dnap 1172/udp # DNA Protocol +d-cinema-rrp 1173/tcp # D-Cinema Request-Response +d-cinema-rrp 1173/udp # D-Cinema Request-Response +fnet-remote-ui 1174/tcp # FlashNet Remote Admin +fnet-remote-ui 1174/udp # FlashNet Remote Admin +dossier 1175/tcp # Dossier Server +dossier 1175/udp # Dossier Server +indigo-server 1176/tcp # Indigo Home Server +indigo-server 1176/udp # Indigo Home Server +dkmessenger 1177/tcp # DKMessenger Protocol +dkmessenger 1177/udp # DKMessenger Protocol +sgi-storman 1178/tcp # SGI Storage Manager +sgi-storman 1178/udp # SGI Storage Manager +b2n 1179/tcp # Backup To Neighbor +b2n 1179/udp # Backup To Neighbor +# 1180 Unassigned +mc-client 1180/udp # Millicent Client Proxy +mc-client 1180/tcp # Millicent Client Proxy +# Steve Glassman +3comnetman 1181/tcp # 3Com Net Management +3comnetman 1181/udp # 3Com Net Management +accelenet 1182/tcp # AcceleNet Control +accelenet 1182/udp # AcceleNet Control +# 1183 Unassigned +llsurfup-http 1183/udp # LL Surfup HTTP +llsurfup-http 1183/tcp # LL Surfup HTTP +llsurfup-https 1184/udp # LL Surfup HTTPS +llsurfup-https 1184/tcp # LL Surfup HTTPS +# Katy Lynn McCullough +catchpole 1185/udp # Catchpole port +catchpole 1185/tcp # Catchpole port +# Christian Catchpole March 2002 +mysql-cluster 1186/tcp # MySQL Cluster Manager +mysql-cluster 1186/udp # MySQL Cluster Manager +alias 1187/tcp # Alias Service +alias 1187/udp # Alias Service +# 1188 Unassigned +hp-webadmin 1188/udp # HP Web Admin +hp-webadmin 1188/tcp # HP Web Admin +# Lance Kind +unet 1189/tcp # Unet Connection +unet 1189/udp # Unet Connection +commlinx-avl 1190/tcp # CommLinx GPS / AVL System +commlinx-avl 1190/udp # CommLinx GPS / AVL System +gpfs 1191/tcp # General Parallel File System +gpfs 1191/udp # General Parallel File System +caids-sensor 1192/tcp # caids sensors channel +caids-sensor 1192/udp # caids sensors channel +fiveacross 1193/tcp # Five Across Server +fiveacross 1193/udp # Five Across Server +openvpn 1194/tcp # OpenVPN +openvpn 1194/udp # OpenVPN +rsf-1 1195/tcp # RSF-1 clustering +rsf-1 1195/udp # RSF-1 clustering +netmagic 1196/tcp # Network Magic +netmagic 1196/udp # Network Magic +carrius-rshell 1197/tcp # Carrius Remote Access +carrius-rshell 1197/udp # Carrius Remote Access +cajo-discovery 1198/tcp # cajo reference discovery +cajo-discovery 1198/udp # cajo reference discovery +# 1199 Unassigned +dmidi 1199/udp # DMIDI +dmidi 1199/tcp # DMIDI +# Phil Kerr February 2002 +scol 1200/udp # SCOL +scol 1200/tcp # SCOL +# Cryo-Networks +nucleus-sand 1201/udp # Nucleus Sand +nucleus-sand 1201/tcp # Nucleus Sand +# James Marsh +caiccipc 1202/udp # caiccipc +caiccipc 1202/tcp # caiccipc +# Vince Re +ssslic-mgr 1203/udp # License Validation +ssslic-mgr 1203/tcp # License Validation +ssslog-mgr 1204/udp # Log Request Listener +ssslog-mgr 1204/tcp # Log Request Listener +# Eric Bruno +accord-mgc 1205/udp # Accord-MGC +accord-mgc 1205/tcp # Accord-MGC +# Roni Even +anthony-data 1206/udp # Anthony Data +anthony-data 1206/tcp # Anthony Data +# Paul Dollemore +metasage 1207/udp # MetaSage +metasage 1207/tcp # MetaSage +# Peter Anvelt +seagull-ais 1208/udp # SEAGULL AIS +seagull-ais 1208/tcp # SEAGULL AIS +# Lee Breisacher +ipcd3 1209/udp # IPCD3 +ipcd3 1209/tcp # IPCD3 +# Mark Ciskey +eoss 1210/udp # EOSS +eoss 1210/tcp # EOSS +# Robert Armes +groove-dpp 1211/udp # Groove DPP +groove-dpp 1211/tcp # Groove DPP +# Ken Moore +lupa 1212/udp # lupa +lupa 1212/tcp # lupa +# Barney Wolff +mpc-lifenet 1213/udp # MPC LIFENET +mpc-lifenet 1213/tcp # MPC LIFENET +# Ward Silver +kazaa 1214/udp # KAZAA +kazaa 1214/tcp # KAZAA +# Ahti Heinla +scanstat-1 1215/udp # scanSTAT 1.0 +scanstat-1 1215/tcp # scanSTAT 1.0 +# William Scheding +etebac5 1216/udp # ETEBAC 5 +etebac5 1216/tcp # ETEBAC 5 +# GSIT +hpss-ndapi 1217/udp # HPSS-NDAPI +hpss-ndapi 1217/tcp # HPSS-NDAPI +# Michael Gleicher +aeroflight-ads 1218/udp # AeroFlight-ADs +aeroflight-ads 1218/tcp # AeroFlight-ADs +aeroflight-ret 1219/udp # AeroFlight-Ret +aeroflight-ret 1219/tcp # AeroFlight-Ret +# Eric Johnson +qt-serveradmin 1220/udp # QT SERVER ADMIN +qt-serveradmin 1220/tcp # QT SERVER ADMIN +# Chris LeCroy +sweetware-apps 1221/udp # SweetWARE Apps +sweetware-apps 1221/tcp # SweetWARE Apps +# David Dunetz +nerv 1222/udp # SNI R&D network +nerv 1222/tcp # SNI R&D network +# Martin Freiss +tgp 1223/udp # TGP +tgp 1223/tcp # TGP +# Gur Kimchi +vpnz 1224/udp # VPNz +vpnz 1224/tcp # VPNz +# Tom Strack +slinkysearch 1225/udp # SLINKYSEARCH +slinkysearch 1225/tcp # SLINKYSEARCH +# Desmond Chan +stgxfws 1226/udp # STGXFWS +stgxfws 1226/tcp # STGXFWS +# Tetsuya Shioda +dns2go 1227/udp # DNS2Go +dns2go 1227/tcp # DNS2Go +# Mark Richards +florence 1228/udp # FLORENCE +florence 1228/tcp # FLORENCE +# Brian Trammell +novell-zfs 1229/udp # Novell ZFS +novell-zfs 1229/tcp # Novell ZFS +# Ty Ellis +periscope 1230/udp # Periscope +periscope 1230/tcp # Periscope +# Kevin Madden +menandmice-lpm 1231/udp # menandmice-lpm +menandmice-lpm 1231/tcp # menandmice-lpm +# Sigfus Magnusson +##### Microsoft (unoffically) using 1232 ##### +univ-appserver 1233/udp # Universal App Server +univ-appserver 1233/tcp # Universal App Server +# Tim Sent +search-agent 1234/udp # Infoseek Search Agent +search-agent 1234/tcp # Infoseek Search Agent +# Jackie Wu +mosaicsyssvc1 1235/udp # mosaicsyssvc1 +mosaicsyssvc1 1235/tcp # mosaicsyssvc1 +# Brian Matthews +bvcontrol 1236/udp # bvcontrol +bvcontrol 1236/tcp # bvcontrol +# Daniel J Walsh +tsdos390 1237/udp # tsdos390 +tsdos390 1237/tcp # tsdos390 +# Ben Pracht +hacl-qs 1238/udp # hacl-qs +hacl-qs 1238/tcp # hacl-qs +# Farid Faez +nmsd 1239/udp # NMSD +nmsd 1239/tcp # NMSD +# Yuri Machkasov +instantia 1240/udp # Instantia +instantia 1240/tcp # Instantia +# Ruth Slater +nessus 1241/udp # nessus +nessus 1241/tcp # nessus +# Jordan Hrycaj +nmasoverip 1242/udp # NMAS over IP +nmasoverip 1242/tcp # NMAS over IP +# Hal Henderson +serialgateway 1243/udp # SerialGateway +serialgateway 1243/tcp # SerialGateway +# Stephen LaValley +isbconference1 1244/udp # isbconference1 +isbconference1 1244/tcp # isbconference1 +isbconference2 1245/udp # isbconference2 +isbconference2 1245/tcp # isbconference2 +# Arnold Dittmann +payrouter 1246/udp # payrouter +payrouter 1246/tcp # payrouter +# David Wilson +visionpyramid 1247/udp # VisionPyramid +visionpyramid 1247/tcp # VisionPyramid +# Gavin Hutchinson +hermes 1248/udp # hermes +hermes 1248/tcp # hermes +# Not known +mesavistaco 1249/udp # Mesa Vista Co +mesavistaco 1249/tcp # Mesa Vista Co +# Rick LaBanca +swldy-sias 1250/udp # swldy-sias +swldy-sias 1250/tcp # swldy-sias +# Peter E Williams +servergraph 1251/udp # servergraph +servergraph 1251/tcp # servergraph +# Lindsay Morris +bspne-pcc 1252/udp # bspne-pcc +bspne-pcc 1252/tcp # bspne-pcc +q55-pcc 1253/udp # q55-pcc +q55-pcc 1253/tcp # q55-pcc +# Prem Tirilok +de-noc 1254/udp # de-noc +de-noc 1254/tcp # de-noc +de-cache-query 1255/udp # de-cache-query +de-cache-query 1255/tcp # de-cache-query +de-server 1256/udp # de-server +de-server 1256/tcp # de-server +# Jeff Burdette +shockwave2 1257/udp # Shockwave 2 +shockwave2 1257/tcp # Shockwave 2 +# Dave Simmons +opennl 1258/udp # Open Network Library +opennl 1258/tcp # Open Network Library +opennl-voice 1259/udp # Open Network Library Voice +opennl-voice 1259/tcp # Open Network Library Voice +# Phil Frisbie +ibm-ssd 1260/udp # ibm-ssd +ibm-ssd 1260/tcp # ibm-ssd +# Barry Whyte +mpshrsv 1261/udp # mpshrsv +mpshrsv 1261/tcp # mpshrsv +# Makoto Ikeyama +qnts-orb 1262/udp # QNTS-ORB +qnts-orb 1262/tcp # QNTS-ORB +# Raghurama Bhat +dka 1263/udp # dka +dka 1263/tcp # dka +# Chris Griffin +prat 1264/udp # PRAT +prat 1264/tcp # PRAT +# Keith Wood +dssiapi 1265/udp # DSSIAPI +dssiapi 1265/tcp # DSSIAPI +# Steve Sando +dellpwrappks 1266/udp # DELLPWRAPPKS +dellpwrappks 1266/tcp # DELLPWRAPPKS +# David Troeger +epc 1267/udp # eTrust Policy Compliance +epc 1267/tcp # eTrust Policy Compliance +# Aaron Stein +propel-msgsys 1268/udp # PROPEL-MSGSYS +propel-msgsys 1268/tcp # PROPEL-MSGSYS +# Bert Van der Linden +watilapp 1269/udp # WATiLaPP +watilapp 1269/tcp # WATiLaPP +# Frederic Weymann +opsmgr 1270/udp # Microsoft Operations Manager +opsmgr 1270/tcp # Microsoft Operations Manager +# Ashvin Sanghvi +dabew 1271/udp # Dabew +dabew 1271/tcp # Dabew +# Norm Freedman +cspmlockmgr 1272/udp # CSPMLockMgr +cspmlockmgr 1272/tcp # CSPMLockMgr +# Ibtsam Mahfouz +emc-gateway 1273/udp # EMC-Gateway +emc-gateway 1273/tcp # EMC-Gateway +# Rene Fontaine +t1distproc 1274/udp # t1distproc +t1distproc 1274/tcp # t1distproc +# Julian Biddle +ivcollector 1275/udp # ivcollector +ivcollector 1275/tcp # ivcollector +ivmanager 1276/udp # ivmanager +ivmanager 1276/tcp # ivmanager +# Xavier Roques +miva-mqs 1277/udp # mqs +miva-mqs 1277/tcp # mqs +# Miva Corporation +dellwebadmin-1 1278/udp # Dell Web Admin 1 +dellwebadmin-1 1278/tcp # Dell Web Admin 1 +dellwebadmin-2 1279/udp # Dell Web Admin 2 +dellwebadmin-2 1279/tcp # Dell Web Admin 2 +# Bridget Navoda +pictrography 1280/udp # Pictrography +pictrography 1280/tcp # Pictrography +# Takashi Hoshino +healthd 1281/udp # healthd +healthd 1281/tcp # healthd +# James E. Housley +emperion 1282/udp # Emperion +emperion 1282/tcp # Emperion +# Claus Thor Barth +productinfo 1283/udp # ProductInfo +productinfo 1283/tcp # ProductInfo +iee-qfx 1284/udp # IEE-QFX +iee-qfx 1284/tcp # IEE-QFX +# Kevin D. Quitt +neoiface 1285/udp # neoiface +neoiface 1285/tcp # neoiface +# Jason McManus +netuitive 1286/udp # netuitive +netuitive 1286/tcp # netuitive +# Clayton Wilkinson +routematch 1287/tcp # RouteMatch Com +routematch 1287/udp # RouteMatch Com +# 1288 Unassigned +navbuddy 1288/udp # NavBuddy +navbuddy 1288/tcp # NavBuddy +# Eric Hackman +jwalkserver 1289/udp # JWalkServer +jwalkserver 1289/tcp # JWalkServer +winjaserver 1290/udp # WinJaServer +winjaserver 1290/tcp # WinJaServer +seagulllms 1291/udp # SEAGULLLMS +seagulllms 1291/tcp # SEAGULLLMS +# Lee Breisacher +dsdn 1292/udp # dsdn +dsdn 1292/tcp # dsdn +# Stanislaw Skowronek +pkt-krb-ipsec 1293/udp # PKT-KRB-IPSec +pkt-krb-ipsec 1293/tcp # PKT-KRB-IPSec +# Nancy Davoust +cmmdriver 1294/udp # CMMdriver +cmmdriver 1294/tcp # CMMdriver +# Lutz Karras +ehtp 1295/udp # End-by-Hop Transmission Protocol +ehtp 1295/tcp # End-by-Hop Transmission Protocol +# Alexander Bogdanov +dproxy 1296/udp # dproxy +dproxy 1296/tcp # dproxy +sdproxy 1297/udp # sdproxy +sdproxy 1297/tcp # sdproxy +# Raimond Diederik +lpcp 1298/udp # lpcp +lpcp 1298/tcp # lpcp +# Christian Stredicke +hp-sci 1299/udp # hp-sci +hp-sci 1299/tcp # hp-sci +# Kim Scott +h323hostcallsc 1300/udp # H323 Host Call Secure +h323hostcallsc 1300/tcp # H323 Host Call Secure +# Jim Toga +ci3-software-1 1301/udp # CI3-Software-1 +ci3-software-1 1301/tcp # CI3-Software-1 +ci3-software-2 1302/udp # CI3-Software-2 +ci3-software-2 1302/tcp # CI3-Software-2 +# Kelli Watson +sftsrv 1303/udp # sftsrv +sftsrv 1303/tcp # sftsrv +# Robert Frazier +boomerang 1304/udp # Boomerang +boomerang 1304/tcp # Boomerang +# Bruce Lueckenhoff +pe-mike 1305/udp # pe-mike +pe-mike 1305/tcp # pe-mike +# Stephen Hemminger +re-conn-proto 1306/udp # RE-Conn-Proto +re-conn-proto 1306/tcp # RE-Conn-Proto +# Sandeep Singhal +pacmand 1307/udp # Pacmand +pacmand 1307/tcp # Pacmand +# Edward T. O'Shea +odsi 1308/udp # Optical Domain Service Interconnect (ODSI) +odsi 1308/tcp # Optical Domain Service Interconnect (ODSI) +# K. Arvind +jtag-server 1309/udp # JTAG server +jtag-server 1309/tcp # JTAG server +# Andrew Draper +husky 1310/udp # Husky +husky 1310/tcp # Husky +# Mark Zang +rxmon 1311/udp # RxMon +rxmon 1311/tcp # RxMon +# Javier Jiminez +sti-envision 1312/udp # STI Envision +sti-envision 1312/tcp # STI Envision +# Don Stedman +bmc_patroldb 1313/udp # BMC_PATROLDB +bmc_patroldb 1313/tcp # BMC_PATROLDB +# Devon Shows +pdps 1314/udp # Photoscript Distributed Printing System +pdps 1314/tcp # Photoscript Distributed Printing System +# Les Klein +els 1315/udp # E.L.S., Event Listener Service +els 1315/tcp # E.L.S., Event Listener Service +# Jim Cleppe +exbit-escp 1316/udp # Exbit-ESCP +exbit-escp 1316/tcp # Exbit-ESCP +# Morten Christensen +vrts-ipcserver 1317/udp # vrts-ipcserver +vrts-ipcserver 1317/tcp # vrts-ipcserver +# Bruce Hestand +krb5gatekeeper 1318/udp # krb5gatekeeper +krb5gatekeeper 1318/tcp # krb5gatekeeper +# Patrick Moore +panja-icsp 1319/udp # Panja-ICSP +panja-icsp 1319/tcp # Panja-ICSP +# Ron Barber +panja-axbnet 1320/udp # Panja-AXBNET +panja-axbnet 1320/tcp # Panja-AXBNET +# Andrew van Wensen +pip 1321/udp # PIP +pip 1321/tcp # PIP +# Gordon Mohr +novation 1322/udp # Novation +novation 1322/tcp # Novation +# Alan Dano +brcd 1323/udp # brcd +brcd 1323/tcp # brcd +# Todd Picquelle +delta-mcp 1324/udp # delta-mcp +delta-mcp 1324/tcp # delta-mcp +# Quinton Tormanen +dx-instrument 1325/udp # DX-Instrument +dx-instrument 1325/tcp # DX-Instrument +# Walt Modic +wimsic 1326/udp # WIMSIC +wimsic 1326/tcp # WIMSIC +# James Brown +ultrex 1327/udp # Ultrex +ultrex 1327/tcp # Ultrex +# Tim Walsh +ewall 1328/udp # EWALL +ewall 1328/tcp # EWALL +# Jeff Busma +netdb-export 1329/udp # netdb-export +netdb-export 1329/tcp # netdb-export +# Konstantinos Kostis +streetperfect 1330/udp # StreetPerfect +streetperfect 1330/tcp # StreetPerfect +# Michael R. Young +intersan 1331/udp # intersan +intersan 1331/tcp # intersan +# Barry H. Feild +pcia-rxp-b 1332/udp # PCIA RXP-B +pcia-rxp-b 1332/tcp # PCIA RXP-B +# James Dabbs +passwrd-policy 1333/udp # Password Policy +passwrd-policy 1333/tcp # Password Policy +# Tonio Pirotta +writesrv 1334/udp # writesrv +writesrv 1334/tcp # writesrv +# Marvin Toungate +digital-notary 1335/udp # Digital Notary Protocol +digital-notary 1335/tcp # Digital Notary Protocol +# Wes Doonan +ischat 1336/udp # Instant Service Chat +ischat 1336/tcp # Instant Service Chat +# Mike Clise +menandmice-dns 1337/udp # menandmice DNS +menandmice-dns 1337/tcp # menandmice DNS +# Sigfus Magnusson +wmc-log-svc 1338/udp # WMC-log-svr +wmc-log-svc 1338/tcp # WMC-log-svr +# Stephen Brosseau +kjtsiteserver 1339/udp # kjtsiteserver +kjtsiteserver 1339/tcp # kjtsiteserver +# Jason Aubain +naap 1340/udp # NAAP +naap 1340/tcp # NAAP +# Henry Haverinen +qubes 1341/udp # QuBES +qubes 1341/tcp # QuBES +# Eric Grange +esbroker 1342/udp # ESBroker +esbroker 1342/tcp # ESBroker +# Alexander Medvinsky +re101 1343/udp # re101 +re101 1343/tcp # re101 +# Doriano Blengino +icap 1344/udp # ICAP +icap 1344/tcp # ICAP +# Jeremy Elson +vpjp 1345/udp # VPJP +vpjp 1345/tcp # VPJP +# Michael Collins +alta-ana-lm 1346/udp # Alta Analytics License Manager +alta-ana-lm 1346/tcp # Alta Analytics License Manager +bbn-mmc 1347/udp # multi media conferencing +bbn-mmc 1347/tcp # multi media conferencing +bbn-mmx 1348/udp # multi media conferencing +bbn-mmx 1348/tcp # multi media conferencing +sbook 1349/udp # Registration Network Protocol +sbook 1349/tcp # Registration Network Protocol +editbench 1350/udp # Registration Network Protocol +editbench 1350/tcp # Registration Network Protocol +# Simson L. Garfinkel +equationbuilder 1351/udp # Digital Tool Works (MIT) +equationbuilder 1351/tcp # Digital Tool Works (MIT) +# Terrence J. Talbot +lotusnote 1352/udp # Lotus Note +lotusnote 1352/tcp # Lotus Note +# Greg Pflaum +relief 1353/udp # Relief Consulting +relief 1353/tcp # Relief Consulting +# John Feiler +rightbrain 1354/udp # RightBrain Software +rightbrain 1354/tcp # RightBrain Software +# Glenn Reid +intuitive-edge 1355/udp # Intuitive Edge +intuitive-edge 1355/tcp # Intuitive Edge +# Montgomery Zukowski +# +cuillamartin 1356/udp # CuillaMartin Company +cuillamartin 1356/tcp # CuillaMartin Company +pegboard 1357/udp # Electronic PegBoard +pegboard 1357/tcp # Electronic PegBoard +# Chris Cuilla +# +connlcli 1358/udp # CONNLCLI +connlcli 1358/tcp # CONNLCLI +ftsrv 1359/udp # FTSRV +ftsrv 1359/tcp # FTSRV +# Ines Homem de Melo +mimer 1360/udp # MIMER +mimer 1360/tcp # MIMER +# Per Schroeder +linx 1361/udp # LinX +linx 1361/tcp # LinX +# Steffen Schilke <---none---> +timeflies 1362/udp # TimeFlies +timeflies 1362/tcp # TimeFlies +# Doug Kent +ndm-requester 1363/udp # Network DataMover Requester +ndm-requester 1363/tcp # Network DataMover Requester +ndm-server 1364/udp # Network DataMover Server +ndm-server 1364/tcp # Network DataMover Server +# Toshio Watanabe +# +adapt-sna 1365/udp # Network Software Associates +adapt-sna 1365/tcp # Network Software Associates +# Jeffery Chiao <714-768-401> +netware-csp 1366/udp # Novell NetWare Comm Service Platform +netware-csp 1366/tcp # Novell NetWare Comm Service Platform +# Laurie Lindsey +dcs 1367/udp # DCS +dcs 1367/tcp # DCS +# Stefan Siebert +screencast 1368/udp # ScreenCast +screencast 1368/tcp # ScreenCast +# Bill Tschumy +gv-us 1369/udp # GlobalView to Unix Shell +gv-us 1369/tcp # GlobalView to Unix Shell +us-gv 1370/udp # Unix Shell to GlobalView +us-gv 1370/tcp # Unix Shell to GlobalView +# Makoto Mita +fc-cli 1371/udp # Fujitsu Config Protocol +fc-cli 1371/tcp # Fujitsu Config Protocol +fc-ser 1372/udp # Fujitsu Config Protocol +fc-ser 1372/tcp # Fujitsu Config Protocol +# Ryuichi Horie +chromagrafx 1373/udp # Chromagrafx +chromagrafx 1373/tcp # Chromagrafx +# Mike Barthelemy +molly 1374/udp # EPI Software Systems +molly 1374/tcp # EPI Software Systems +# Jim Vlcek +bytex 1375/udp # Bytex +bytex 1375/tcp # Bytex +# Mary Ann Burt +ibm-pps 1376/udp # IBM Person to Person Software +ibm-pps 1376/tcp # IBM Person to Person Software +# Simon Phipps +cichlid 1377/udp # Cichlid License Manager +cichlid 1377/tcp # Cichlid License Manager +# Andy Burgess +elan 1378/udp # Elan License Manager +elan 1378/tcp # Elan License Manager +# Ken Greer +dbreporter 1379/udp # Integrity Solutions +dbreporter 1379/tcp # Integrity Solutions +# Tim Dawson +telesis-licman 1380/udp # Telesis Network License Manager +telesis-licman 1380/tcp # Telesis Network License Manager +# Karl Schendel, Jr. +apple-licman 1381/udp # Apple Network License Manager +apple-licman 1381/tcp # Apple Network License Manager +# Earl Wallace +udt_os 1382/udp # udt_os +udt_os 1382/tcp # udt_os +gwha 1383/udp # GW Hannaway Network License Manager +gwha 1383/tcp # GW Hannaway Network License Manager +# J. Gabriel Foster +os-licman 1384/udp # Objective Solutions License Manager +os-licman 1384/tcp # Objective Solutions License Manager +# Donald Cornwell +atex_elmd 1385/udp # Atex Publishing License Manager +atex_elmd 1385/tcp # Atex Publishing License Manager +# Brett Sorenson +checksum 1386/udp # CheckSum License Manager +checksum 1386/tcp # CheckSum License Manager +# Andreas Glocker +cadsi-lm 1387/udp # Computer Aided Design Software Inc LM +cadsi-lm 1387/tcp # Computer Aided Design Software Inc LM +# Sulistio Muljadi +objective-dbc 1388/udp # Objective Solutions DataBase Cache +objective-dbc 1388/tcp # Objective Solutions DataBase Cache +# Donald Cornwell +iclpv-dm 1389/udp # Document Manager +iclpv-dm 1389/tcp # Document Manager +iclpv-sc 1390/udp # Storage Controller +iclpv-sc 1390/tcp # Storage Controller +iclpv-sas 1391/udp # Storage Access Server +iclpv-sas 1391/tcp # Storage Access Server +iclpv-pm 1392/udp # Print Manager +iclpv-pm 1392/tcp # Print Manager +iclpv-nls 1393/udp # Network Log Server +iclpv-nls 1393/tcp # Network Log Server +iclpv-nlc 1394/udp # Network Log Client +iclpv-nlc 1394/tcp # Network Log Client +iclpv-wsm 1395/udp # PC Workstation Manager software +iclpv-wsm 1395/tcp # PC Workstation Manager software +# A.P. Hobson +dvl-activemail 1396/udp # DVL Active Mail +dvl-activemail 1396/tcp # DVL Active Mail +audio-activmail 1397/udp # Audio Active Mail +audio-activmail 1397/tcp # Audio Active Mail +video-activmail 1398/udp # Video Active Mail +video-activmail 1398/tcp # Video Active Mail +# Avshalom Houri +cadkey-licman 1399/udp # Cadkey License Manager +cadkey-licman 1399/tcp # Cadkey License Manager +cadkey-tablet 1400/udp # Cadkey Tablet Daemon +cadkey-tablet 1400/tcp # Cadkey Tablet Daemon +# Joe McCollough +goldleaf-licman 1401/udp # Goldleaf License Manager +goldleaf-licman 1401/tcp # Goldleaf License Manager +# John Fox <---none---> +prm-sm-np 1402/udp # Prospero Resource Manager +prm-sm-np 1402/tcp # Prospero Resource Manager +prm-nm-np 1403/udp # Prospero Resource Manager +prm-nm-np 1403/tcp # Prospero Resource Manager +# B. Clifford Neuman +igi-lm 1404/udp # Infinite Graphics License Manager +igi-lm 1404/tcp # Infinite Graphics License Manager +ibm-res 1405/udp # IBM Remote Execution Starter +ibm-res 1405/tcp # IBM Remote Execution Starter +netlabs-lm 1406/udp # NetLabs License Manager +netlabs-lm 1406/tcp # NetLabs License Manager +dbsa-lm 1407/udp # DBSA License Manager +dbsa-lm 1407/tcp # DBSA License Manager +# Scott Shattuck +sophia-lm 1408/udp # Sophia License Manager +sophia-lm 1408/tcp # Sophia License Manager +# Eric Brown +here-lm 1409/udp # Here License Manager +here-lm 1409/tcp # Here License Manager +# David Ison +hiq 1410/udp # HiQ License Manager +hiq 1410/tcp # HiQ License Manager +# Rick Pugh +af 1411/udp # AudioFile +af 1411/tcp # AudioFile +# Jim Gettys +innosys 1412/udp # InnoSys +innosys 1412/tcp # InnoSys +innosys-acl 1413/udp # Innosys-ACL +innosys-acl 1413/tcp # Innosys-ACL +# Eric Welch <--none---> +ibm-mqseries 1414/udp # IBM MQSeries +ibm-mqseries 1414/tcp # IBM MQSeries +# Roger Meli +dbstar 1415/udp # DBStar +dbstar 1415/tcp # DBStar +# Jeffrey Millman +novell-lu6.2 1416/udp # Novell LU6.2 +novell-lu6.2 1416/tcp # Novell LU6.2 +# Peter Liu <--none---> +timbuktu-srv1 1417/udp # Timbuktu Service 1 Port +timbuktu-srv1 1417/tcp # Timbuktu Service 1 Port +timbuktu-srv2 1418/udp # Timbuktu Service 2 Port +timbuktu-srv2 1418/tcp # Timbuktu Service 2 Port +timbuktu-srv3 1419/udp # Timbuktu Service 3 Port +timbuktu-srv3 1419/tcp # Timbuktu Service 3 Port +timbuktu-srv4 1420/udp # Timbuktu Service 4 Port +timbuktu-srv4 1420/tcp # Timbuktu Service 4 Port +# Marc Epard +gandalf-lm 1421/udp # Gandalf License Manager +gandalf-lm 1421/tcp # Gandalf License Manager +# gilmer@gandalf.ca +autodesk-lm 1422/udp # Autodesk License Manager +autodesk-lm 1422/tcp # Autodesk License Manager +# David Ko +essbase 1423/udp # Essbase Arbor Software +essbase 1423/tcp # Essbase Arbor Software +hybrid 1424/udp # Hybrid Encryption Protocol +hybrid 1424/tcp # Hybrid Encryption Protocol +# Howard Hart +zion-lm 1425/udp # Zion Software License Manager +zion-lm 1425/tcp # Zion Software License Manager +# David Ferrero +sais 1426/udp # Satellite-data Acquisition System 1 +sais 1426/tcp # Satellite-data Acquisition System 1 +# Bill Taylor +mloadd 1427/udp # mloadd monitoring tool +mloadd 1427/tcp # mloadd monitoring tool +# Bob Braden +informatik-lm 1428/udp # Informatik License Manager +informatik-lm 1428/tcp # Informatik License Manager +# Harald Schlangmann +# +nms 1429/udp # Hypercom NMS +nms 1429/tcp # Hypercom NMS +tpdu 1430/udp # Hypercom TPDU +tpdu 1430/tcp # Hypercom TPDU +# Noor Chowdhury +rgtp 1431/udp # Reverse Gossip Transport +rgtp 1431/tcp # Reverse Gossip Transport +# Ian Jackson +blueberry-lm 1432/udp # Blueberry Software License Manager +blueberry-lm 1432/tcp # Blueberry Software License Manager +# Steve Beigel +ms-sql-s 1433/udp # Microsoft-SQL-Server +ms-sql-s 1433/tcp # Microsoft-SQL-Server +ms-sql-m 1434/udp # Microsoft-SQL-Monitor +ms-sql-m 1434/tcp # Microsoft-SQL-Monitor +# Peter Hussey +ibm-cics 1435/udp # IBM CICS +ibm-cics 1435/tcp # IBM CICS +# Geoff Meacock +saism 1436/udp # Satellite-data Acquisition System 2 +saism 1436/tcp # Satellite-data Acquisition System 2 +# Bill Taylor +tabula 1437/udp # Tabula +tabula 1437/tcp # Tabula +# Marcelo Einhorn +# +eicon-server 1438/udp # Eicon Security Agent/Server +eicon-server 1438/tcp # Eicon Security Agent/Server +eicon-x25 1439/udp # Eicon X25/SNA Gateway +eicon-x25 1439/tcp # Eicon X25/SNA Gateway +eicon-slp 1440/udp # Eicon Service Location Protocol +eicon-slp 1440/tcp # Eicon Service Location Protocol +# Pat Calhoun +cadis-1 1441/udp # Cadis License Management +cadis-1 1441/tcp # Cadis License Management +cadis-2 1442/udp # Cadis License Management +cadis-2 1442/tcp # Cadis License Management +# Todd Wichers +ies-lm 1443/udp # Integrated Engineering Software +ies-lm 1443/tcp # Integrated Engineering Software +# David Tong +marcam-lm 1444/udp # Marcam License Management +marcam-lm 1444/tcp # Marcam License Management +# Therese Hunt +proxima-lm 1445/udp # Proxima License Manager +proxima-lm 1445/tcp # Proxima License Manager +ora-lm 1446/udp # Optical Research Associates License Manager +ora-lm 1446/tcp # Optical Research Associates License Manager +apri-lm 1447/udp # Applied Parallel Research LM +apri-lm 1447/tcp # Applied Parallel Research LM +# Jim Dillon +oc-lm 1448/udp # OpenConnect License Manager +oc-lm 1448/tcp # OpenConnect License Manager +# Sue Barnhill +peport 1449/udp # PEport +peport 1449/tcp # PEport +# Qentin Neill +dwf 1450/udp # Tandem Distributed Workbench Facility +dwf 1450/tcp # Tandem Distributed Workbench Facility +# Mike Bert +infoman 1451/udp # IBM Information Management +infoman 1451/tcp # IBM Information Management +# Karen Burns <---none---> +gtegsc-lm 1452/udp # GTE Government Systems License Man +gtegsc-lm 1452/tcp # GTE Government Systems License Man +# Mike Gregory +genie-lm 1453/udp # Genie License Manager +genie-lm 1453/tcp # Genie License Manager +# Paul Applegate +interhdl_elmd 1454/udp # interHDL License Manager +interhdl_elmd 1454/tcp # interHDL License Manager +# Eli Sternheim eli@interhdl.com +esl-lm 1455/udp # ESL License Manager +esl-lm 1455/tcp # ESL License Manager +# Abel Chou +dca 1456/udp # DCA +dca 1456/tcp # DCA +# Jeff Garbers +valisys-lm 1457/udp # Valisys License Manager +valisys-lm 1457/tcp # Valisys License Manager +# Leslie Lincoln +nrcabq-lm 1458/udp # Nichols Research Corp. +nrcabq-lm 1458/tcp # Nichols Research Corp. +# Howard Cole +proshare1 1459/udp # Proshare Notebook Application +proshare1 1459/tcp # Proshare Notebook Application +proshare2 1460/udp # Proshare Notebook Application +proshare2 1460/tcp # Proshare Notebook Application +# Robin Kar +ibm_wrless_lan 1461/udp # IBM Wireless LAN +ibm_wrless_lan 1461/tcp # IBM Wireless LAN +# +world-lm 1462/udp # World License Manager +world-lm 1462/tcp # World License Manager +# Michael S Amirault +nucleus 1463/udp # Nucleus +nucleus 1463/tcp # Nucleus +# Venky Nagar +msl_lmd 1464/udp # MSL License Manager +msl_lmd 1464/tcp # MSL License Manager +# Matt Timmermans +pipes 1465/udp # Pipes Platform mfarlin@peerlogic.com +pipes 1465/tcp # Pipes Platform +# Mark Farlin +oceansoft-lm 1466/udp # Ocean Software License Manager +oceansoft-lm 1466/tcp # Ocean Software License Manager +# Randy Leonard +csdmbase 1467/udp # CSDMBASE +csdmbase 1467/tcp # CSDMBASE +csdm 1468/udp # CSDM +csdm 1468/tcp # CSDM +# Robert Stabl +aal-lm 1469/udp # Active Analysis Limited License Manager +aal-lm 1469/tcp # Active Analysis Limited License Manager +# David Snocken +44 (71)437-7009 +uaiact 1470/udp # Universal Analytics +uaiact 1470/tcp # Universal Analytics +# Mark R. Ludwig +csdmbase 1471/udp # csdmbase +csdmbase 1471/tcp # csdmbase +csdm 1472/udp # csdm +csdm 1472/tcp # csdm +# Robert Stabl +openmath 1473/udp # OpenMath +openmath 1473/tcp # OpenMath +# Garth Mayville +telefinder 1474/udp # Telefinder +telefinder 1474/tcp # Telefinder +# Jim White +taligent-lm 1475/udp # Taligent License Manager +taligent-lm 1475/tcp # Taligent License Manager +# Mark Sapsford +clvm-cfg 1476/udp # clvm-cfg +clvm-cfg 1476/tcp # clvm-cfg +# Eric Soderberg +ms-sna-server 1477/udp # ms-sna-server +ms-sna-server 1477/tcp # ms-sna-server +ms-sna-base 1478/udp # ms-sna-base +ms-sna-base 1478/tcp # ms-sna-base +# Gordon Mangione +dberegister 1479/udp # dberegister +dberegister 1479/tcp # dberegister +# Brian Griswold +pacerforum 1480/udp # PacerForum +pacerforum 1480/tcp # PacerForum +# Peter Caswell +airs 1481/udp # AIRS +airs 1481/tcp # AIRS +# Bruce Wilson, 905-771-6161 +miteksys-lm 1482/udp # Miteksys License Manager +miteksys-lm 1482/tcp # Miteksys License Manager +# Shane McRoberts +afs 1483/udp # AFS License Manager +afs 1483/tcp # AFS License Manager +# Michael R. Pizolato +confluent 1484/udp # Confluent License Manager +confluent 1484/tcp # Confluent License Manager +# James Greenfiel +lansource 1485/udp # LANSource +lansource 1485/tcp # LANSource +# Christopher Wells +nms_topo_serv 1486/udp # nms_topo_serv +nms_topo_serv 1486/tcp # nms_topo_serv +# Sylvia Siu +localinfosrvr 1487/udp # LocalInfoSrvr +localinfosrvr 1487/tcp # LocalInfoSrvr +# Brian Matthews +docstor 1488/udp # DocStor +docstor 1488/tcp # DocStor +# Brian Spears +dmdocbroker 1489/udp # dmdocbroker +dmdocbroker 1489/tcp # dmdocbroker +# Razmik Abnous +insitu-conf 1490/udp # insitu-conf +insitu-conf 1490/tcp # insitu-conf +# Paul Blacknell +anynetgateway 1491/udp # anynetgateway +anynetgateway 1491/tcp # anynetgateway +# Dan Poirier +stone-design-1 1492/udp # stone-design-1 +stone-design-1 1492/tcp # stone-design-1 +# Andrew Stone +netmap_lm 1493/udp # netmap_lm +netmap_lm 1493/tcp # netmap_lm +# Phillip Magson +ica 1494/udp # ica +ica 1494/tcp # ica +# John Richardson, Citrix Systems +cvc 1495/udp # cvc +cvc 1495/tcp # cvc +# Bill Davidson +liberty-lm 1496/udp # liberty-lm +liberty-lm 1496/tcp # liberty-lm +# Jim Rogers +rfx-lm 1497/udp # rfx-lm +rfx-lm 1497/tcp # rfx-lm +# Bill Bishop +sybase-sqlany 1498/udp # Sybase SQL Any +sybase-sqlany 1498/tcp # Sybase SQL Any +# Dave Neudoerffer +fhc 1499/udp # Federico Heinz Consultora +fhc 1499/tcp # Federico Heinz Consultora +# Federico Heinz +vlsi-lm 1500/udp # VLSI License Manager +vlsi-lm 1500/tcp # VLSI License Manager +# Shue-Lin Kuo +saiscm 1501/udp # Satellite-data Acquisition System 3 +saiscm 1501/tcp # Satellite-data Acquisition System 3 +# Bill Taylor +shivadiscovery 1502/udp # Shiva +shivadiscovery 1502/tcp # Shiva +# Jonathan Wenocur +imtc-mcs 1503/udp # Databeam +imtc-mcs 1503/tcp # Databeam +# Jim Johnston +evb-elm 1504/udp # EVB Software Engineering License Manager +evb-elm 1504/tcp # EVB Software Engineering License Manager +# B.G. Mahesh < mahesh@sett.com> +funkproxy 1505/udp # Funk Software, Inc. +funkproxy 1505/tcp # Funk Software, Inc. +# Robert D. Vincent +utcd 1506/udp # Universal Time daemon (utcd) +utcd 1506/tcp # Universal Time daemon (utcd) +# Walter Poxon +symplex 1507/udp # symplex +symplex 1507/tcp # symplex +# Mike Turley +diagmond 1508/udp # diagmond +diagmond 1508/tcp # diagmond +# Pete Moscatelli +robcad-lm 1509/udp # Robcad, Ltd. License Manager +robcad-lm 1509/tcp # Robcad, Ltd. License Manager +# Hindin Joseph +mvx-lm 1510/udp # Midland Valley Exploration Ltd. Lic. Man. +mvx-lm 1510/tcp # Midland Valley Exploration Ltd. Lic. Man. +# Neil Salter Laszlo +3l-l1 1511/udp # 3l-l1 +3l-l1 1511/tcp # 3l-l1 +# Ian A. Young +wins 1512/udp # Microsoft's Windows Internet Name Service +wins 1512/tcp # Microsoft's Windows Internet Name Service +# Pradeep Bahl +fujitsu-dtc 1513/udp # Fujitsu Systems Business of America, Inc +fujitsu-dtc 1513/tcp # Fujitsu Systems Business of America, Inc +fujitsu-dtcns 1514/udp # Fujitsu Systems Business of America, Inc +fujitsu-dtcns 1514/tcp # Fujitsu Systems Business of America, Inc +# Charles A. Higgins <75730.2257@compuserve.com> +ifor-protocol 1515/udp # ifor-protocol +ifor-protocol 1515/tcp # ifor-protocol +# Dr. R.P. Alston +vpad 1516/udp # Virtual Places Audio data +vpad 1516/tcp # Virtual Places Audio data +vpac 1517/udp # Virtual Places Audio control +vpac 1517/tcp # Virtual Places Audio control +vpvd 1518/udp # Virtual Places Video data +vpvd 1518/tcp # Virtual Places Video data +vpvc 1519/udp # Virtual Places Video control +vpvc 1519/tcp # Virtual Places Video control +# Avshalom Houri +atm-zip-office 1520/udp # atm zip office +atm-zip-office 1520/tcp # atm zip office +# Wilson Kwan +ncube-lm 1521/udp # nCube License Manager +ncube-lm 1521/tcp # nCube License Manager +# Maxine Yuen +ricardo-lm 1522/udp # Ricardo North America License Manager +ricardo-lm 1522/tcp # Ricardo North America License Manager +# Mike Flemming +cichild-lm 1523/udp # cichild +cichild-lm 1523/tcp # cichild +# Andy Burgess +ingreslock 1524/udp # ingres +ingreslock 1524/tcp # ingres +orasrv 1525/udp prospero-np # oracle +orasrv 1525/tcp prospero-np # oracle +pdap-np 1526/udp # Prospero Data Access Prot non-priv +pdap-np 1526/tcp # Prospero Data Access Prot non-priv +# B. Clifford Neuman +tlisrv 1527/udp # oracle +tlisrv 1527/tcp # oracle +mciautoreg 1528/udp # micautoreg +mciautoreg 1528/tcp # micautoreg +# John Klensin +coauthor 1529/udp # oracle +coauthor 1529/tcp # oracle +rap-service 1530/udp # rap-service +rap-service 1530/tcp # rap-service +rap-listen 1531/udp # rap-listen +rap-listen 1531/tcp # rap-listen +# Phil Servita +miroconnect 1532/udp # miroconnect +miroconnect 1532/tcp # miroconnect +# Michael Fischer +49 531 21 13 0 +virtual-places 1533/udp # Virtual Places Software +virtual-places 1533/tcp # Virtual Places Software +# Avshalom Houri +micromuse-lm 1534/udp # micromuse-lm +micromuse-lm 1534/tcp # micromuse-lm +# Adam Kerrison +ampr-info 1535/udp # ampr-info +ampr-info 1535/tcp # ampr-info +ampr-inter 1536/udp # ampr-inter +ampr-inter 1536/tcp # ampr-inter +# Rob Janssen +sdsc-lm 1537/udp # isi-lm +sdsc-lm 1537/tcp # isi-lm +# Len Wanger +3ds-lm 1538/udp # 3ds-lm +3ds-lm 1538/tcp # 3ds-lm +# Keith Trummel +intellistor-lm 1539/udp # Intellistor License Manager +intellistor-lm 1539/tcp # Intellistor License Manager +# Ron Vaughn +rds 1540/udp # rds +rds 1540/tcp # rds +rds2 1541/udp # rds2 +rds2 1541/tcp # rds2 +# Sudhakar Rajamannar +gridgen-elmd 1542/udp # gridgen-elmd +gridgen-elmd 1542/tcp # gridgen-elmd +# John R. Chawner +1 817 354-1004 +simba-cs 1543/udp # simba-cs +simba-cs 1543/tcp # simba-cs +# Betsy Alexander +1 604-681-4549 +aspeclmd 1544/udp # aspeclmd +aspeclmd 1544/tcp # aspeclmd +# V. Balaji +vistium-share 1545/udp # vistium-share +vistium-share 1545/tcp # vistium-share +# Allison Carleton +# +abbaccuray 1546/udp # abbaccuray +abbaccuray 1546/tcp # abbaccuray +# John Wendt 614-261-2000 +laplink 1547/udp # laplink +laplink 1547/tcp # laplink +# Michael Crawford +axon-lm 1548/udp # Axon License Manager +axon-lm 1548/tcp # Axon License Manager +# Mark Pearce < +shivasound 1549/udp # Shiva Sound +shivahose 1549/tcp # Shiva Hose +# Kin Chan +3m-image-lm 1550/udp # Image Storage license manager 3M Company +3m-image-lm 1550/tcp # Image Storage license manager 3M Company +# J. C. Canessa +hecmtl-db 1551/udp # HECMTL-DB +hecmtl-db 1551/tcp # HECMTL-DB +# Maxime Belanger +pciarray 1552/udp # pciarray +pciarray 1552/tcp # pciarray +# Ron Folk +sna-cs 1553/udp # sna-cs +sna-cs 1553/tcp # sna-cs +# Tony Sowter +caci-lm 1554/udp # CACI Products Company License Manager +caci-lm 1554/tcp # CACI Products Company License Manager +# Erik Blume +livelan 1555/udp # livelan +livelan 1555/tcp # livelan +# khedayat@roadrunner.pictel.com +ashwin 1556/udp # AshWin CI Tecnologies +ashwin 1556/tcp # AshWin CI Tecnologies +# Dave Neal +arbortext-lm 1557/udp # ArborText License Manager +arbortext-lm 1557/tcp # ArborText License Manager +# David J. Wilson +xingmpeg 1558/udp # xingmpeg +xingmpeg 1558/tcp # xingmpeg +# Howard Gordon +web2host 1559/udp # web2host +web2host 1559/tcp # web2host +# Stephen Johnson +asci-val 1560/udp # ASCI-RemoteSHADOW +asci-val 1560/tcp # ASCI-RemoteSHADOW +# Benjamin Rosenberg +facilityview 1561/udp # facilityview +facilityview 1561/tcp # facilityview +# Ed Green +pconnectmgr 1562/udp # pconnectmgr +pconnectmgr 1562/tcp # pconnectmgr +# Bob Kaiser +cadabra-lm 1563/udp # Cadabra License Manager +cadabra-lm 1563/tcp # Cadabra License Manager +# Arthur Castonguay +pay-per-view 1564/udp # Pay-Per-View +pay-per-view 1564/tcp # Pay-Per-View +# Brian Tung +winddlb 1565/udp # WinDD +winddlb 1565/tcp # WinDD +# Kelly Sims +corelvideo 1566/udp # CORELVIDEO +corelvideo 1566/tcp # CORELVIDEO +# Ming Poon +jlicelmd 1567/udp # jlicelmd +jlicelmd 1567/tcp # jlicelmd +# Christian Schormann <100410.3063@compuserve.com> +tsspmap 1568/udp # tsspmap +tsspmap 1568/tcp # tsspmap +# Paul W. Nelson +ets 1569/udp # ets +ets 1569/tcp # ets +# Carstein Seeberg +orbixd 1570/udp # orbixd +orbixd 1570/tcp # orbixd +# Bridget Walsh +rdb-dbs-disp 1571/udp # Oracle Remote Data Base +rdb-dbs-disp 1571/tcp # Oracle Remote Data Base +# +chip-lm 1572/udp # Chipcom License Manager +chip-lm 1572/tcp # Chipcom License Manager +# Jerry Natowitz +itscomm-ns 1573/udp # itscomm-ns +itscomm-ns 1573/tcp # itscomm-ns +# Rich Thompson +mvel-lm 1574/udp # mvel-lm +mvel-lm 1574/tcp # mvel-lm +# David Bisset +oraclenames 1575/udp # oraclenames +oraclenames 1575/tcp # oraclenames +# P.V.Shivkumar +moldflow-lm 1576/udp # moldflow-lm +moldflow-lm 1576/tcp # moldflow-lm +# Paul Browne +hypercube-lm 1577/udp # hypercube-lm +hypercube-lm 1577/tcp # hypercube-lm +# Christopher McLendon +jacobus-lm 1578/udp # Jacobus License Manager +jacobus-lm 1578/tcp # Jacobus License Manager +# Tony Cleveland +ioc-sea-lm 1579/udp # ioc-sea-lm +ioc-sea-lm 1579/tcp # ioc-sea-lm +# Paul Nelson +tn-tl-r2 1580/udp # tn-tl-r2 +tn-tl-r1 1580/tcp # tn-tl-r1 +# Ed Kress +mil-2045-47001 1581/udp # MIL-2045-47001 +mil-2045-47001 1581/tcp # MIL-2045-47001 +# Eric Whitehill +msims 1582/udp # MSIMS +msims 1582/tcp # MSIMS +# Glenn Olander +simbaexpress 1583/udp # simbaexpress +simbaexpress 1583/tcp # simbaexpress +# Betsy Alexander +1 604-681-4549 +tn-tl-fd2 1584/udp # tn-tl-fd2 +tn-tl-fd2 1584/tcp # tn-tl-fd2 +# Ed Kress +intv 1585/udp # intv +intv 1585/tcp # intv +# Dermot Tynand +ibm-abtact 1586/udp # ibm-abtact +ibm-abtact 1586/tcp # ibm-abtact +# Sandeep K. Singhal +pra_elmd 1587/udp # pra_elmd +pra_elmd 1587/tcp # pra_elmd +# Dennis Mastin +triquest-lm 1588/udp # triquest-lm +triquest-lm 1588/tcp # triquest-lm +# Nand Kumar +vqp 1589/udp # VQP +vqp 1589/tcp # VQP +# Keith McCloghrie +gemini-lm 1590/udp # gemini-lm +gemini-lm 1590/tcp # gemini-lm +# Tony Sawyer +ncpm-pm 1591/udp # ncpm-pm +ncpm-pm 1591/tcp # ncpm-pm +# Ted Power +commonspace 1592/udp # commonspace +commonspace 1592/tcp # commonspace +# Rob Chandhok +mainsoft-lm 1593/udp # mainsoft-lm +mainsoft-lm 1593/tcp # mainsoft-lm +# Anand Gangadharan +sixtrak 1594/udp # sixtrak +sixtrak 1594/tcp # sixtrak +# Bob Rennie +radio 1595/udp # radio +radio 1595/tcp # radio +radio-bc 1596/udp # radio-bc +radio-sm 1596/tcp # radio-sm +# Ken Chapman +orbplus-iiop 1597/udp # orbplus-iiop +orbplus-iiop 1597/tcp # orbplus-iiop +# Robert A. Kukura +picknfs 1598/udp # picknfs +picknfs 1598/tcp # picknfs +# John Lombardo +simbaservices 1599/udp # simbaservices +simbaservices 1599/tcp # simbaservices +# Betsy Alexander +1 604-681-4549 +issd 1600/udp # +issd 1600/tcp # +aas 1601/udp # aas +aas 1601/tcp # aas +# Bob Beard +inspect 1602/udp # inspect +inspect 1602/tcp # inspect +# Frank O'Neill +picodbc 1603/udp # pickodbc +picodbc 1603/tcp # pickodbc +# John Lombardo +icabrowser 1604/udp # icabrowser +icabrowser 1604/tcp # icabrowser +# Brad Pedersen +slp 1605/udp # Salutation Manager (Salutation Protocol) +slp 1605/tcp # Salutation Manager (Salutation Protocol) +slm-api 1606/udp # Salutation Manager (SLM-API) +slm-api 1606/tcp # Salutation Manager (SLM-API) +# Tohru Mori +stt 1607/udp # stt +stt 1607/tcp # stt +# Ryan Bolz +smart-lm 1608/udp # Smart Corp. License Manager +smart-lm 1608/tcp # Smart Corp. License Manager +# Connie Qiu +isysg-lm 1609/udp # isysg-lm +isysg-lm 1609/tcp # isysg-lm +# Adam Curtin +taurus-wh 1610/udp # taurus-wh +taurus-wh 1610/tcp # taurus-wh +# Jeff Moffatt +ill 1611/udp # Inter Library Loan +ill 1611/tcp # Inter Library Loan +# Niall Murphy +netbill-trans 1612/udp # NetBill Transaction Server +netbill-trans 1612/tcp # NetBill Transaction Server +netbill-keyrep 1613/udp # NetBill Key Repository +netbill-keyrep 1613/tcp # NetBill Key Repository +netbill-cred 1614/udp # NetBill Credential Server +netbill-cred 1614/tcp # NetBill Credential Server +netbill-auth 1615/udp # NetBill Authorization Server +netbill-auth 1615/tcp # NetBill Authorization Server +netbill-prod 1616/udp # NetBill Product Server +netbill-prod 1616/tcp # NetBill Product Server +# Marvin Sirbu +nimrod-agent 1617/udp # Nimrod Inter-Agent Communication +nimrod-agent 1617/tcp # Nimrod Inter-Agent Communication +# Charles Lynn +skytelnet 1618/udp # skytelnet +skytelnet 1618/tcp # skytelnet +# Byron Jones +xs-openstorage 1619/udp # xs-openstorage +xs-openstorage 1619/tcp # xs-openstorage +# XuiS Software Ltd. <100322.2376@compuserve.com> +faxportwinport 1620/udp # faxportwinport +faxportwinport 1620/tcp # faxportwinport +# Chris Wells +softdataphone 1621/udp # softdataphone +softdataphone 1621/tcp # softdataphone +# Dror Gill n +ontime 1622/udp # ontime +ontime 1622/tcp # ontime +# Keith Rhodes 810-559-5955 +jaleosnd 1623/udp # jaleosnd +jaleosnd 1623/tcp # jaleosnd +# Christian Schormann <100410.3063@compuserve.com> +udp-sr-port 1624/udp # udp-sr-port +udp-sr-port 1624/tcp # udp-sr-port +# Herb Jensen +svs-omagent 1625/udp # svs-omagent +svs-omagent 1625/tcp # svs-omagent +# Alberto Berlen +shockwave 1626/udp # Shockwave +shockwave 1626/tcp # Shockwave +# Sarah Allen +t128-gateway 1627/udp # T.128 Gateway +t128-gateway 1627/tcp # T.128 Gateway +# Phil May +lontalk-norm 1628/udp # LonTalk normal +lontalk-norm 1628/tcp # LonTalk normal +lontalk-urgnt 1629/udp # LonTalk urgent +lontalk-urgnt 1629/tcp # LonTalk urgent +# Dan Wing +oraclenet8cman 1630/udp # Oracle Net8 Cman +oraclenet8cman 1630/tcp # Oracle Net8 Cman +# Tong-Ming Lee +visitview 1631/udp # Visit view +visitview 1631/tcp # Visit view +# Tom Whittaker +pammratc 1632/udp # PAMMRATC +pammratc 1632/tcp # PAMMRATC +pammrpc 1633/udp # PAMMRPC +pammrpc 1633/tcp # PAMMRPC +# John Britton +loaprobe 1634/udp # Log On America Probe +loaprobe 1634/tcp # Log On America Probe +# James Tavares, Log On America +edb-server1 1635/udp # EDB Server 1 +edb-server1 1635/tcp # EDB Server 1 +# Carlos Portela +cncp 1636/udp # CableNet Control Protocol +cncp 1636/tcp # CableNet Control Protocol +cnap 1637/udp # CableNet Admin Protocol +cnap 1637/tcp # CableNet Admin Protocol +cnip 1638/udp # CableNet Info Protocol +cnip 1638/tcp # CableNet Info Protocol +# Damian Hamill +cert-initiator 1639/udp # cert-initiator +cert-initiator 1639/tcp # cert-initiator +cert-responder 1640/udp # cert-responder +cert-responder 1640/tcp # cert-responder +# Tom Markson +invision 1641/udp # InVision +invision 1641/tcp # InVision +# Christopher Davey +isis-am 1642/udp # isis-am +isis-am 1642/tcp # isis-am +isis-ambc 1643/udp # isis-ambc +isis-ambc 1643/tcp # isis-ambc +# Ken Chapman +saiseh 1644/tcp # Satellite-data Acquisition System 4 +# Bill Taylor +sightline 1645/udp # SightLine +sightline 1645/tcp # SightLine +# Stuart J. Newman +sa-msg-port 1646/udp # sa-msg-port +sa-msg-port 1646/tcp # sa-msg-port +# Eric Whitehill +rsap 1647/udp # rsap +rsap 1647/tcp # rsap +# Holger Reif +# +concurrent-lm 1648/udp # concurrent-lm +concurrent-lm 1648/tcp # concurrent-lm +# Maggie Brinsford +kermit 1649/udp # kermit +kermit 1649/tcp # kermit +# Frank da Cruz +nkd 1650/udp # nkd +nkd 1650/tcp # nkdn +shiva_confsrvr 1651/udp # shiva_confsrvr +shiva_confsrvr 1651/tcp # shiva_confsrvr +# Mike Horowitz +xnmp 1652/udp # xnmp +xnmp 1652/tcp # xnmp +# Ali Saleh +alphatech-lm 1653/udp # alphatech-lm +alphatech-lm 1653/tcp # alphatech-lm +# Joseph Hauk +stargatealerts 1654/udp # stargatealerts +stargatealerts 1654/tcp # stargatealerts +# Tim Coppernoll +# +dec-mbadmin 1655/udp # dec-mbadmin +dec-mbadmin 1655/tcp # dec-mbadmin +dec-mbadmin-h 1656/udp # dec-mbadmin-h +dec-mbadmin-h 1656/tcp # dec-mbadmin-h +# Nick Shipman +fujitsu-mmpdc 1657/udp # fujitsu-mmpdc +fujitsu-mmpdc 1657/tcp # fujitsu-mmpdc +# Katsumi Oomuro +sixnetudr 1658/udp # sixnetudr +sixnetudr 1658/tcp # sixnetudr +# Bob Rennie +sg-lm 1659/udp # Silicon Grail License Manager +sg-lm 1659/tcp # Silicon Grail License Manager +# William R Bishop +skip-mc-gikreq 1660/udp # skip-mc-gikreq +skip-mc-gikreq 1660/tcp # skip-mc-gikreq +# Tom Markson +netview-aix-1 1661/udp # netview-aix-1 +netview-aix-1 1661/tcp # netview-aix-1 +netview-aix-2 1662/udp # netview-aix-2 +netview-aix-2 1662/tcp # netview-aix-2 +netview-aix-3 1663/udp # netview-aix-3 +netview-aix-3 1663/tcp # netview-aix-3 +netview-aix-4 1664/udp # netview-aix-4 +netview-aix-4 1664/tcp # netview-aix-4 +netview-aix-5 1665/udp # netview-aix-5 +netview-aix-5 1665/tcp # netview-aix-5 +netview-aix-6 1666/udp # netview-aix-6 +netview-aix-6 1666/tcp # netview-aix-6 +netview-aix-7 1667/udp # netview-aix-7 +netview-aix-7 1667/tcp # netview-aix-7 +netview-aix-8 1668/udp # netview-aix-8 +netview-aix-8 1668/tcp # netview-aix-8 +netview-aix-9 1669/udp # netview-aix-9 +netview-aix-9 1669/tcp # netview-aix-9 +netview-aix-10 1670/udp # netview-aix-10 +netview-aix-10 1670/tcp # netview-aix-10 +netview-aix-11 1671/udp # netview-aix-11 +netview-aix-11 1671/tcp # netview-aix-11 +netview-aix-12 1672/udp # netview-aix-12 +netview-aix-12 1672/tcp # netview-aix-12 +# Martha Crisson +# +proshare-mc-1 1673/udp # Intel Proshare Multicast +proshare-mc-1 1673/tcp # Intel Proshare Multicast +proshare-mc-2 1674/udp # Intel Proshare Multicast +proshare-mc-2 1674/tcp # Intel Proshare Multicast +# Mark Lewis +pdp 1675/udp # Pacific Data Products +pdp 1675/tcp # Pacific Data Products +# Gary Morton +netcomm2 1676/udp # netcomm2 +netcomm1 1676/tcp # netcomm1 +# Bulent Kasman +groupwise 1677/udp # groupwise +groupwise 1677/tcp # groupwise +# Brent Bradshaw +prolink 1678/udp # prolink +prolink 1678/tcp # prolink +# Brian Abramson +darcorp-lm 1679/udp # darcorp-lm +darcorp-lm 1679/tcp # darcorp-lm +# +microcom-sbp 1680/udp # microcom-sbp +microcom-sbp 1680/tcp # microcom-sbp +# Boris B. Maiden +sd-elmd 1681/udp # sd-elmd +sd-elmd 1681/tcp # sd-elmd +# Bryan Otey +lanyon-lantern 1682/udp # lanyon-lantern +lanyon-lantern 1682/tcp # lanyon-lantern +# Robin Lewis +ncpm-hip 1683/udp # ncpm-hip +ncpm-hip 1683/tcp # ncpm-hip +# Ken Hearn +snaresecure 1684/udp # SnareSecure +snaresecure 1684/tcp # SnareSecure +# Marty Batchelder +n2nremote 1685/udp # n2nremote +n2nremote 1685/tcp # n2nremote +# Kin Chan +cvmon 1686/udp # cvmon +cvmon 1686/tcp # cvmon +# Carol Ann Krug +nsjtp-ctrl 1687/udp # nsjtp-ctrl +nsjtp-ctrl 1687/tcp # nsjtp-ctrl +nsjtp-data 1688/udp # nsjtp-data +nsjtp-data 1688/tcp # nsjtp-data +# Orazio Granato +firefox 1689/udp # firefox +firefox 1689/tcp # firefox +# Mark S. Edwards +ng-umds 1690/udp # ng-umds +ng-umds 1690/tcp # ng-umds +# Louis E. Simard <76400.3371@compuserve.com> +empire-empuma 1691/udp # empire-empuma +empire-empuma 1691/tcp # empire-empuma +# Bobby Krupczak +sstsys-lm 1692/udp # sstsys-lm +sstsys-lm 1692/tcp # sstsys-lm +# Yih-Wu Wang +rrirtr 1693/udp # rrirtr +rrirtr 1693/tcp # rrirtr +rrimwm 1694/udp # rrimwm +rrimwm 1694/tcp # rrimwm +rrilwm 1695/udp # rrilwm +rrilwm 1695/tcp # rrilwm +rrifmm 1696/udp # rrifmm +rrifmm 1696/tcp # rrifmm +rrisat 1697/udp # rrisat +rrisat 1697/tcp # rrisat +# Allen Briggs +rsvp-encap-1 1698/udp # RSVP-ENCAPSULATION-1 +rsvp-encap-1 1698/tcp # RSVP-ENCAPSULATION-1 +rsvp-encap-2 1699/udp # RSVP-ENCAPSULATION-2 +rsvp-encap-2 1699/tcp # RSVP-ENCAPSULATION-2 +# Bob Braden +mps-raft 1700/udp # mps-raft +mps-raft 1700/tcp # mps-raft +# Jason Leupen +l2f 1701/udp l2tp # l2f +l2f 1701/tcp l2tp # l2f +# Andy Valencia +deskshare 1702/udp # deskshare +deskshare 1702/tcp # deskshare +# Sarah Thompson cchou@zoom.com> +bcs-broker 1704/udp # bcs-broker +bcs-broker 1704/tcp # bcs-broker +# Andy Warner +slingshot 1705/udp # slingshot +slingshot 1705/tcp # slingshot +# Paul Groarke +jetform 1706/udp # jetform +jetform 1706/tcp # jetform +# gdeinsta +vdmplay 1707/udp # vdmplay +vdmplay 1707/tcp # vdmplay +# Vadim Lebedev +gat-lmd 1708/udp # gat-lmd +gat-lmd 1708/tcp # gat-lmd +# Igor Zaoutine +centra 1709/udp # centra +centra 1709/tcp # centra +# Drew Wolff +impera 1710/udp # impera +impera 1710/tcp # impera +# Stepehen Campbell +pptconference 1711/udp # pptconference +pptconference 1711/tcp # pptconference +# John Tafoya +registrar 1712/udp # resource monitoring service +registrar 1712/tcp # resource monitoring service +# Ron Lawson +conferencetalk 1713/udp # ConferenceTalk +conferencetalk 1713/tcp # ConferenceTalk +# George Kajos +sesi-lm 1714/udp # sesi-lm +sesi-lm 1714/tcp # sesi-lm +houdini-lm 1715/udp # houdini-lm +houdini-lm 1715/tcp # houdini-lm +# Paul Breslin +xmsg 1716/udp # xmsg +xmsg 1716/tcp # xmsg +# Mark E. Fogle +fj-hdnet 1717/udp # fj-hdnet +fj-hdnet 1717/tcp # fj-hdnet +# Manabu Makino +h323gatedisc 1718/udp # h323gatedisc +h323gatedisc 1718/tcp # h323gatedisc +h323gatestat 1719/udp # h323gatestat +h323gatestat 1719/tcp # h323gatestat +h323hostcall 1720/udp # h323hostcall +h323hostcall 1720/tcp # h323hostcall +# Jim Toga +caicci 1721/udp # caicci +caicci 1721/tcp # caicci +# Sylvia Scheuren +hks-lm 1722/udp # HKS License Manager +hks-lm 1722/tcp # HKS License Manager +# Michael Wood +pptp 1723/udp # pptp +pptp 1723/tcp # pptp +# Ken Crocker +csbphonemaster 1724/udp # csbphonemaster +csbphonemaster 1724/tcp # csbphonemaster +# Mark Kellerhuis +iden-ralp 1725/udp # iden-ralp +iden-ralp 1725/tcp # iden-ralp +# Chris Stanaway +iberiagames 1726/udp # IBERIAGAMES +iberiagames 1726/tcp # IBERIAGAMES +# Jose Luis <73374.313@compuserve.com> +winddx 1727/udp # winddx +winddx 1727/tcp # winddx +# Bill Andrews +telindus 1728/udp # TELINDUS +telindus 1728/tcp # TELINDUS +# Paul Pyck citydisc@euronet.nl> +roketz 1730/udp # roketz +roketz 1730/tcp # roketz +# Ahti Heinla +msiccp 1731/udp # MSICCP +msiccp 1731/tcp # MSICCP +# Max Morris +proxim 1732/udp # proxim +proxim 1732/tcp # proxim +# Srinivas N. Mogalapalli +siipat 1733/udp # SIMS - SIIPAT Protocol for Alarm Transmission +siipat 1733/tcp # SIMS - SIIPAT Protocol for Alarm Transmission +# Steve Ryckman +cambertx-lm 1734/udp # Camber Corporation License Management +cambertx-lm 1734/tcp # Camber Corporation License Management +# Jeannie Burleson +privatechat 1735/udp # PrivateChat +privatechat 1735/tcp # PrivateChat +# Louis E. Simard <76400.3371@CompuServe.COM> +street-stream 1736/udp # street-stream +street-stream 1736/tcp # street-stream +# Glenn Levitt +ultimad 1737/udp # ultimad +ultimad 1737/tcp # ultimad +# (Michael Lanzetta +gamegen1 1738/udp # GameGen1 +gamegen1 1738/tcp # GameGen1 +# Glen Pearson +webaccess 1739/udp # webaccess +webaccess 1739/tcp # webaccess +# Christian Saether +encore 1740/udp # encore +encore 1740/tcp # encore +# Stuart Button +cisco-net-mgmt 1741/udp # cisco-net-mgmt +cisco-net-mgmt 1741/tcp # cisco-net-mgmt +# John McCormack +3Com-nsd 1742/udp # 3Com-nsd +3Com-nsd 1742/tcp # 3Com-nsd +# Nitza Steinberg +cinegrfx-lm 1743/udp # Cinema Graphics License Manager +cinegrfx-lm 1743/tcp # Cinema Graphics License Manager +# Rodney Iwashina +ncpm-ft 1744/udp # ncpm-ft +ncpm-ft 1744/tcp # ncpm-ft +# Ken Hearn +remote-winsock 1745/udp # remote-winsock +remote-winsock 1745/tcp # remote-winsock +# Avi Nathan +ftrapid-1 1746/udp # ftrapid-1 +ftrapid-1 1746/tcp # ftrapid-1 +ftrapid-2 1747/udp # ftrapid-2 +ftrapid-2 1747/tcp # ftrapid-2 +# Richard J. Williams +oracle-em1 1748/udp # oracle-em1 +oracle-em1 1748/tcp # oracle-em1 +# Bob Purvy +aspen-services 1749/udp # aspen-services +aspen-services 1749/tcp # aspen-services +# Mark B. Hurst +sslp 1750/udp # Simple Socket Library's PortMaster +sslp 1750/tcp # Simple Socket Library's PortMaster +# Dr. Charles E. Campbell Jr. +# +swiftnet 1751/udp # SwiftNet +swiftnet 1751/tcp # SwiftNet +# Terry Lim +lofr-lm 1752/udp # Leap of Faith Research License Manager +lofr-lm 1752/tcp # Leap of Faith Research License Manager +# +translogic-lm 1753/udp # Translogic License Manager +translogic-lm 1753/tcp # Translogic License Manager +# Stan Dallas +oracle-em2 1754/udp # oracle-em2 +oracle-em2 1754/tcp # oracle-em2 +# Bob Purvy +ms-streaming 1755/udp # ms-streaming +ms-streaming 1755/tcp # ms-streaming +# Bret O'Rourke +capfast-lmd 1756/udp # capfast-lmd +capfast-lmd 1756/tcp # capfast-lmd +# Chuck Neal +cnhrp 1757/udp # cnhrp +cnhrp 1757/tcp # cnhrp +# William Stoye +tftp-mcast 1758/udp # tftp-mcast +tftp-mcast 1758/tcp # tftp-mcast +# Tom Emberson +spss-lm 1759/udp # SPSS License Manager +spss-lm 1759/tcp # SPSS License Manager +# Tex Hull +www-ldap-gw 1760/udp # www-ldap-gw +www-ldap-gw 1760/tcp # www-ldap-gw +# Nick Emery +cft-0 1761/udp # cft-0 +cft-0 1761/tcp # cft-0 +cft-1 1762/udp # cft-1 +cft-1 1762/tcp # cft-1 +cft-2 1763/udp # cft-2 +cft-2 1763/tcp # cft-2 +cft-3 1764/udp # cft-3 +cft-3 1764/tcp # cft-3 +cft-4 1765/udp # cft-4 +cft-4 1765/tcp # cft-4 +cft-5 1766/udp # cft-5 +cft-5 1766/tcp # cft-5 +cft-6 1767/udp # cft-6 +cft-6 1767/tcp # cft-6 +cft-7 1768/udp # cft-7 +cft-7 1768/tcp # cft-7 +# Martine Marchand 16 1 46 59 24 84 +bmc-net-adm 1769/udp # bmc-net-adm +bmc-net-adm 1769/tcp # bmc-net-adm +# Cameron Haight +bmc-net-svc 1770/udp # bmc-net-svc +bmc-net-svc 1770/tcp # bmc-net-svc +# Cameron Haight bmc-net-svc +vaultbase 1771/udp # vaultbase +vaultbase 1771/tcp # vaultbase +# Jose A. Sesin +essweb-gw 1772/udp # EssWeb Gateway +essweb-gw 1772/tcp # EssWeb Gateway +# Bob Nattenberg +kmscontrol 1773/udp # KMSControl +kmscontrol 1773/tcp # KMSControl +# Roy Chastain +global-dtserv 1774/udp # global-dtserv +global-dtserv 1774/tcp # global-dtserv +# Nicholas Davies +# 1775/tcp +femis 1776/udp # Federal Emergency Management Information System +femis 1776/tcp # Federal Emergency Management Information System +# Larry Gerhardstein +powerguardian 1777/udp # powerguardian +powerguardian 1777/tcp # powerguardian +# Charles Bennett +prodigy-intrnet 1778/udp # prodigy-internet +prodigy-intrnet 1778/tcp # prodigy-internet +# Bob Dedrick +pharmasoft 1779/udp # pharmasoft +pharmasoft 1779/tcp # pharmasoft +# Ola Strandberg +dpkeyserv 1780/udp # dpkeyserv +dpkeyserv 1780/tcp # dpkeyserv +# Yasunari Gon Yamasita +answersoft-lm 1781/udp # answersoft-lm +answersoft-lm 1781/tcp # answersoft-lm +# James A. Brewster +hp-hcip 1782/udp # hp-hcip +hp-hcip 1782/tcp # hp-hcip +# Allen Baker +# 1783 Decomissioned Port 04/14/00, ms +# +finle-lm 1784/udp # Finle License Manager +finle-lm 1784/tcp # Finle License Manager +# Dongling Wang +windlm 1785/udp # Wind River Systems License Manager +windlm 1785/tcp # Wind River Systems License Manager +# Will Dere +funk-logger 1786/udp # funk-logger +funk-logger 1786/tcp # funk-logger +funk-license 1787/udp # funk-license +funk-license 1787/tcp # funk-license +# Cimarron Boozer +# Eric Wilde +psmond 1788/udp # psmond +psmond 1788/tcp # psmond +# Will Golson +hello 1789/udp # hello +hello 1789/tcp # hello +# D. J. Bernstein +nmsp 1790/udp # Narrative Media Streaming Protocol +nmsp 1790/tcp # Narrative Media Streaming Protocol +# Paul Santinelli, Jr. +ea1 1791/udp # EA1 +ea1 1791/tcp # EA1 +# Kirk MacLean +ibm-dt-2 1792/udp # ibm-dt-2 +ibm-dt-2 1792/tcp # ibm-dt-2 +# Sam Borman +rsc-robot 1793/udp # rsc-robot +rsc-robot 1793/tcp # rsc-robot +# Andrew Jay Schneider +cera-bcm 1794/udp # cera-bcm +cera-bcm 1794/tcp # cera-bcm +# Leo Moesgaard +dpi-proxy 1795/udp # dpi-proxy +dpi-proxy 1795/tcp # dpi-proxy +# Charles Gordon +vocaltec-admin 1796/udp # Vocaltec Server Administration +vocaltec-admin 1796/tcp # Vocaltec Server Administration +# Scott Petrack +uma 1797/udp # UMA +uma 1797/tcp # UMA +# Martin Kirk +etp 1798/udp # Event Transfer Protocol +etp 1798/tcp # Event Transfer Protocol +# Mike Wray +netrisk 1799/udp # NETRISK +netrisk 1799/tcp # NETRISK +# Kevin Green +ansys-lm 1800/udp # ANSYS-License manager +ansys-lm 1800/tcp # ANSYS-License manager +# Suzanne Lorrin +msmq 1801/udp # Microsoft Message Que +msmq 1801/tcp # Microsoft Message Que +# Amnon Horowitz +concomp1 1802/udp # ConComp1 +concomp1 1802/tcp # ConComp1 +# Ed Vincent <@edv@concomp.com> +hp-hcip-gwy 1803/udp # HP-HCIP-GWY +hp-hcip-gwy 1803/tcp # HP-HCIP-GWY +# Allen Baker +enl 1804/udp # ENL +enl 1804/tcp # ENL +# Brian Olson +enl-name 1805/udp # ENL-Name +enl-name 1805/tcp # ENL-Name +# Brian Olson +musiconline 1806/udp # Musiconline +musiconline 1806/tcp # Musiconline +# Craig Weeks +fhsp 1807/udp # Fujitsu Hot Standby Protocol +fhsp 1807/tcp # Fujitsu Hot Standby Protocol +# Eiki Iwata (eiki@nd.net.fujitsu.co.jp> +oracle-vp2 1808/udp # Oracle-VP2 +oracle-vp2 1808/tcp # Oracle-VP2 +# Craig Fowler +oracle-vp1 1809/udp # Oracle-VP1 +oracle-vp1 1809/tcp # Oracle-VP1 +# Craig Fowler +jerand-lm 1810/udp # Jerand License Manager +jerand-lm 1810/tcp # Jerand License Manager +# Robert Monat +scientia-sdb 1811/udp # Scientia-SDB +scientia-sdb 1811/tcp # Scientia-SDB +# Ian Miller +radius 1812/udp # RADIUS +radius 1812/tcp # RADIUS +# Carl Rigney +radius-acct 1813/udp # RADIUS Accounting +radius-acct 1813/tcp # RADIUS Accounting +# Carl Rigney +tdp-suite 1814/udp # TDP Suite +tdp-suite 1814/tcp # TDP Suite +# Rob Lockhart +mmpft 1815/udp # MMPFT +mmpft 1815/tcp # MMPFT +# Ralf Muckenhirn +# +harp 1816/udp # HARP +harp 1816/tcp # HARP +# Bjorn Chambless +rkb-oscs 1817/udp # RKB-OSCS +rkb-oscs 1817/tcp # RKB-OSCS +# Robert Kevin Breton +etftp 1818/udp # Enhanced Trivial File Transfer Protocol +etftp 1818/tcp # Enhanced Trivial File Transfer Protocol +# William Polites +plato-lm 1819/udp # Plato License Manager +plato-lm 1819/tcp # Plato License Manager +# Mark Morris +mcagent 1820/udp # mcagent +mcagent 1820/tcp # mcagent +# Ryoichi Shinohara +donnyworld 1821/udp # donnyworld +donnyworld 1821/tcp # donnyworld +# Don Oliver +es-elmd 1822/udp # es-elmd +es-elmd 1822/tcp # es-elmd +# David Duncan +unisys-lm 1823/udp # Unisys Natural Language License Manager +unisys-lm 1823/tcp # Unisys Natural Language License Manager +# Raymond A. Diedrichs +metrics-pas 1824/udp # metrics-pas +metrics-pas 1824/tcp # metrics-pas +# Tom Haapanen +direcpc-video 1825/udp # DirecPC Video +direcpc-video 1825/tcp # DirecPC Video +# Chris Kerrigan +ardt 1826/udp # ARDT +ardt 1826/tcp # ARDT +# Mike Goddard +asi 1827/udp # ASI +asi 1827/tcp # ASI +# Bob Tournoux +itm-mcell-u 1828/udp # itm-mcell-u +itm-mcell-u 1828/tcp # itm-mcell-u +# Miles O'Neal +optika-emedia 1829/udp # Optika eMedia +optika-emedia 1829/tcp # Optika eMedia +# Daryle DeBalski +net8-cman 1830/udp # Oracle Net8 CMan Admin +net8-cman 1830/tcp # Oracle Net8 CMan Admin +# Shuvayu Kanjilal +myrtle 1831/udp # Myrtle +myrtle 1831/tcp # Myrtle +# Ron Achin +tht-treasure 1832/udp # ThoughtTreasure +tht-treasure 1832/tcp # ThoughtTreasure +# Erik Mueller +udpradio 1833/udp # udpradio +udpradio 1833/tcp # udpradio +# Guus Sliepen +ardusuni 1834/udp # ARDUS Unicast +ardusuni 1834/tcp # ARDUS Unicast +ardusmul 1835/udp # ARDUS Multicast +ardusmul 1835/tcp # ARDUS Multicast +# Toshikatsu Ito +ste-smsc 1836/udp # ste-smsc +ste-smsc 1836/tcp # ste-smsc +# Tom Snauwaert +csoft1 1837/udp # csoft1 +csoft1 1837/tcp # csoft1 +# John Coll +talnet 1838/udp # TALNET +talnet 1838/tcp # TALNET +# Aaron Lav +netopia-vo1 1839/udp # netopia-vo1 +netopia-vo1 1839/tcp # netopia-vo1 +netopia-vo2 1840/udp # netopia-vo2 +netopia-vo2 1840/tcp # netopia-vo2 +netopia-vo3 1841/udp # netopia-vo3 +netopia-vo3 1841/tcp # netopia-vo3 +netopia-vo4 1842/udp # netopia-vo4 +netopia-vo4 1842/tcp # netopia-vo4 +netopia-vo5 1843/udp # netopia-vo5 +netopia-vo5 1843/tcp # netopia-vo5 +# Marc Epard +direcpc-dll 1844/udp # DirecPC-DLL +direcpc-dll 1844/tcp # DirecPC-DLL +# Chris Kerrigan +altalink 1845/udp # altalink +altalink 1845/tcp # altalink +# Alberto Raydan +tunstall-pnc 1846/udp # Tunstall PNC +tunstall-pnc 1846/tcp # Tunstall PNC +# Robert M. Moore +slp-notify 1847/udp # SLP Notification +slp-notify 1847/tcp # SLP Notification +# James Kempf +fjdocdist 1848/udp # fjdocdist +fjdocdist 1848/tcp # fjdocdist +# Yuichi Ohiwa +alpha-sms 1849/udp # ALPHA-SMS +alpha-sms 1849/tcp # ALPHA-SMS +# Benjamin Grimm +gsi 1850/udp # GSI +gsi 1850/tcp # GSI +# William Mullaney +ctcd 1851/udp # ctcd +ctcd 1851/tcp # ctcd +# John Ryan +virtual-time 1852/udp # Virtual Time +virtual-time 1852/tcp # Virtual Time +# Angie S. Morner +vids-avtp 1853/udp # VIDS-AVTP +vids-avtp 1853/tcp # VIDS-AVTP +# Sascha Kuemmel +buddy-draw 1854/udp # Buddy Draw +buddy-draw 1854/tcp # Buddy Draw +# Marvin Shin +fiorano-rtrsvc 1855/udp # Fiorano RtrSvc +fiorano-rtrsvc 1855/tcp # Fiorano RtrSvc +fiorano-msgsvc 1856/udp # Fiorano MsgSvc +fiorano-msgsvc 1856/tcp # Fiorano MsgSvc +# Albert Holt +datacaptor 1857/udp # DataCaptor +datacaptor 1857/tcp # DataCaptor +# Steven M. Forrester +privateark 1858/udp # PrivateArk +privateark 1858/tcp # PrivateArk +# Ronen Zoran +gammafetchsvr 1859/udp # Gamma Fetcher Server +gammafetchsvr 1859/tcp # Gamma Fetcher Server +# Cnaan Aviv +sunscalar-svc 1860/udp # SunSCALAR Services +sunscalar-svc 1860/tcp # SunSCALAR Services +# Sanjay Radia +lecroy-vicp 1861/udp # LeCroy VICP +lecroy-vicp 1861/tcp # LeCroy VICP +# Anthony Cake +techra-server 1862/udp # techra-server +techra-server 1862/tcp # techra-server +# Roy Lyseng +msnp 1863/udp # MSNP +msnp 1863/tcp # MSNP +# William Lai +paradym-31port 1864/udp # Paradym 31 Port +paradym-31port 1864/tcp # Paradym 31 Port +# David Wooden +entp 1865/udp # ENTP +entp 1865/tcp # ENTP +# Seiko Epson +swrmi 1866/udp # swrmi +swrmi 1866/tcp # swrmi +# Jun Yoshii +udrive 1867/udp # UDRIVE +udrive 1867/tcp # UDRIVE +# Robby Walker +viziblebrowser 1868/udp # VizibleBrowser +viziblebrowser 1868/tcp # VizibleBrowser +# Jimmy Talbot +yestrader 1869/udp # YesTrader +yestrader 1869/tcp # YesTrader +# Robert Bryan +sunscalar-dns 1870/udp # SunSCALAR DNS Service +sunscalar-dns 1870/tcp # SunSCALAR DNS Service +# Sanjay Radia +canocentral0 1871/udp # Cano Central 0 +canocentral0 1871/tcp # Cano Central 0 +canocentral1 1872/udp # Cano Central 1 +canocentral1 1872/tcp # Cano Central 1 +# Mark McNamara +fjmpjps 1873/udp # Fjmpjps +fjmpjps 1873/tcp # Fjmpjps +fjswapsnp 1874/udp # Fjswapsnp +fjswapsnp 1874/tcp # Fjswapsnp +# Y. Ohiwa +westell-stats 1875/udp # westell stats +westell-stats 1875/tcp # westell stats +# Thomas McCabe +ewcappsrv 1876/udp # ewcappsrv +ewcappsrv 1876/tcp # ewcappsrv +# Howard Yin +hp-webqosdb 1877/udp # hp-webqosdb +hp-webqosdb 1877/tcp # hp-webqosdb +# Kim Scott +drmsmc 1878/udp # drmsmc +drmsmc 1878/tcp # drmsmc +# Katsuhiko Abe +nettgain-nms 1879/udp # NettGain NMS +nettgain-nms 1879/tcp # NettGain NMS +# Dr. Yair Shapira +vsat-control 1880/udp # Gilat VSAT Control +vsat-control 1880/tcp # Gilat VSAT Control +# Yariv Kaplan +ibm-mqseries2 1881/udp # IBM WebSphere MQ +ibm-mqseries2 1881/tcp # IBM WebSphere MQ +# Richard Maxwell +ecsqdmn 1882/udp # ecsqdmn +ecsqdmn 1882/tcp # ecsqdmn +# Paul Wissmiller +ibm-mqisdp 1883/udp # IBM MQSeries SCADA +ibm-mqisdp 1883/tcp # IBM MQSeries SCADA +# Andy Stanford-Clark +idmaps 1884/udp # Internet Distance Map Svc +idmaps 1884/tcp # Internet Distance Map Svc +# Sugih Jamim +vrtstrapserver 1885/udp # Veritas Trap Server +vrtstrapserver 1885/tcp # Veritas Trap Server +# Russell Thrasher +leoip 1886/udp # Leonardo over IP +leoip 1886/tcp # Leonardo over IP +# Dietmar Finkler +filex-lport 1887/udp # FileX Listening Port +filex-lport 1887/tcp # FileX Listening Port +# Megan Woods +ncconfig 1888/udp # NC Config Port +ncconfig 1888/tcp # NC Config Port +# Simon Parker +unify-adapter 1889/udp # Unify Web Adapter Service +unify-adapter 1889/tcp # Unify Web Adapter Service +# Duane Gibson +wilkenlistener 1890/udp # wilkenListener +wilkenlistener 1890/tcp # wilkenListener +# Wilken GmbH +childkey-notif 1891/udp # ChildKey Notification +childkey-notif 1891/tcp # ChildKey Notification +childkey-ctrl 1892/udp # ChildKey Control +childkey-ctrl 1892/tcp # ChildKey Control +# Ivan Berardinelli +elad 1893/udp # ELAD Protocol +elad 1893/tcp # ELAD Protocol +# Franco Milan +o2server-port 1894/udp # O2Server Port +o2server-port 1894/tcp # O2Server Port +# Tim Howard +##### Microsoft (unoffically) using 1895 ##### +b-novative-ls 1896/udp # b-novative license server +b-novative-ls 1896/tcp # b-novative license server +# Matthias Riese +metaagent 1897/udp # MetaAgent +metaagent 1897/tcp # MetaAgent +# Stephane Vinsot +cymtec-port 1898/udp # Cymtec secure management +cymtec-port 1898/tcp # Cymtec secure management +# Michael Mester +mc2studios 1899/udp # MC2Studios +mc2studios 1899/tcp # MC2Studios +# Michael Coon +ssdp 1900/udp # SSDP +ssdp 1900/tcp # SSDP +# Yaron Goland +fjicl-tep-a 1901/udp # Fujitsu ICL Terminal Emulator Program A +fjicl-tep-a 1901/tcp # Fujitsu ICL Terminal Emulator Program A +# Bob Lyon +fjicl-tep-b 1902/udp # Fujitsu ICL Terminal Emulator Program B +fjicl-tep-b 1902/tcp # Fujitsu ICL Terminal Emulator Program B +# Bob Lyon +linkname 1903/udp # Local Link Name Resolution +linkname 1903/tcp # Local Link Name Resolution +# Dan Harrington +fjicl-tep-c 1904/udp # Fujitsu ICL Terminal Emulator Program C +fjicl-tep-c 1904/tcp # Fujitsu ICL Terminal Emulator Program C +# Bob Lyon +sugp 1905/udp # Secure UP.Link Gateway Protocol +sugp 1905/tcp # Secure UP.Link Gateway Protocol +# Peter King +tpmd 1906/udp # TPortMapperReq +tpmd 1906/tcp # TPortMapperReq +# Sheila Devins +intrastar 1907/udp # IntraSTAR +intrastar 1907/tcp # IntraSTAR +# Peter Schoenberger +dawn 1908/udp # Dawn +dawn 1908/tcp # Dawn +# Michael Crawford +global-wlink 1909/udp # Global World Link +global-wlink 1909/tcp # Global World Link +# Nicholas Davies +ultrabac 1910/udp # UltraBac Software communications port +ultrabac 1910/tcp # UltraBac Software communications port +# Paul Bunn +mtp 1911/udp # Starlight Networks Multimedia Transport Protocol +mtp 1911/tcp # Starlight Networks Multimedia Transport Protocol +# Bruce Lieberman +rhp-iibp 1912/udp # rhp-iibp +rhp-iibp 1912/tcp # rhp-iibp +# George Nachman +# Tom Lake +armadp 1913/udp # armadp +armadp 1913/tcp # armadp +# Kevin Welton +elm-momentum 1914/udp # Elm-Momentum +elm-momentum 1914/tcp # Elm-Momentum +# Willie Wu +facelink 1915/udp # FACELINK +facelink 1915/tcp # FACELINK +# J.H. Hermans +persona 1916/udp # Persoft Persona +persona 1916/tcp # Persoft Persona +# Tom Spidell +noagent 1917/udp # nOAgent +noagent 1917/tcp # nOAgent +# Martin Bestmann +can-nds 1918/udp # Candle Directory Service - NDS +can-nds 1918/tcp # Candle Directory Service - NDS +can-dch 1919/udp # Candle Directory Service - DCH +can-dch 1919/tcp # Candle Directory Service - DCH +can-ferret 1920/udp # Candle Directory Service - FERRET +can-ferret 1920/tcp # Candle Directory Service - FERRET +# Dannis Yang +noadmin 1921/udp # NoAdmin +noadmin 1921/tcp # NoAdmin +# Martin Bestmann +tapestry 1922/udp # Tapestry +tapestry 1922/tcp # Tapestry +# Ken Oliver +spice 1923/udp # SPICE +spice 1923/tcp # SPICE +# Nicholas Chua +xiip 1924/udp # XIIP +xiip 1924/tcp # XIIP +# Alain Robert +discovery-port 1925/udp # Surrogate Discovery Port +discovery-port 1925/tcp # Surrogate Discovery Port +# Keith Thompson +egs 1926/udp # Evolution Game Server +egs 1926/tcp # Evolution Game Server +# Simon Butcher +videte-cipc 1927/udp # Videte CIPC Port +videte-cipc 1927/tcp # Videte CIPC Port +# Videte IT +emsd-port 1928/udp # Expnd Maui Srvr Dscovr +emsd-port 1928/tcp # Expnd Maui Srvr Dscovr +# Edo Yahav +bandwiz-system 1929/udp # Bandwiz System - Server +bandwiz-system 1929/tcp # Bandwiz System - Server +# Joseph Weihs +driveappserver 1930/udp # Drive AppServer +driveappserver 1930/tcp # Drive AppServer +# Andrew Johnson +# +amdsched 1931/udp # AMD SCHED +amdsched 1931/tcp # AMD SCHED +# Michael Walsh +ctt-broker 1932/udp # CTT Broker +ctt-broker 1932/tcp # CTT Broker +# Jens Edlund +xmapi 1933/udp # IBM LM MT Agent +xmapi 1933/tcp # IBM LM MT Agent +xaapi 1934/udp # IBM LM Appl Agent +xaapi 1934/tcp # IBM LM Appl Agent +# Helga Wolin +macromedia-fcs 1935/udp # Macromedia Flash Communications server MX +macromedia-fcs 1935/tcp # Macromedia Flash Communications Server MX +# Pritham Shetty +jetcmeserver 1936/udp # JetCmeServer Server Port +jetcmeserver 1936/tcp # JetCmeServer Server Port +jwserver 1937/udp # JetVWay Server Port +jwserver 1937/tcp # JetVWay Server Port +jwclient 1938/udp # JetVWay Client Port +jwclient 1938/tcp # JetVWay Client Port +jvserver 1939/udp # JetVision Server Port +jvserver 1939/tcp # JetVision Server Port +jvclient 1940/udp # JetVision Client Port +jvclient 1940/tcp # JetVision Client Port +# Stephen Tsun +dic-aida 1941/udp # DIC-Aida +dic-aida 1941/tcp # DIC-Aida +# Frans S.C. Witte +res 1942/udp # Real Enterprise Service +res 1942/tcp # Real Enterprise Service +# Bob Janssen +beeyond-media 1943/udp # Beeyond Media +beeyond-media 1943/tcp # Beeyond Media +# Bob Deblier +close-combat 1944/udp # close-combat +close-combat 1944/tcp # close-combat +# David Hua +dialogic-elmd 1945/udp # dialogic-elmd +dialogic-elmd 1945/tcp # dialogic-elmd +# Roger Kay +tekpls 1946/udp # tekpls +tekpls 1946/tcp # tekpls +# Brian Abramson +hlserver 1947/udp # hlserver +hlserver 1947/tcp # hlserver +# Michael Zzunke +eye2eye 1948/udp # eye2eye +eye2eye 1948/tcp # eye2eye +# Trevor Bell +ismaeasdaqlive 1949/udp # ISMA Easdaq Live +ismaeasdaqlive 1949/tcp # ISMA Easdaq Live +ismaeasdaqtest 1950/udp # ISMA Easdaq Test +ismaeasdaqtest 1950/tcp # ISMA Easdaq Test +# Stephen Dunne +bcs-lmserver 1951/udp # bcs-lmserver +bcs-lmserver 1951/tcp # bcs-lmserver +# Andy Warner +mpnjsc 1952/udp # mpnjsc +mpnjsc 1952/tcp # mpnjsc +# Takenori Miyahara +rapidbase 1953/udp # Rapid Base +rapidbase 1953/tcp # Rapid Base +# Antoni Wolski +abr-basic 1954/udp # ABR-Basic Data +abr-basic 1954/tcp # ABR-Basic Data +abr-secure 1955/udp # ABR-Secure Data +abr-secure 1955/tcp # ABR-Secure Data +# Aero9 - Graham Wooden +vrtl-vmf-ds 1956/udp # Vertel VMF DS +vrtl-vmf-ds 1956/tcp # Vertel VMF DS +# Alan Akahoshi +unix-status 1957/udp # unix-status +unix-status 1957/tcp # unix-status +# Thomas Erskine +dxadmind 1958/udp # CA Administration Daemon +dxadmind 1958/tcp # CA Administration Daemon +# John Birrell +simp-all 1959/udp # SIMP Channel +simp-all 1959/tcp # SIMP Channel +# Tim Hunnewell +nasmanager 1960/udp # Merit DAC NASmanager +nasmanager 1960/tcp # Merit DAC NASmanager +# Richard S. Conto +bts-appserver 1961/udp # BTS APPSERVER +bts-appserver 1961/tcp # BTS APPSERVER +# Carl Obsorn +biap-mp 1962/udp # BIAP-MP +biap-mp 1962/tcp # BIAP-MP +# Chuck Shotton +webmachine 1963/udp # WebMachine +webmachine 1963/tcp # WebMachine +# Tim Jowers +solid-e-engine 1964/udp # SOLID E ENGINE +solid-e-engine 1964/tcp # SOLID E ENGINE +# Ari Valtanen +tivoli-npm 1965/udp # Tivoli NPM +tivoli-npm 1965/tcp # Tivoli NPM +# Ivana Cuozzo +slush 1966/udp # Slush +slush 1966/tcp # Slush +# Damien Miller +sns-quote 1967/udp # SNS Quote +sns-quote 1967/tcp # SNS Quote +# Robert Ellman +lipsinc 1968/udp # LIPSinc +lipsinc 1968/tcp # LIPSinc +lipsinc1 1969/udp # LIPSinc 1 +lipsinc1 1969/tcp # LIPSinc 1 +# Robert Armington +netop-rc 1970/udp # NetOp Remote Control +netop-rc 1970/tcp # NetOp Remote Control +netop-school 1971/udp # NetOp School +netop-school 1971/tcp # NetOp School +# NetOp Technical Support +intersys-cache 1972/udp # Cache +intersys-cache 1972/tcp # Cache +# Mark Hanson +dlsrap 1973/udp # Data Link Switching Remote Access Protocol +dlsrap 1973/tcp # Data Link Switching Remote Access Protocol +# Steve T. Chiang +drp 1974/udp # DRP +drp 1974/tcp # DRP +# Richard Alan Johnson +tcoflashagent 1975/udp # TCO Flash Agent +tcoflashagent 1975/tcp # TCO Flash Agent +tcoregagent 1976/udp # TCO Reg Agent +tcoregagent 1976/tcp # TCO Reg Agent +tcoaddressbook 1977/udp # TCO Address Book +tcoaddressbook 1977/tcp # TCO Address Book +# Allan Panitch +unisql 1978/udp # UniSQL +unisql 1978/tcp # UniSQL +unisql-java 1979/udp # UniSQL Java +unisql-java 1979/tcp # UniSQL Java +# Keith Yarbrough +pearldoc-xact 1980/udp # PearlDoc XACT +pearldoc-xact 1980/tcp # PearlDoc XACT +# Chris Vertonghen +p2pq 1981/udp # p2pQ +p2pq 1981/tcp # p2pQ +# Warren Alexander +estamp 1982/udp # Evidentiary Timestamp +estamp 1982/tcp # Evidentiary Timestamp +# Todd Glassey +lhtp 1983/udp # Loophole Test Protocol +lhtp 1983/tcp # Loophole Test Protocol +# Kade Hansson +bb 1984/udp # BB +bb 1984/tcp # BB +# Sean MacGuire +hsrp 1985/udp # Hot Standby Router Protocol +hsrp 1985/tcp # Hot Standby Router Protocol +# Phil Morton +licensedaemon 1986/udp # cisco license management +licensedaemon 1986/tcp # cisco license management +tr-rsrb-p1 1987/udp # cisco RSRB Priority 1 port +tr-rsrb-p1 1987/tcp # cisco RSRB Priority 1 port +tr-rsrb-p2 1988/udp # cisco RSRB Priority 2 port +tr-rsrb-p2 1988/tcp # cisco RSRB Priority 2 port +tr-rsrb-p3 1989/udp # cisco RSRB Priority 3 port +tr-rsrb-p3 1989/tcp # cisco RSRB Priority 3 port +# The following entry records an unassigned but widespread use +mshnet 1989/udp # MHSnet system +mshnet 1989/tcp # MHSnet system +# Bob Kummerfeld +stun-p1 1990/udp # cisco STUN Priority 1 port +stun-p1 1990/tcp # cisco STUN Priority 1 port +stun-p2 1991/udp # cisco STUN Priority 2 port +stun-p2 1991/tcp # cisco STUN Priority 2 port +stun-p3 1992/udp # cisco STUN Priority 3 port +stun-p3 1992/tcp # cisco STUN Priority 3 port +# The following entry records an unassigned but widespread use +ipsendmsg 1992/udp # IPsendmsg +ipsendmsg 1992/tcp # IPsendmsg +# Bob Kummerfeld +snmp-tcp-port 1993/udp # cisco SNMP TCP port +snmp-tcp-port 1993/tcp # cisco SNMP TCP port +stun-port 1994/udp # cisco serial tunnel port +stun-port 1994/tcp # cisco serial tunnel port +perf-port 1995/udp # cisco perf port +perf-port 1995/tcp # cisco perf port +tr-rsrb-port 1996/udp # cisco Remote SRB port +tr-rsrb-port 1996/tcp # cisco Remote SRB port +gdp-port 1997/udp # cisco Gateway Discovery Protocol +gdp-port 1997/tcp # cisco Gateway Discovery Protocol +x25-svc-port 1998/udp # cisco X.25 service (XOT) +x25-svc-port 1998/tcp # cisco X.25 service (XOT) +tcp-id-port 1999/udp # cisco identification port +tcp-id-port 1999/tcp # cisco identification port +# +callbook 2000/udp # callbook +callbook 2000/tcp # callbook +# Devon Bowen +wizard 2001/udp # curry +dc 2001/tcp # +globe 2002/udp # +globe 2002/tcp # +emce 2004/udp # CCWS mm conf +mailbox 2004/tcp # +oracle 2005/udp # +berknet 2005/tcp # +raid-cc 2006/udp # raid +invokator 2006/tcp # +raid-am 2007/udp # +dectalk 2007/tcp # +terminaldb 2008/udp # +conf 2008/tcp # +whosockami 2009/udp # +news 2009/tcp # +pipe_server 2010/udp # +search 2010/tcp # +servserv 2011/udp # +raid-cc 2011/tcp # raid +raid-ac 2012/udp # +ttyinfo 2012/tcp # +raid-cd 2013/udp # +raid-am 2013/tcp # +raid-sf 2014/udp # +troff 2014/tcp # +raid-cs 2015/udp # +cypress 2015/tcp # +bootserver 2016/udp # +bootserver 2016/tcp # +bootclient 2017/udp # +cypress-stat 2017/tcp # +rellpack 2018/udp # +terminaldb 2018/tcp # +about 2019/udp # +whosockami 2019/tcp # +xinupageserver 2020/udp # +xinupageserver 2020/tcp # +xinuexpansion1 2021/udp # +servexec 2021/tcp # +xinuexpansion2 2022/udp # +down 2022/tcp # +xinuexpansion3 2023/udp # +xinuexpansion3 2023/tcp # +xinuexpansion4 2024/udp # +xinuexpansion4 2024/tcp # +xribs 2025/udp # +ellpack 2025/tcp # +scrabble 2026/udp # +scrabble 2026/tcp # +shadowserver 2027/udp # +shadowserver 2027/tcp # +submitserver 2028/udp # +submitserver 2028/tcp # +hsrpv6 2029/tcp # Hot Standby Router Protocol IPv6 +hsrpv6 2029/udp # Hot Standby Router Protocol IPv6 +# 2030 Unassigned +device2 2030/udp # +device2 2030/tcp # +mobrien-chat 2031/tcp # mobrien-chat +mobrien-chat 2031/udp # mobrien-chat +# 2032 Unassigned +blackboard 2032/udp # +blackboard 2032/tcp # +glogger 2033/udp # +glogger 2033/tcp # +scoremgr 2034/udp # +scoremgr 2034/tcp # +imsldoc 2035/udp # +imsldoc 2035/tcp # +e-dpnet 2036/tcp # Ethernet WS DP network +e-dpnet 2036/udp # Ethernet WS DP network +# 2037 Unassigned +p2plus 2037/udp # P2plus Application Server +p2plus 2037/tcp # P2plus Application Server +# Thomas Boerkel +objectmanager 2038/udp # +objectmanager 2038/tcp # +prizma 2039/tcp # Prizma Monitoring Service +prizma 2039/udp # Prizma Monitoring Service +# 2040 Unassigned +lam 2040/udp # +lam 2040/tcp # +interbase 2041/udp # +interbase 2041/tcp # +isis 2042/udp # isis +isis 2042/tcp # isis +isis-bcast 2043/udp # isis-bcast +isis-bcast 2043/tcp # isis-bcast +# Ken Chapman +rimsl 2044/udp # +rimsl 2044/tcp # +cdfunc 2045/udp # +cdfunc 2045/tcp # +sdfunc 2046/udp # +sdfunc 2046/tcp # +dls 2047/udp # +dls 2047/tcp # +dls-monitor 2048/udp # +dls-monitor 2048/tcp # +nfsd 2049/tcp nfs # NFS server daemon +nfsd 2049/udp nfs # NFS server daemon +#PROBLEMS!============================================================= +#shilp 2049/tcp +#shilp 2049/udp +#PROBLEMS!============================================================= +av-emb-config 2050/udp # Avaya EMB Config Port +av-emb-config 2050/tcp # Avaya EMB Config Port +# John Yeager +epnsdp 2051/udp # EPNSDP +epnsdp 2051/tcp # EPNSDP +# Hiroyasu Ogata +clearvisn 2052/udp # clearVisn Services Port +clearvisn 2052/tcp # clearVisn Services Port +# Dave Lyons +lot105-ds-upd 2053/udp # Lot105 DSuper Updates +lot105-ds-upd 2053/tcp # Lot105 DSuper Updates +# Piers Scannell +weblogin 2054/udp # Weblogin Port +weblogin 2054/tcp # Weblogin Port +# Diego Saravia +iop 2055/udp # Iliad-Odyssey Protocol +iop 2055/tcp # Iliad-Odyssey Protocol +# Bruce Lueckenhoff +omnisky 2056/udp # OmniSky Port +omnisky 2056/tcp # OmniSky Port +# Oren Hurvitz +rich-cp 2057/udp # Rich Content Protocol +rich-cp 2057/tcp # Rich Content Protocol +# Ronen Vainish +newwavesearch 2058/udp # NewWaveSearchables RMI +newwavesearch 2058/tcp # NewWaveSearchables RMI +# Thomas Kerkau +bmc-messaging 2059/udp # BMC Messaging Service +bmc-messaging 2059/tcp # BMC Messaging Service +# Roger Huebner +teleniumdaemon 2060/udp # Telenium Daemon IF +teleniumdaemon 2060/tcp # Telenium Daemon IF +# Nick Woronuk +netmount 2061/udp # NetMount +netmount 2061/tcp # NetMount +# Alex Oberlander +icg-swp 2062/udp # ICG SWP Port +icg-swp 2062/tcp # ICG SWP Port +icg-bridge 2063/udp # ICG Bridge Port +icg-bridge 2063/tcp # ICG Bridge Port +icg-iprelay 2064/udp # ICG IP Relay Port +icg-iprelay 2064/tcp # ICG IP Relay Port +# Steve Quintana +dlsrpn 2065/udp # Data Link Switch Read Port Number +dlsrpn 2065/tcp # Data Link Switch Read Port Number +# Amir Peless +aura 2066/tcp # AVM USB Remote Architecture +aura 2066/udp # AVM USB Remote Architecture +# 2067 Unassigned +dlswpn 2067/udp # Data Link Switch Write Port Number +dlswpn 2067/tcp # Data Link Switch Write Port Number +# Amir Peless +avauthsrvprtcl 2068/udp # Avocent AuthSrv Protocol +avauthsrvprtcl 2068/tcp # Avocent AuthSrv Protocol +# Steven W. Clark +event-port 2069/udp # HTTP Event Port +event-port 2069/tcp # HTTP Event Port +# Larry Emlich +ah-esp-encap 2070/udp # AH and ESP Encapsulated in UDP packet +ah-esp-encap 2070/tcp # AH and ESP Encapsulated in UDP packet +# Amy Weaver +acp-port 2071/udp # Axon Control Protocol +acp-port 2071/tcp # Axon Control Protocol +# Christiaan Simons +msync 2072/udp # GlobeCast mSync +msync 2072/tcp # GlobeCast mSync +# Piers Scannell +gxs-data-port 2073/udp # DataReel Database Socket +gxs-data-port 2073/tcp # DataReel Database Socket +# Douglas M. Gaer +vrtl-vmf-sa 2074/udp # Vertel VMF SA +vrtl-vmf-sa 2074/tcp # Vertel VMF SA +# Alan Akahoshi +newlixengine 2075/udp # Newlix ServerWare Engine +newlixengine 2075/tcp # Newlix ServerWare Engine +newlixconfig 2076/udp # Newlix JSPConfig +newlixconfig 2076/tcp # Newlix JSPConfig +# Jean-Serge Gagnon +trellisagt 2077/udp # TrelliSoft Agent +trellisagt 2077/tcp # TrelliSoft Agent +trellissvr 2078/udp # TrelliSoft Server +trellissvr 2078/tcp # TrelliSoft Server +# Justin R. Bendich +idware-router 2079/udp # IDWARE Router Port +idware-router 2079/tcp # IDWARE Router Port +# Zdenek Kolba +autodesk-nlm 2080/udp # Autodesk NLM (FLEXlm) +autodesk-nlm 2080/tcp # Autodesk NLM (FLEXlm) +# Greg Suppes +kme-trap-port 2081/udp # KME PRINTER TRAP PORT +kme-trap-port 2081/tcp # KME PRINTER TRAP PORT +# Masakatsu Matsuo +infowave 2082/udp # Infowave Mobiltiy Server +infowave 2082/tcp # Infowave Mobility Server +# Kaz Kylheku +radsec 2083/tcp # Secure Radius Service +radsec 2083/udp # Secure Radius Service +sunclustergeo 2084/tcp # SunCluster Geographic +sunclustergeo 2084/udp # SunCluster Geographic +ada-cip 2085/tcp # ADA Control +ada-cip 2085/udp # ADA Control +# 2086 Unassigned +gnunet 2086/udp # GNUnet +gnunet 2086/tcp # GNUnet +# Christian Grothoff October 2002 +eli 2087/udp # ELI - Event Logging Integration +eli 2087/tcp # ELI - Event Logging Integration +# Maya Zimerman +ip-blf 2088/tcp # IP Busy Lamp Field +ip-blf 2088/udp # IP Busy Lamp Field +# 2089 Unassigned +sep 2089/udp # Security Encapsulation Protocol - SEP +sep 2089/tcp # Security Encapsulation Protocol - SEP +# Maya Zimerman +lrp 2090/udp # Load Report Protocol +lrp 2090/tcp # Load Report Protocol +# Amir Peless +prp 2091/udp # PRP +prp 2091/tcp # PRP +# Amir Peless +descent3 2092/udp # Descent 3 +descent3 2092/tcp # Descent 3 +# Kevin Bentley +nbx-cc 2093/udp # NBX CC +nbx-cc 2093/tcp # NBX CC +nbx-au 2094/udp # NBX AU +nbx-au 2094/tcp # NBX AU +nbx-ser 2095/udp # NBX SER +nbx-ser 2095/tcp # NBX SER +nbx-dir 2096/udp # NBX DIR +nbx-dir 2096/tcp # NBX DIR +# Henry Houh +jetformpreview 2097/udp # Jet Form Preview +jetformpreview 2097/tcp # Jet Form Preview +# Zygmunt Wiercioch +dialog-port 2098/udp # Dialog Port +dialog-port 2098/tcp # Dialog Port +# Joseph Mathew +h2250-annex-g 2099/udp # H.225.0 Annex G +h2250-annex-g 2099/tcp # H.225.0 Annex G +# Gur Kimchi +amiganetfs 2100/udp # Amiga Network Filesystem +amiganetfs 2100/tcp # Amiga Network Filesystem +# Rudi Chiarito +rtcm-sc104 2101/udp # rtcm-sc104 +rtcm-sc104 2101/tcp # rtcm-sc104 +# Wolfgang Rupprecht +zephyr-srv 2102/udp # Zephyr server +zephyr-srv 2102/tcp # Zephyr server +zephyr-clt 2103/udp # Zephyr serv-hm connection +zephyr-clt 2103/tcp # Zephyr serv-hm connection +zephyr-hm 2104/udp # Zephyr hostmanager +zephyr-hm 2104/tcp # Zephyr hostmanager +# Greg Hudson +minipay 2105/udp # MiniPay +minipay 2105/tcp # MiniPay +# Amir Herzberg +mzap 2106/udp # MZAP +mzap 2106/tcp # MZAP +# Dave Thaler +bintec-admin 2107/udp # BinTec Admin +bintec-admin 2107/tcp # BinTec Admin +# Thomas Schmidt +comcam 2108/udp # Comcam +comcam 2108/tcp # Comcam +# Don Gilbreath +ergolight 2109/udp # Ergolight +ergolight 2109/tcp # Ergolight +# Jindra Ryvola +umsp 2110/udp # UMSP +umsp 2110/tcp # UMSP +# Alexander Bogdanov +dsatp 2111/udp # DSATP +dsatp 2111/tcp # DSATP +# Ralph Beck +idonix-metanet 2112/udp # Idonix MetaNet +idonix-metanet 2112/tcp # Idonix MetaNet +# Paul Harrison +hsl-storm 2113/udp # HSL StoRM +hsl-storm 2113/tcp # HSL StoRM +# Jost Faganel +newheights 2114/udp # NEWHEIGHTS +newheights 2114/tcp # NEWHEIGHTS +# Michael Levy +kdm 2115/udp # Key Distribution Manager +kdm 2115/tcp # Key Distribution Manager +# Mike Little +ccowcmr 2116/udp # CCOWCMR +ccowcmr 2116/tcp # CCOWCMR +# Mark Morwood +mentaclient 2117/udp # MENTACLIENT +mentaclient 2117/tcp # MENTACLIENT +mentaserver 2118/udp # MENTASERVER +mentaserver 2118/tcp # MENTASERVER +# Ilan Shlosberg +gsigatekeeper 2119/udp # GSIGATEKEEPER +gsigatekeeper 2119/tcp # GSIGATEKEEPER +# Steve Tuecke +qencp 2120/udp # Quick Eagle Networks CP +qencp 2120/tcp # Quick Eagle Networks CP +# Santa Dasu +scientia-ssdb 2121/udp # SCIENTIA-SSDB +scientia-ssdb 2121/tcp # SCIENTIA-SSDB +# Ian Miller +caupc-remote 2122/udp # CauPC Remote Control +caupc-remote 2122/tcp # CauPC Remote Control +# Environics Oy +gtp-control 2123/udp # GTP-Control Plane (3GPP) +gtp-control 2123/tcp # GTP-Control Plane (3GPP) +# Alessio Casati +elatelink 2124/udp # ELATELINK +elatelink 2124/tcp # ELATELINK +# Tim Lawrence +lockstep 2125/udp # LOCKSTEP +lockstep 2125/tcp # LOCKSTEP +# Karl Forster +pktcable-cops 2126/udp # PktCable-COPS +pktcable-cops 2126/tcp # PktCable-COPS +# Glenn Russell +index-pc-wb 2127/udp # INDEX-PC-WB +index-pc-wb 2127/tcp # INDEX-PC-WB +# James David Fisher +net-steward 2128/udp # Net Steward Control +net-steward 2128/tcp # Net Steward Control +# Martin Norman +cs-live 2129/udp # cs-live.com +cs-live 2129/tcp # cs-live.com +# Matt Lachance +swc-xds 2130/udp # SWC-XDS +swc-xds 2130/tcp # SWC-XDS +# Peter Zurich +avantageb2b 2131/udp # Avantageb2b +avantageb2b 2131/tcp # Avantageb2b +# Avi Software +avail-epmap 2132/udp # AVAIL-EPMAP +avail-epmap 2132/tcp # AVAIL-EPMAP +# Mark Armstrong +zymed-zpp 2133/udp # ZYMED-ZPP +zymed-zpp 2133/tcp # ZYMED-ZPP +# Gregg Welker +avenue 2134/udp # AVENUE +avenue 2134/tcp # AVENUE +# Jason Cater +gris 2135/udp # Grid Resource Information Server +gris 2135/tcp # Grid Resource Information Server +# Steve Tuecke +appworxsrv 2136/udp # APPWORXSRV +appworxsrv 2136/tcp # APPWORXSRV +# Fred McLain +connect 2137/udp # CONNECT +connect 2137/tcp # CONNECT +# Reid Ligon +unbind-cluster 2138/udp # UNBIND-CLUSTER +unbind-cluster 2138/tcp # UNBIND-CLUSTER +# Francois Harvey +ias-auth 2139/udp # IAS-AUTH +ias-auth 2139/tcp # IAS-AUTH +ias-reg 2140/udp # IAS-REG +ias-reg 2140/tcp # IAS-REG +ias-admind 2141/udp # IAS-ADMIND +ias-admind 2141/tcp # IAS-ADMIND +# Baiju V. Patel +tdm-over-ip 2142/udp # TDM-OVER-IP +tdm-over-ip 2142/tcp # TDM-OVER-IP +# Tal Gilad +lv-jc 2143/udp # Live Vault Job Control +lv-jc 2143/tcp # Live Vault Job Control +lv-ffx 2144/udp # Live Vault Fast Object Transfer +lv-ffx 2144/tcp # Live Vault Fast Object Transfer +lv-pici 2145/udp # Live Vault Remote Diagnostic Console Support +lv-pici 2145/tcp # Live Vault Remote Diagnostic Console Support +lv-not 2146/udp # Live Vault Admin Event Notification +lv-not 2146/tcp # Live Vault Admin Event Notification +lv-auth 2147/udp # Live Vault Authentication +lv-auth 2147/tcp # Live Vault Authentication +# Ted Hess +veritas-ucl 2148/udp # VERITAS UNIVERSAL COMMUNICATION LAYER +veritas-ucl 2148/tcp # VERITAS UNIVERSAL COMMUNICATION LAYER +# Songlin Ren +acptsys 2149/udp # ACPTSYS +acptsys 2149/tcp # ACPTSYS +# Michael Lekias +dynamic3d 2150/udp # DYNAMIC3D +dynamic3d 2150/tcp # DYNAMIC3D +# Tobias Wegner +docent 2151/udp # DOCENT +docent 2151/tcp # DOCENT +# Hali Lindbloom +gtp-user 2152/udp # GTP-User Plane (3GPP) +gtp-user 2152/tcp # GTP-User Plane (3GPP) +# Alessio Casati +# 2153-2158 Unassigned +gdbremote 2159/udp # GDB Remote Debug Port +gdbremote 2159/tcp # GDB Remote Debug Port +# Nigel Stephens +apc-2160 2160/udp # APC 2160 +apc-2160 2160/tcp # APC 2160 +# American Power Conversion +apc-2161 2161/udp # APC 2161 +apc-2161 2161/tcp # APC 2161 +# American Power Conversion +navisphere 2162/udp # Navisphere +navisphere 2162/tcp # Navisphere +navisphere-sec 2163/udp # Navisphere Secure +navisphere-sec 2163/tcp # Navisphere Secure +# Andreas Bauer +ddns-v3 2164/udp # Dynamic DNS Version 3 +ddns-v3 2164/tcp # Dynamic DNS Version 3 +# Alan Yates +x-bone-api 2165/udp # X-Bone API +x-bone-api 2165/tcp # X-Bone API +# Joe Touch +iwserver 2166/udp # iwserver +iwserver 2166/tcp # iwserver +# Fred Surr +raw-serial 2167/udp # Raw Async Serial Link +raw-serial 2167/tcp # Raw Async Serial Link +# Benjamin Green +easy-soft-mux 2168/tcp # easy-soft Multiplexer +easy-soft-mux 2168/udp # easy-soft Multiplexer +brain 2169/tcp # Backbone for Academic Information Notification (BRAIN) +brain 2169/udp # Backbone for Academic Information Notification (BRAIN) +eyetv 2170/tcp # EyeTV Server Port +eyetv 2170/udp # EyeTV Server Port +msfw-storage 2171/tcp # MS Firewall Storage +msfw-storage 2171/udp # MS Firewall Storage +msfw-s-storage 2172/tcp # MS Firewall SecureStorage +msfw-s-storage 2172/udp # MS Firewall SecureStorage +msfw-replica 2173/tcp # MS Firewall Replication +msfw-replica 2173/udp # MS Firewall Replication +msfw-array 2174/tcp # MS Firewall Intra Array +msfw-array 2174/udp # MS Firewall Intra Array +airsync 2175/tcp # Microsoft Desktop AirSync Protocol +airsync 2175/udp # Microsoft Desktop AirSync Protocol +rapi 2176/tcp # Microsoft ActiveSync Remote API +rapi 2176/udp # Microsoft ActiveSync Remote API +qwave 2177/tcp # qWAVE Bandwidth Estimate +qwave 2177/udp # qWAVE Bandwidth Estimate +bitspeer 2178/tcp # Peer Services for BITS +bitspeer 2178/udp # Peer Services for BITS +# 2179 Unassigned +mc-gt-srv 2180/udp # Millicent Vendor Gateway Server +mc-gt-srv 2180/tcp # Millicent Vendor Gateway Server +# Steve Glassman +eforward 2181/udp # eforward +eforward 2181/tcp # eforward +# Greg Pringle +cgn-stat 2182/tcp # CGN status +cgn-stat 2182/udp # CGN status +cgn-config 2183/tcp # Code Green configuration +cgn-config 2183/udp # Code Green configuration +nvd 2184/tcp # NVD User +nvd 2184/udp # NVD User +onbase-dds 2185/tcp # OnBase Distributed Disk Services +onbase-dds 2185/udp # OnBase Distributed Disk Services +# 2186-2189 Unassigned +tivoconnect 2190/udp # TiVoConnect Beacon +tivoconnect 2190/tcp # TiVoConnect Beacon +# Jeffrey J. Peters August 2002 +tvbus 2191/udp # TvBus Messaging +tvbus 2191/tcp # TvBus Messaging +# Brian W. Beach January 2003 +asdis 2192/tcp # ASDIS software management +asdis 2192/udp # ASDIS software management +# 2193-2196 Unassigned +mnp-exchange 2197/tcp # MNP data exchange +mnp-exchange 2197/udp # MNP data exchange +onehome-remote 2198/tcp # OneHome Remote Access +onehome-remote 2198/udp # OneHome Remote Access +onehome-help 2199/tcp # OneHome Service Port +onehome-help 2199/udp # OneHome Service Port +# 2200 Unassigned +ici 2200/udp # ICI +ici 2200/tcp # ICI +# Brent Hines +ats 2201/udp # Advanced Training System Program +ats 2201/tcp # Advanced Training System Program +# (Need contact info) +imtc-map 2202/udp # Int. Multimedia Teleconferencing Cosortium +imtc-map 2202/tcp # Int. Multimedia Teleconferencing Cosortium +# Pat Galvin +b2-runtime 2203/tcp # b2 Runtime Protocol +b2-runtime 2203/udp # b2 Runtime Protocol +b2-license 2204/tcp # b2 License Server +b2-license 2204/udp # b2 License Server +jps 2205/tcp # Java Presentation Server +jps 2205/udp # Java Presentation Server +hpocbus 2206/tcp # HP OpenCall bus +hpocbus 2206/udp # HP OpenCall bus +hpssd 2207/tcp # HP Status and Services +hpssd 2207/udp # HP Status and Services +hpiod 2208/tcp # HP I/O Backend +hpiod 2208/udp # HP I/O Backend +# 2209-2212 Unassigned +kali 2213/udp # Kali +kali 2213/tcp # Kali +# Jay Cotton +rpi 2214/tcp # RDQ Protocol Interface +rpi 2214/udp # RDQ Protocol Interface +ipcore 2215/tcp # IPCore.co.za GPRS +ipcore 2215/udp # IPCore.co.za GPRS +vtu-comms 2216/tcp # VTU data service +vtu-comms 2216/udp # VTU data service +gotodevice 2217/tcp # GoToDevice Device Management +gotodevice 2217/udp # GoToDevice Device Management +bounzza 2218/tcp # Bounzza IRC Proxy +bounzza 2218/udp # Bounzza IRC Proxy +netiq-ncap 2219/tcp # NetIQ NCAP Protocol +netiq-ncap 2219/udp # NetIQ NCAP Protocol +# 2220 Unassigned +netiq 2220/udp # NetIQ End2End +netiq 2220/tcp # NetIQ End2End +# Gary Weichinger +rockwell-csp1 2221/udp # Rockwell CSP1 +rockwell-csp1 2221/tcp # Rockwell CSP1 +rockwell-csp2 2222/udp # Rockwell CSP2 +rockwell-csp2 2222/tcp # Rockwell CSP2 +rockwell-csp3 2223/udp # Rockwell CSP3 +rockwell-csp3 2223/tcp # Rockwell CSP3 +# Brian Batke +# +efi-mg 2224/tcp # Easy Flexible Internet/Multiplayer Games +efi-mg 2224/udp # Easy Flexible Internet/Multiplayer Games +rcip-itu 2225/tcp # Resource Connection Initiation Protocol +di-drm 2226/tcp # Digital Instinct DRM +di-drm 2226/udp # Digital Instinct DRM +di-msg 2227/tcp # DI Messaging Service +di-msg 2227/udp # DI Messaging Service +ehome-ms 2228/tcp # eHome Message Server +ehome-ms 2228/udp # eHome Message Server +datalens 2229/tcp # DataLens Service +datalens 2229/udp # DataLens Service +queueadm 2230/tcp # Brave Coda Administration Service +queueadm 2230/udp # Brave Coda Administration Service +wimaxasncp 2231/tcp # WiMAX ASN Control Plane Protocol +wimaxasncp 2231/udp # WiMAX ASN Control Plane Protocol +# 2232 Unassigned +ivs-video 2232/udp # IVS Video default +ivs-video 2232/tcp # IVS Video default +# Thierry Turletti +infocrypt 2233/udp # INFOCRYPT +infocrypt 2233/tcp # INFOCRYPT +# Erica Liu +directplay 2234/udp # DirectPlay +directplay 2234/tcp # DirectPlay +# Ajay Jindal +sercomm-wlink 2235/udp # Sercomm-WLink +sercomm-wlink 2235/tcp # Sercomm-WLink +# Melinda Tsao +nani 2236/udp # Nani +nani 2236/tcp # Nani +# Steve Benoit +optech-port1-lm 2237/udp # Optech Port1 License Manager +optech-port1-lm 2237/tcp # Optech Port1 License Manager +# Gerard Cannie +aviva-sna 2238/udp # AVIVA SNA SERVER +aviva-sna 2238/tcp # AVIVA SNA SERVER +# Vick Keshishian +imagequery 2239/udp # Image Query +imagequery 2239/tcp # Image Query +# Charles Jacobs +recipe 2240/udp # RECIPe +recipe 2240/tcp # RECIPe +# Charlie Limoges +ivsd 2241/udp # IVS Daemon +ivsd 2241/tcp # IVS Daemon +# Thierry Turletti +# +foliocorp 2242/udp # Folio Remote Server +foliocorp 2242/tcp # Folio Remote Server +# Pat Mcgowan +magicom 2243/udp # Magicom Protocol +magicom 2243/tcp # Magicom Protocol +# Yossi Appleboum +nmsserver 2244/udp # NMS Server +nmsserver 2244/tcp # NMS Server +# Dmitry Krasnonosenkikh +# +hao 2245/udp # HaO +hao 2245/tcp # HaO +# Panic Ride +pc-mta-addrmap 2246/udp # PacketCable MTA Addr Map +pc-mta-addrmap 2246/tcp # PacketCable MTA Addr Map +# Dave Maxwell +antidotemgrsvr 2247/tcp # Antidote Deployment Manager Service +antidotemgrsvr 2247/udp # Antidote Deployment Manager Service +# 2248 Unassigned +ums 2248/udp # User Management Service +ums 2248/tcp # User Management Service +# Andrew Crockford +# +rfmp 2249/udp # RISO File Manager Protocol +rfmp 2249/tcp # RISO File Manager Protocol +# Shinji Yamanaka +remote-collab 2250/udp # remote-collab +remote-collab 2250/tcp # remote-collab +# Richard Walters +dif-port 2251/udp # Distributed Framework Port +dif-port 2251/tcp # Distributed Framework Port +# Sebastien Lambla +njenet-ssl 2252/udp # NJENET using SSL +njenet-ssl 2252/tcp # NJENET using SSL +# Hans U Schmidt +dtv-chan-req 2253/udp # DTV Channel Request +dtv-chan-req 2253/tcp # DTV Channel Request +# Richard Hodges +seispoc 2254/udp # Seismic P.O.C. Port +seispoc 2254/tcp # Seismic P.O.C. Port +# Robert Reimiller +vrtp 2255/udp # VRTP - ViRtue Transfer Protocol +vrtp 2255/tcp # VRTP - ViRtue Transfer Protocol +# Max Fudim +pcc-mfp 2256/tcp # PCC MFP +pcc-mfp 2256/udp # PCC MFP +simple-tx-rx 2257/tcp # simple text/file transfer +simple-tx-rx 2257/udp # simple text/file transfer +rcts 2258/tcp # Rotorcraft Communications Test System +rcts 2258/udp # Rotorcraft Communications Test System +acd-pm 2259/tcp # Accedian Performance Measurement +acd-pm 2259/udp # Accedian Performance Measurement +# 2260 Unassigned +apc-2260 2260/udp # APC 2260 +apc-2260 2260/tcp # APC 2260 +# American Power Conversion February 2002 +comotionmaster 2261/tcp # CoMotion Master Server +comotionmaster 2261/udp # CoMotion Master Server +comotionback 2262/tcp # CoMotion Backup Server +comotionback 2262/udp # CoMotion Backup Server +ecwcfg 2263/tcp # ECweb Configuration Service +ecwcfg 2263/udp # ECweb Configuration Service +apx500api-1 2264/tcp # Audio Precision Apx500 API Port 1 +apx500api-1 2264/udp # Audio Precision Apx500 API Port 1 +apx500api-2 2265/tcp # Audio Precision Apx500 API Port 2 +apx500api-2 2265/udp # Audio Precision Apx500 API Port 2 +mfserver 2266/tcp # M-Files Server +mfserver 2266/udp # M-files Server +ontobroker 2267/tcp # OntoBroker +ontobroker 2267/udp # OntoBroker +amt 2268/tcp # AMT +amt 2268/udp # AMT +mikey 2269/tcp # MIKEY +mikey 2269/udp # MIKEY +starschool 2270/tcp # starSchool +starschool 2270/udp # starSchool +mmcals 2271/tcp # Secure Meeting Maker Scheduling +mmcals 2271/udp # Secure Meeting Maker Scheduling +mmcal 2272/tcp # Meeting Maker Scheduling +mmcal 2272/udp # Meeting Maker Scheduling +mysql-im 2273/tcp # MySQL Instance Manager +mysql-im 2273/udp # MySQL Instance Manager +pcttunnell 2274/tcp # PCTTunneller +pcttunnell 2274/udp # PCTTunneller +ibridge-data 2275/tcp # iBridge Conferencing +ibridge-data 2275/udp # iBridge Conferencing +ibridge-mgmt 2276/tcp # iBridge Management +ibridge-mgmt 2276/udp # iBridge Management +bluectrlproxy 2277/tcp # Bt device control proxy +bluectrlproxy 2277/udp # Bt device control proxy +s3db 2278/tcp # Simple Stacked Sequences Database +s3db 2278/udp # Simple Stacked Sequences Database +# 2279 Unassigned +xmquery 2279/udp # xmquery +xmquery 2279/tcp # xmquery +# Niels Christiansen +lnvpoller 2280/udp # LNVPOLLER +lnvpoller 2280/tcp # LNVPOLLER +lnvconsole 2281/udp # LNVCONSOLE +lnvconsole 2281/tcp # LNVCONSOLE +lnvalarm 2282/udp # LNVALARM +lnvalarm 2282/tcp # LNVALARM +lnvstatus 2283/udp # LNVSTATUS +lnvstatus 2283/tcp # LNVSTATUS +lnvmaps 2284/udp # LNVMAPS +lnvmaps 2284/tcp # LNVMAPS +lnvmailmon 2285/udp # LNVMAILMON +lnvmailmon 2285/tcp # LNVMAILMON +# John Payne +nas-metering 2286/udp # NAS-Metering +nas-metering 2286/tcp # NAS-Metering +# Steven Sawkins +dna 2287/udp # DNA +dna 2287/tcp # DNA +# Tung Nguyen +netml 2288/udp # NETML +netml 2288/tcp # NETML +# Jochen Hansmeyer +dict-lookup 2289/tcp # Lookup dict server +dict-lookup 2289/udp # Lookup dict server +sonus-logging 2290/tcp # Sonus Logging Services +sonus-logging 2290/udp # Sonus Logging Services +eapsp 2291/tcp # EPSON Advanced Printer Share Protocol +eapsp 2291/udp # EPSON Advanced Printer Share Protocol +mib-streaming 2292/tcp # Sonus Element Management Services +mib-streaming 2292/udp # Sonus Element Management Services +npdbgmngr 2293/tcp # Network Platform Debug Manager +npdbgmngr 2293/udp # Network Platform Debug Manager +# 2294 Unassigned +konshus-lm 2294/udp # Konshus License Manager (FLEX) +konshus-lm 2294/tcp # Konshus License Manager (FLEX) +# Francois Painchaud +advant-lm 2295/udp # Advant License Manager +advant-lm 2295/tcp # Advant License Manager +# Lars-Goran Magnusson +# +theta-lm 2296/udp # Theta License Manager (Rainbow) +theta-lm 2296/tcp # Theta License Manager (Rainbow) +# David Thompson +d2k-datamover1 2297/udp # D2K DataMover 1 +d2k-datamover1 2297/tcp # D2K DataMover 1 +d2k-datamover2 2298/udp # D2K DataMover 2 +d2k-datamover2 2298/tcp # D2K DataMover 2 +# Eric Lan +pc-telecommute 2299/udp # PC Telecommute +pc-telecommute 2299/tcp # PC Telecommute +# John Daniel Bonamico +cvmmon 2300/udp # CVMMON +cvmmon 2300/tcp # CVMMON +# Roger Kumpf +cpq-wbem 2301/udp # Compaq HTTP +cpq-wbem 2301/tcp # Compaq HTTP +# Scott Shaffer +binderysupport 2302/udp # Bindery Support +binderysupport 2302/tcp # Bindery Support +# Narasimha Rao N. +proxy-gateway 2303/udp # Proxy Gateway +proxy-gateway 2303/tcp # Proxy Gateway +# Paul Funk +attachmate-uts 2304/udp # Attachmate UTS +attachmate-uts 2304/tcp # Attachmate UTS +# George Gianelos +mt-scaleserver 2305/udp # MT ScaleServer +mt-scaleserver 2305/tcp # MT ScaleServer +# Paul Glaubitz +tappi-boxnet 2306/udp # TAPPI BoxNet +tappi-boxnet 2306/tcp # TAPPI BoxNet +# Richard Spartz +pehelp 2307/udp # pehelp +pehelp 2307/tcp # pehelp +# Jens Kilian +sdhelp 2308/udp # sdhelp +sdhelp 2308/tcp # sdhelp +# Annette Klecha +sdserver 2309/udp # SD Server +sdserver 2309/tcp # SD Server +sdclient 2310/udp # SD Client +sdclient 2310/tcp # SD Client +# Jeurgen Broesamle +messageservice 2311/udp # Message Service +messageservice 2311/tcp # Message Service +# No contact Listed +wanscaler 2312/tcp # WANScaler Communication Service +wanscaler 2312/udp # WANScaler Communication Service +# 2313 Unassigned +iapp 2313/udp # IAPP (Inter Access Point Protocol) +iapp 2313/tcp # IAPP (Inter Access Point Protocol) +# Henri Moelard +cr-websystems 2314/udp # CR WebSystems +cr-websystems 2314/tcp # CR WebSystems +# Robin Giese +precise-sft 2315/udp # Precise Sft. +precise-sft 2315/tcp # Precise Sft. +# Michael Landwehr +sent-lm 2316/udp # SENT License Manager +sent-lm 2316/tcp # SENT License Manager +# Pisharath Krishnan +attachmate-g32 2317/udp # Attachmate G32 +attachmate-g32 2317/tcp # Attachmate G32 +# Bryce Bhatnagar +cadencecontrol 2318/udp # Cadence Control +cadencecontrol 2318/tcp # Cadence Control +# Buck Caldwell +infolibria 2319/udp # InfoLibria +infolibria 2319/tcp # InfoLibria +# Chris Chiotasso +siebel-ns 2320/udp # Siebel NS +siebel-ns 2320/tcp # Siebel NS +# Gilberto Arnaiz +rdlap 2321/udp # RDLAP +rdlap 2321/tcp # RDLAP +# Robert Wiebe +ofsd 2322/udp # ofsd +ofsd 2322/tcp # ofsd +3d-nfsd 2323/udp # 3d-nfsd +3d-nfsd 2323/tcp # 3d-nfsd +# Mike Sherrill +cosmocall 2324/udp # Cosmocall +cosmocall 2324/tcp # Cosmocall +# Steve Dellutri +designspace-lm 2325/udp # Design Space License Management +designspace-lm 2325/tcp # Design Space License Management +# Suzanne Lorrin +idcp 2326/udp # IDCP +idcp 2326/tcp # IDCP +# Keisokugiken Corp. +xingcsm 2327/udp # xingcsm +xingcsm 2327/tcp # xingcsm +# Dave Spencer +netrix-sftm 2328/udp # Netrix SFTM +netrix-sftm 2328/tcp # Netrix SFTM +# Garrett Herschleb +nvd 2329/udp # NVD +nvd 2329/tcp # NVD +# Peter Weyman +tscchat 2330/udp # TSCCHAT +tscchat 2330/tcp # TSCCHAT +# Mike Jackson +agentview 2331/udp # AGENTVIEW +agentview 2331/tcp # AGENTVIEW +# Ram Iyer +rcc-host 2332/udp # RCC Host +rcc-host 2332/tcp # RCC Host +# Martin Shoemaker +snapp 2333/udp # SNAPP +snapp 2333/tcp # SNAPP +# Kevin Osborn +ace-client 2334/udp # ACE Client Auth +ace-client 2334/tcp # ACE Client Auth +ace-proxy 2335/udp # ACE Proxy +ace-proxy 2335/tcp # ACE Proxy +# Riaz Zolfonoon +appleugcontrol 2336/udp # Apple UG Control +appleugcontrol 2336/tcp # Apple UG Control +# Gene Tyacke +ideesrv 2337/udp # ideesrv +ideesrv 2337/tcp # ideesrv +# Marazzi +norton-lambert 2338/udp # Norton Lambert +norton-lambert 2338/tcp # Norton Lambert +# Richard de Mornay +3com-webview 2339/udp # 3Com WebView +3com-webview 2339/tcp # 3Com WebView +# Jennifer Grace +wrs_registry 2340/udp # WRS Registry +wrs_registry 2340/tcp # WRS Registry +# Christophe Cleraux +xiostatus 2341/udp # XIO Status +xiostatus 2341/tcp # XIO Status +# Randy Maas +manage-exec 2342/udp # Seagate Manage Exec +manage-exec 2342/tcp # Seagate Manage Exec +# Jim Flaherty +nati-logos 2343/udp # nati logos +nati-logos 2343/tcp # nati logos +# David Pierce +fcmsys 2344/udp # fcmsys +fcmsys 2344/tcp # fcmsys +dbm 2345/udp # dbm +dbm 2345/tcp # dbm +# Dean Robson +redstorm_join 2346/udp # Game Connection Port +redstorm_join 2346/tcp # Game Connection Port +redstorm_find 2347/udp # Game Announcement and Location +redstorm_find 2347/tcp # Game Announcement and Location +redstorm_info 2348/udp # Information to query for game status +redstorm_info 2348/tcp # Information to query for game status +redstorm_diag 2349/udp # Diagnostics Port +redstorm_diag 2349/tcp # Diagnostics Port +# David Weinstein +psbserver 2350/udp # psbserver +psbserver 2350/tcp # psbserver +psrserver 2351/udp # psrserver +psrserver 2351/tcp # psrserver +pslserver 2352/udp # pslserver +pslserver 2352/tcp # pslserver +pspserver 2353/udp # pspserver +pspserver 2353/tcp # pspserver +psprserver 2354/udp # psprserver +psprserver 2354/tcp # psprserver +psdbserver 2355/udp # psdbserver +psdbserver 2355/tcp # psdbserver +# Paul Reddy +gxtelmd 2356/udp # GXT License Managemant +gxtelmd 2356/tcp # GXT License Managemant +# Robert Hodgson +unihub-server 2357/udp # UniHub Server +unihub-server 2357/tcp # UniHub Server +# Tim Kenyon +futrix 2358/udp # Futrix +futrix 2358/tcp # Futrix +# Peter Frankenberg +flukeserver 2359/udp # FlukeServer +flukeserver 2359/tcp # FlukeServer +# Bill Marbaker +nexstorindltd 2360/udp # NexstorIndLtd +nexstorindltd 2360/tcp # NexstorIndLtd +# NexStor India Limited +tl1 2361/udp # TL1 +tl1 2361/tcp # TL1 +# Charles Scott Roberson +digiman 2362/udp # digiman +digiman 2362/tcp # digiman +# Aaron S. Kurland +mediacntrlnfsd 2363/udp # Media Central NFSD +mediacntrlnfsd 2363/tcp # Media Central NFSD +# shivakumar s. govindarajapuram +oi-2000 2364/udp # OI-2000 +oi-2000 2364/tcp # OI-2000 +# Software Horizons Inc. +dbref 2365/udp # dbref +dbref 2365/tcp # dbref +# Yoshihiro Yamazaki +qip-login 2366/udp # qip-login +qip-login 2366/tcp # qip-login +# Mike Morgan +service-ctrl 2367/udp # Service Control +service-ctrl 2367/tcp # Service Control +# Humberto Sanchez +opentable 2368/udp # OpenTable +opentable 2368/tcp # OpenTable +# Thomas Theobald +acs2000-dsp 2369/udp # ACS2000 DSP +acs2000-dsp 2369/tcp # ACS2000 DSP +# Jeffrey Beauchamp +l3-hbmon 2370/udp # L3-HBMon +l3-hbmon 2370/tcp # L3-HBMon +# Dolores Scott +#### Port 2370 Unofficially used by Compaq #### +worldwire 2371/udp # Compaq WorldWire Port +worldwire 2371/tcp # Compaq WorldWire Port +# Michael Spratte +# 2372-2380 Unassigned +compaq-https 2381/udp # Compaq HTTPS +compaq-https 2381/tcp # Compaq HTTPS +# Scott Shaffer +ms-olap3 2382/udp # Microsoft OLAP +ms-olap3 2382/tcp # Microsoft OLAP +ms-olap4 2383/udp # Microsoft OLAP +ms-olap4 2383/tcp # Microsoft OLAP +# Mosha Pasumansky +sd-capacity 2384/udp # SD-CAPACITY +sd-request 2384/tcp # SD-REQUEST +# Jason McManus +sd-data 2385/udp # SD-DATA +sd-data 2385/tcp # SD-DATA +# Jason McManus +virtualtape 2386/udp # Virtual Tape +virtualtape 2386/tcp # Virtual Tape +vsamredirector 2387/udp # VSAM Redirector +vsamredirector 2387/tcp # VSAM Redirector +# Ingo Franzki +mynahautostart 2388/udp # MYNAH AutoStart +mynahautostart 2388/tcp # MYNAH AutoStart +# Thomas J. Klehr +ovsessionmgr 2389/udp # OpenView Session Mgr +ovsessionmgr 2389/tcp # OpenView Session Mgr +# Eric Pulsipher +rsmtp 2390/udp # RSMTP +rsmtp 2390/tcp # RSMTP +# Geoff Collyer +3com-net-mgmt 2391/udp # 3COM Net Management +3com-net-mgmt 2391/tcp # 3COM Net Management +# Prathibha Nagvar +tacticalauth 2392/udp # Tactical Auth +tacticalauth 2392/tcp # Tactical Auth +# David Yon +ms-olap1 2393/udp # MS OLAP 1 +ms-olap1 2393/tcp # MS OLAP 1 +ms-olap2 2394/udp # MS OLAP 2 +ms-olap2 2394/tcp # MS OLAP 2 +# Mosha Pasumansky +lan900_remote 2395/udp # LAN900 Remote +lan900_remote 2395/tcp # LAN900 Remote +# Tom Quinlan +wusage 2396/udp # Wusage +wusage 2396/tcp # Wusage +# Thomas Boutell +ncl 2397/udp # NCL +ncl 2397/tcp # NCL +# Robert Wiebe +orbiter 2398/udp # Orbiter +orbiter 2398/tcp # Orbiter +# David Goldberg +fmpro-fdal 2399/udp # FileMaker, Inc. - Data Access Layer +fmpro-fdal 2399/tcp # FileMaker, Inc. - Data Access Layer +# Clay Maeckal +opequus-server 2400/udp # OpEquus Server +opequus-server 2400/tcp # OpEquus Server +# Gavin Hutchinson +cvspserver 2401/udp # cvspserver +cvspserver 2401/tcp # cvspserver +# Jim Kingdon +taskmaster2000 2402/udp # TaskMaster 2000 Server +taskmaster2000 2402/tcp # TaskMaster 2000 Server +taskmaster2000 2403/udp # TaskMaster 2000 Web +taskmaster2000 2403/tcp # TaskMaster 2000 Web +# Ed Odjaghian +iec-104 2404/udp # IEC 60870-5-104 process control over IP +iec-104 2404/tcp # IEC 60870-5-104 process control over IP +# Walter K. Eichelburg +trc-netpoll 2405/udp # TRC Netpoll +trc-netpoll 2405/tcp # TRC Netpoll +# Bizhan Ghavami +jediserver 2406/udp # JediServer +jediserver 2406/tcp # JediServer +# Paul McEntire +orion 2407/udp # Orion +orion 2407/tcp # Orion +# Matthew Horoschun +optimanet 2408/udp # OptimaNet +optimanet 2408/tcp # OptimaNet +# John Graham-Cumming +sns-protocol 2409/udp # SNS Protocol +sns-protocol 2409/tcp # SNS Protocol +# Amir Blich +vrts-registry 2410/udp # VRTS Registry +vrts-registry 2410/tcp # VRTS Registry +# Pranay Varma +netwave-ap-mgmt 2411/udp # Netwave AP Management +netwave-ap-mgmt 2411/tcp # Netwave AP Management +# Johnny Zweig +cdn 2412/udp # CDN +cdn 2412/tcp # CDN +# Alan Noble +orion-rmi-reg 2413/udp # orion-rmi-reg +orion-rmi-reg 2413/tcp # orion-rmi-reg +# J.S. Greenfield +beeyond 2414/udp # Beeyond +beeyond 2414/tcp # Beeyond +# Bob Deblier +codima-rtp 2415/udp # Codima Remote Transaction Protocol +codima-rtp 2415/tcp # Codima Remote Transaction Protocol +# Sylvia Ross +rmtserver 2416/udp # RMT Server +rmtserver 2416/tcp # RMT Server +# Yvon Marineau +composit-server 2417/udp # Composit Server +composit-server 2417/tcp # Composit Server +# Katsuaki Naoi +cas 2418/udp # cas +cas 2418/tcp # cas +# Akiyoshi Ochi +attachmate-s2s 2419/udp # Attachmate S2S +attachmate-s2s 2419/tcp # Attachmate S2S +# Chris Rominski +dslremote-mgmt 2420/udp # DSL Remote Management +dslremote-mgmt 2420/tcp # DSL Remote Management +# Westell, Inc. +g-talk 2421/udp # G-Talk +g-talk 2421/tcp # G-Talk +# Matt Hammond +crmsbits 2422/udp # CRMSBITS +crmsbits 2422/tcp # CRMSBITS +# Rod Ward +rnrp 2423/udp # RNRP +rnrp 2423/tcp # RNRP +# Per Sahlqvist +kofax-svr 2424/udp # KOFAX-SVR +kofax-svr 2424/tcp # KOFAX-SVR +# Terry Reagan +fjitsuappmgr 2425/udp # Fujitsu App Manager +fjitsuappmgr 2425/tcp # Fujitsu App Manager +# Hiroyuki Kawabuchi +# 2426 Unassigned (Removed 2002-04-29) +mgcp-gateway 2427/udp # Media Gateway Control Protocol Gateway +mgcp-gateway 2427/tcp # Media Gateway Control Protocol Gateway +# Christian Huitema +ott 2428/udp # One Way Trip Time +ott 2428/tcp # One Way Trip Time +# Greg Troxel +ft-role 2429/udp # FT-ROLE +ft-role 2429/tcp # FT-ROLE +# Doug Boone +venus 2430/udp # venus +venus 2430/tcp # venus +venus-se 2431/udp # venus-se +venus-se 2431/tcp # venus-se +codasrv 2432/udp # codasrv +codasrv 2432/tcp # codasrv +codasrv-se 2433/udp # codasrv-se +codasrv-se 2433/tcp # codasrv-se +# Robert Watson +pxc-epmap 2434/udp # pxc-epmap +pxc-epmap 2434/tcp # pxc-epmap +# Jun Nakamura +optilogic 2435/udp # OptiLogic +optilogic 2435/tcp # OptiLogic +# Clark Williams +topx 2436/udp # TOP/X +topx 2436/tcp # TOP/X +# Dragos Pop +unicontrol 2437/udp # UniControl +unicontrol 2437/tcp # UniControl +# Ing. Markus Huemer +msp 2438/udp # MSP +msp 2438/tcp # MSP +# Evan Caves +sybasedbsynch 2439/udp # SybaseDBSynch +sybasedbsynch 2439/tcp # SybaseDBSynch +# Dave Neudoerffer +spearway 2440/udp # Spearway Lockers +spearway 2440/tcp # Spearway Lockers +# Pierre Frisch +pvsw-inet 2441/udp # Pervasive I*net Data Server +pvsw-inet 2441/tcp # Pervasive I*net Data Server +# Chuck Talk +netangel 2442/udp # Netangel +netangel 2442/tcp # Netangel +# Ladislav Baranyay +powerclientcsf 2443/udp # PowerClient Central Storage Facility +powerclientcsf 2443/tcp # PowerClient Central Storage Facility +# Brian Klassen +btpp2sectrans 2444/udp # BT PP2 Sectrans +btpp2sectrans 2444/tcp # BT PP2 Sectrans +# Ian Daniels +dtn1 2445/udp # DTN1 +dtn1 2445/tcp # DTN1 +# Bob Gaddie +bues_service 2446/udp # bues_service +bues_service 2446/tcp # bues_service +# Leonhard Diekmann +# +ovwdb 2447/udp # OpenView NNM daemon +ovwdb 2447/tcp # OpenView NNM daemon +# Eric Pulsipher +hpppssvr 2448/udp # hpppsvr +hpppssvr 2448/tcp # hpppsvr +# Bridgette Landers +ratl 2449/udp # RATL +ratl 2449/tcp # RATL +# Paul Greenfield +netadmin 2450/udp # netadmin +netadmin 2450/tcp # netadmin +netchat 2451/udp # netchat +netchat 2451/tcp # netchat +# Julian Mehnle +snifferclient 2452/udp # SnifferClient +snifferclient 2452/tcp # SnifferClient +# Amy Weaver +madge-om 2453/udp # madge-om +madge-om 2453/tcp # madge-om +# Andrew Draper +indx-dds 2454/udp # IndX-DDS +indx-dds 2454/tcp # IndX-DDS +# Paul Carmichael +wago-io-system 2455/udp # WAGO-IO-SYSTEM +wago-io-system 2455/tcp # WAGO-IO-SYSTEM +# Uwe Rathert +altav-remmgt 2456/udp # altav-remmgt +altav-remmgt 2456/tcp # altav-remmgt +# Gary M. Allen +rapido-ip 2457/udp # Rapido_IP +rapido-ip 2457/tcp # Rapido_IP +# Man Shuen Cheung +griffin 2458/udp # griffin +griffin 2458/tcp # griffin +# Tom Taylor +community 2459/udp # Community +community 2459/tcp # Community +# David Schwartz +ms-theater 2460/udp # ms-theater +ms-theater 2460/tcp # ms-theater +# Anton Kucer +qadmifoper 2461/udp # qadmifoper +qadmifoper 2461/tcp # qadmifoper +qadmifevent 2462/udp # qadmifevent +qadmifevent 2462/tcp # qadmifevent +# Pekka Takaranta +symbios-raid 2463/udp # Symbios Raid +symbios-raid 2463/tcp # Symbios Raid +# Bill Delaney +direcpc-si 2464/udp # DirecPC SI +direcpc-si 2464/tcp # DirecPC SI +# Doug Dillon +lbm 2465/udp # Load Balance Management +lbm 2465/tcp # Load Balance Management +lbf 2466/udp # Load Balance Forwarding +lbf 2466/tcp # Load Balance Forwarding +# Kazuhiro Koide +high-criteria 2467/udp # High Criteria +high-criteria 2467/tcp # High Criteria +# Konstantin Iavid +qip-msgd 2468/udp # qip_msgd +qip-msgd 2468/tcp # qip_msgd +# Mike Morgan +mti-tcs-comm 2469/udp # MTI-TCS-COMM +mti-tcs-comm 2469/tcp # MTI-TCS-COMM +# Mario Bonin +taskman-port 2470/udp # taskman port +taskman-port 2470/tcp # taskman port +# Boris Panteleev +seaodbc 2471/udp # SeaODBC +seaodbc 2471/tcp # SeaODBC +# Adrian Hornby +c3 2472/udp # C3 +c3 2472/tcp # C3 +# Eckhard Grieger +aker-cdp 2473/udp # Aker-cdp +aker-cdp 2473/tcp # Aker-cdp +# Rodrigo Ormonde +vitalanalysis 2474/udp # Vital Analysis +vitalanalysis 2474/tcp # Vital Analysis +# Srinivas Reddy +ace-server 2475/udp # ACE Server +ace-server 2475/tcp # ACE Server +ace-svr-prop 2476/udp # ACE Server Propagation +ace-svr-prop 2476/tcp # ACE Server Propagation +ssm-cvs 2477/udp # SecurSight Certificate Valifation Service +ssm-cvs 2477/tcp # SecurSight Certificate Valifation Service +ssm-cssps 2478/udp # SecurSight Authentication Server (SSL) +ssm-cssps 2478/tcp # SecurSight Authentication Server (SSL) +ssm-els 2479/udp # SecurSight Event Logging Server (SSL) +ssm-els 2479/tcp # SecurSight Event Logging Server (SSL) +# John Linn +lingwood 2480/udp # Lingwood's Detail +lingwood 2480/tcp # Lingwood's Detail +# Dave Richmond +giop 2481/udp # Oracle GIOP +giop 2481/tcp # Oracle GIOP +giop-ssl 2482/udp # Oracle GIOP SSL +giop-ssl 2482/tcp # Oracle GIOP SSL +ttc 2483/udp # Oracle TTC +ttc 2483/tcp # Oracle TTC +ttc-ssl 2484/udp # Oracle TTC SSL +ttc-ssl 2484/tcp # Oracle TTC SSL +# Chandar Venkataraman +netobjects1 2485/udp # Net Objects1 +netobjects1 2485/tcp # Net Objects1 +netobjects2 2486/udp # Net Objects2 +netobjects2 2486/tcp # Net Objects2 +# Francois Granade +pns 2487/udp # Policy Notice Service +pns 2487/tcp # Policy Notice Service +# Akiyoshi Ochi +moy-corp 2488/udp # Moy Corporation +moy-corp 2488/tcp # Moy Corporation +# Gang Gong Moy +tsilb 2489/udp # TSILB +tsilb 2489/tcp # TSILB +# James Irwin +qip-qdhcp 2490/udp # qip_qdhcp +qip-qdhcp 2490/tcp # qip_qdhcp +# Mike Morgan +conclave-cpp 2491/udp # Conclave CPP +conclave-cpp 2491/tcp # Conclave CPP +# Larry Lipstone +groove 2492/udp # GROOVE +groove 2492/tcp # GROOVE +# Ray Ozzie +talarian-mqs 2493/udp # Talarian MQS +talarian-mqs 2493/tcp # Talarian MQS +# Jim Stabile +bmc-ar 2494/udp # BMC AR +bmc-ar 2494/tcp # BMC AR +# Shelia Childs +fast-rem-serv 2495/udp # Fast Remote Services +fast-rem-serv 2495/tcp # Fast Remote Services +# Scott St. Clair +dirgis 2496/udp # DIRGIS +dirgis 2496/tcp # DIRGIS +# Deutschland Informations- und +# Reservierungsgesellschaft mbH +quaddb 2497/udp # Quad DB +quaddb 2497/tcp # Quad DB +# Jeff Rosenthal +odn-castraq 2498/udp # ODN-CasTraq +odn-castraq 2498/tcp # ODN-CasTraq +# Richard Hodges +unicontrol 2499/udp # UniControl +unicontrol 2499/tcp # UniControl +# Ing. Markus Huemer +rtsserv 2500/udp # Resource Tracking system server +rtsserv 2500/tcp # Resource Tracking system server +rtsclient 2501/udp # Resource Tracking system client +rtsclient 2501/tcp # Resource Tracking system client +# Aubrey Turner +# +kentrox-prot 2502/udp # Kentrox Protocol +kentrox-prot 2502/tcp # Kentrox Protocol +# Anil Lakhwara +nms-dpnss 2503/udp # NMS-DPNSS +nms-dpnss 2503/tcp # NMS-DPNSS +# Jean-Christophe Desire +# +wlbs 2504/udp # WLBS +wlbs 2504/tcp # WLBS +# William Bain +# 2505 Removed (2002-06-14) +ppcontrol 2505/tcp # PowerPlay Control +ppcontrol 2505/udp # PowerPlay Control +# 2506 Unassigned +jbroker 2506/udp # jbroker +jbroker 2506/tcp # jbroker +# Rohit Garg +spock 2507/udp # spock +spock 2507/tcp # spock +# Jon A. Christopher +jdatastore 2508/udp # JDataStore +jdatastore 2508/tcp # JDataStore +# Tod Landis +fjmpss 2509/udp # fjmpss +fjmpss 2509/tcp # fjmpss +# Makoto Watanabe +fjappmgrbulk 2510/udp # fjappmgrbulk +fjappmgrbulk 2510/tcp # fjappmgrbulk +# Hiroyuki Kawabuchi +metastorm 2511/udp # Metastorm +metastorm 2511/tcp # Metastorm +# Eric Isom +citrixima 2512/udp # Citrix IMA +citrixima 2512/tcp # Citrix IMA +citrixadmin 2513/udp # Citrix ADMIN +citrixadmin 2513/tcp # Citrix ADMIN +# Myk Willis +facsys-ntp 2514/udp # Facsys NTP +facsys-ntp 2514/tcp # Facsys NTP +facsys-router 2515/udp # Facsys Router +facsys-router 2515/tcp # Facsys Router +# Jeff Hoffman +maincontrol 2516/udp # Main Control +maincontrol 2516/tcp # Main Control +# Nathan Sadia +call-sig-trans 2517/udp # H.323 Annex E call signaling transport +call-sig-trans 2517/tcp # H.323 Annex E call signaling transport +# Gur Kimchi +willy 2518/udp # Willy +willy 2518/tcp # Willy +# Carl-Johan Wik +globmsgsvc 2519/udp # globmsgsvc +globmsgsvc 2519/tcp # globmsgsvc +# David Wiltz +pvsw 2520/udp # Pervasive Listener +pvsw 2520/tcp # Pervasive Listener +# Chuck Talk +adaptecmgr 2521/udp # Adaptec Manager +adaptecmgr 2521/tcp # Adaptec Manager +# Mark Parenti +windb 2522/udp # WinDb +windb 2522/tcp # WinDb +# Larry Traylor +qke-llc-v3 2523/udp # Qke LLC V.3 +qke-llc-v3 2523/tcp # Qke LLC V.3 +# Joerg Niehoff +optiwave-lm 2524/udp # Optiwave License Management +optiwave-lm 2524/tcp # Optiwave License Management +# Slawomir Krzesinski +ms-v-worlds 2525/udp # MS V-Worlds +ms-v-worlds 2525/tcp # MS V-Worlds +# Pete Wong +ema-sent-lm 2526/udp # EMA License Manager +ema-sent-lm 2526/tcp # EMA License Manager +# Thaddeus Perala +iqserver 2527/udp # IQ Server +iqserver 2527/tcp # IQ Server +# Nick Straguzzi +ncr_ccl 2528/udp # NCR CCL +ncr_ccl 2528/tcp # NCR CCL +# Amitava Dutta +utsftp 2529/udp # UTS FTP +utsftp 2529/tcp # UTS FTP +# David Moore +vrcommerce 2530/udp # VR Commerce +vrcommerce 2530/tcp # VR Commerce +# Yosi Mass +ito-e-gui 2531/udp # ITO-E GUI +ito-e-gui 2531/tcp # ITO-E GUI +# Michael Haeuptle +ovtopmd 2532/udp # OVTOPMD +ovtopmd 2532/tcp # OVTOPMD +# Eric Pulsipher +snifferserver 2533/udp # SnifferServer +snifferserver 2533/tcp # SnifferServer +# Amy Weaver +combox-web-acc 2534/udp # Combox Web Access +combox-web-acc 2534/tcp # Combox Web Access +# Yochai Cohen +madcap 2535/udp # MADCAP +madcap 2535/tcp # MADCAP +# Stephen Hanna +btpp2audctr1 2536/udp # btpp2audctr1 +btpp2audctr1 2536/tcp # btpp2audctr1 +# Ian Daniels +upgrade 2537/udp # Upgrade Protocol +upgrade 2537/tcp # Upgrade Protocol +# Breck Auten +vnwk-prapi 2538/udp # vnwk-prapi +vnwk-prapi 2538/tcp # vnwk-prapi +# John Hasselkus +vsiadmin 2539/udp # VSI Admin +vsiadmin 2539/tcp # VSI Admin +# Rob Juergens +lonworks 2540/udp # LonWorks +lonworks 2540/tcp # LonWorks +lonworks2 2541/udp # LonWorks2 +lonworks2 2541/tcp # LonWorks2 +# Gary Bartlett +davinci 2542/udp # daVinci Presenter +davinci 2542/tcp # daVinci Presenter +# b-novative GmbH +reftek 2543/udp # REFTEK +reftek 2543/tcp # REFTEK +# Robert Banfill +novell-zen 2544/udp # Novell ZEN +novell-zen 2544/tcp # Novell ZEN +# Randy Cook +sis-emt 2545/udp # sis-emt +sis-emt 2545/tcp # sis-emt +# Bill Crawford +vytalvaultbrtp 2546/udp # vytalvaultbrtp +vytalvaultbrtp 2546/tcp # vytalvaultbrtp +vytalvaultvsmp 2547/udp # vytalvaultvsmp +vytalvaultvsmp 2547/tcp # vytalvaultvsmp +vytalvaultpipe 2548/udp # vytalvaultpipe +vytalvaultpipe 2548/tcp # vytalvaultpipe +# Tim Boldt +ipass 2549/udp # IPASS +ipass 2549/tcp # IPASS +# Michael Fischer +ads 2550/udp # ADS +ads 2550/tcp # ADS +# Michael O'Connor +isg-uda-server 2551/udp # ISG UDA Server +isg-uda-server 2551/tcp # ISG UDA Server +# Dror Harari +call-logging 2552/udp # Call Logging +call-logging 2552/tcp # Call Logging +# Dean Webb +efidiningport 2553/udp # efidiningport +efidiningport 2553/tcp # efidiningport +# Lynn Carter +vcnet-link-v10 2554/udp # VCnet-Link v10 +vcnet-link-v10 2554/tcp # VCnet-Link v10 +# Csaba Mate +compaq-wcp 2555/udp # Compaq WCP +compaq-wcp 2555/tcp # Compaq WCP +# Ferruccio Barletta +nicetec-nmsvc 2556/udp # nicetec-nmsvc +nicetec-nmsvc 2556/tcp # nicetec-nmsvc +nicetec-mgmt 2557/udp # nicetec-mgmt +nicetec-mgmt 2557/tcp # nicetec-mgmt +# Joerg Paulus +pclemultimedia 2558/udp # PCLE Multi Media +pclemultimedia 2558/tcp # PCLE Multi Media +# Bernd Scharping +lstp 2559/udp # LSTP +lstp 2559/tcp # LSTP +# Waiki Wright +labrat 2560/udp # labrat +labrat 2560/tcp # labrat +# John Harvey +mosaixcc 2561/udp # MosaixCC +mosaixcc 2561/tcp # MosaixCC +# Steven Frare +delibo 2562/udp # Delibo +delibo 2562/tcp # Delibo +# NovaWiz LTD +cti-redwood 2563/udp # CTI Redwood +cti-redwood 2563/tcp # CTI Redwood +# Songwon Chi +hp-3000-telnet 2564/tcp # HP 3000 NS/VT block mode telnet +# +coord-svr 2565/udp # Coordinator Server +coord-svr 2565/tcp # Coordinator Server +# Richard Steiger +pcs-pcw 2566/udp # pcs-pcw +pcs-pcw 2566/tcp # pcs-pcw +# W. Jordan Fitzhugh +clp 2567/udp # Cisco Line Protocol +clp 2567/tcp # Cisco Line Protocol +# Susan Hinrichs +spamtrap 2568/udp # SPAM TRAP +spamtrap 2568/tcp # SPAM TRAP +# Chuck Bennett +sonuscallsig 2569/udp # Sonus Call Signal +sonuscallsig 2569/tcp # Sonus Call Signal +# Mark Garti +hs-port 2570/udp # HS Port +hs-port 2570/tcp # HS Port +# Uri Doron +cecsvc 2571/udp # CECSVC +cecsvc 2571/tcp # CECSVC +# Roger Pao +ibp 2572/udp # IBP +ibp 2572/tcp # IBP +# Jonathan Downes +trustestablish 2573/udp # Trust Establish +trustestablish 2573/tcp # Trust Establish +# Yosi Mass +blockade-bpsp 2574/udp # Blockade BPSP +blockade-bpsp 2574/tcp # Blockade BPSP +# VP - Research & Development +hl7 2575/udp # HL7 +hl7 2575/tcp # HL7 +# Tim Jacobs +tclprodebugger 2576/udp # TCL Pro Debugger +tclprodebugger 2576/tcp # TCL Pro Debugger +scipticslsrvr 2577/udp # Scriptics Lsrvr +scipticslsrvr 2577/tcp # Scriptics Lsrvr +# Brent Welch +rvs-isdn-dcp 2578/udp # RVS ISDN DCP +rvs-isdn-dcp 2578/tcp # RVS ISDN DCP +# Michael Zirpel +mpfoncl 2579/udp # mpfoncl +mpfoncl 2579/tcp # mpfoncl +# Itaru Kimura +tributary 2580/udp # Tributary +tributary 2580/tcp # Tributary +# Louis Lu +argis-te 2581/udp # ARGIS TE +argis-te 2581/tcp # ARGIS TE +argis-ds 2582/udp # ARGIS DS +argis-ds 2582/tcp # ARGIS DS +# John Legh-Page +mon 2583/udp # MON +mon 2583/tcp # MON +# Jim Trocki +cyaserv 2584/udp # cyaserv +cyaserv 2584/tcp # cyaserv +# Morgan Jones +netx-server 2585/udp # NETX Server +netx-server 2585/tcp # NETX Server +netx-agent 2586/udp # NETX Agent +netx-agent 2586/tcp # NETX Agent +# Brett Dolecheck +masc 2587/udp # MASC +masc 2587/tcp # MASC +# Pavlin Ivanov Radoslavov +# +privilege 2588/udp # Privilege +privilege 2588/tcp # Privilege +# Gil Hecht +quartus-tcl 2589/udp # quartus tcl +quartus-tcl 2589/tcp # quartus tcl +# Subroto Datta +idotdist 2590/udp # idotdist +idotdist 2590/tcp # idotdist +# Jason Hunter +maytagshuffle 2591/udp # Maytag Shuffle +maytagshuffle 2591/tcp # Maytag Shuffle +# Maytag Corporation +netrek 2592/udp # netrek +netrek 2592/tcp # netrek +# Al Guetzlaff +mns-mail 2593/udp # MNS Mail Notice Service +mns-mail 2593/tcp # MNS Mail Notice Service +# Rumiko Kikuta +dts 2594/udp # Data Base Server +dts 2594/tcp # Data Base Server +# Andreas Roene +worldfusion1 2595/udp # World Fusion 1 +worldfusion1 2595/tcp # World Fusion 1 +worldfusion2 2596/udp # World Fusion 2 +worldfusion2 2596/tcp # World Fusion 2 +# World Fusion +homesteadglory 2597/udp # Homestead Glory +homesteadglory 2597/tcp # Homestead Glory +# John Tokash +citriximaclient 2598/udp # Citrix MA Client +citriximaclient 2598/tcp # Citrix MA Client +# Myk Willis +snapd 2599/udp # Snap Discovery +snapd 2599/tcp # Snap Discovery +# Kevin Osborn +hpstgmgr 2600/udp # HPSTGMGR +hpstgmgr 2600/tcp # HPSTGMGR +# Kevin Collins +discp-client 2601/udp # discp client +discp-client 2601/tcp # discp client +discp-server 2602/udp # discp server +discp-server 2602/tcp # discp server +# Peter White +servicemeter 2603/udp # Service Meter +servicemeter 2603/tcp # Service Meter +# Duncan Hare +nsc-ccs 2604/udp # NSC CCS +nsc-ccs 2604/tcp # NSC CCS +nsc-posa 2605/udp # NSC POSA +nsc-posa 2605/tcp # NSC POSA +# Tom Findley +netmon 2606/udp # Dell Netmon +netmon 2606/tcp # Dell Netmon +connection 2607/udp # Dell Connection +connection 2607/tcp # Dell Connection +# Sudhir Shetty +wag-service 2608/udp # Wag Service +wag-service 2608/tcp # Wag Service +# Gilles Bourquard +system-monitor 2609/udp # System Monitor +system-monitor 2609/tcp # System Monitor +# Greg Robson-Garth +versa-tek 2610/udp # VersaTek +versa-tek 2610/tcp # VersaTek +# James Kou +lionhead 2611/udp # LIONHEAD +lionhead 2611/tcp # LIONHEAD +# Tim Rance +qpasa-agent 2612/udp # Qpasa Agent +qpasa-agent 2612/tcp # Qpasa Agent +# Craig Ching +smntubootstrap 2613/udp # SMNTUBootstrap +smntubootstrap 2613/tcp # SMNTUBootstrap +# Matt Cecile +neveroffline 2614/udp # Never Offline +neveroffline 2614/tcp # Never Offline +# Dustin Brand +firepower 2615/udp # firepower +firepower 2615/tcp # firepower +# Jason Volk +appswitch-emp 2616/udp # appswitch-emp +appswitch-emp 2616/tcp # appswitch-emp +# Ted Ross +cmadmin 2617/udp # Clinical Context Managers +cmadmin 2617/tcp # Clinical Context Managers +# Mark Morwood +priority-e-com 2618/udp # Priority E-Com +priority-e-com 2618/tcp # Priority E-Com +# Marcelo Einhorn +bruce 2619/udp # bruce +bruce 2619/tcp # bruce +# Alec Muffett +lpsrecommender 2620/udp # LPSRecommender +lpsrecommender 2620/tcp # LPSRecommender +# Pritham Shetty +miles-apart 2621/udp # Miles Apart Jukebox Server +miles-apart 2621/tcp # Miles Apart Jukebox Server +# Michael Rathmann +metricadbc 2622/udp # MetricaDBC +metricadbc 2622/tcp # MetricaDBC +# Russ Olivant +lmdp 2623/udp # LMDP +lmdp 2623/tcp # LMDP +# Ken Bailey +aria 2624/udp # Aria +aria 2624/tcp # Aria +# Logan Bruns +blwnkl-port 2625/udp # Blwnkl Port +blwnkl-port 2625/tcp # Blwnkl Port +# Weng Chin (Winson) Yung +gbjd816 2626/udp # gbjd816 +gbjd816 2626/tcp # gbjd816 +# George Balesta +moshebeeri 2627/udp # Moshe Beeri +moshebeeri 2627/tcp # Moshe Beeri +# Moshe Beeri +dict 2628/udp # DICT +dict 2628/tcp # DICT +# Rik Faith +sitaraserver 2629/udp # Sitara Server +sitaraserver 2629/tcp # Sitara Server +sitaramgmt 2630/udp # Sitara Management +sitaramgmt 2630/tcp # Sitara Management +sitaradir 2631/udp # Sitara Dir +sitaradir 2631/tcp # Sitara Dir +# Manickam R.Sridhar +irdg-post 2632/udp # IRdg Post +irdg-post 2632/tcp # IRdg Post +# IRdg, Inc. +interintelli 2633/udp # InterIntelli +interintelli 2633/tcp # InterIntelli +# Mike Gagle +pk-electronics 2634/udp # PK Electronics +pk-electronics 2634/tcp # PK Electronics +# Seb Ibis +backburner 2635/udp # Back Burner +backburner 2635/tcp # Back Burner +# Kevin Teiskoetter +solve 2636/udp # Solve +solve 2636/tcp # Solve +# Peter Morrison +imdocsvc 2637/udp # Import Document Service +imdocsvc 2637/tcp # Import Document Service +# Zia Bhatti +sybaseanywhere 2638/udp # Sybase Anywhere +sybaseanywhere 2638/tcp # Sybase Anywhere +# Dave Neudoerffer +aminet 2639/udp # AMInet +aminet 2639/tcp # AMInet +# Alcorn McBride Inc. +sai_sentlm 2640/udp # Sabbagh Associates Licence Manager +sai_sentlm 2640/tcp # Sabbagh Associates Licence Manager +# Elias Sabbagh +hdl-srv 2641/udp # HDL Server +hdl-srv 2641/tcp # HDL Server +# David Ely +tragic 2642/udp # Tragic +tragic 2642/tcp # Tragic +# Stu Mark +gte-samp 2643/udp # GTE-SAMP +gte-samp 2643/tcp # GTE-SAMP +# Asher Altman +travsoft-ipx-t 2644/udp # Travsoft IPX Tunnel +travsoft-ipx-t 2644/tcp # Travsoft IPX Tunnel +# Jack Wilson +novell-ipx-cmd 2645/udp # Novell IPX CMD +novell-ipx-cmd 2645/tcp # Novell IPX CMD +# Juan Carlos Luciani +and-lm 2646/udp # AND License Manager +and-lm 2646/tcp # AND License Manager +# Dick van der Sijs +syncserver 2647/udp # SyncServer +syncserver 2647/tcp # SyncServer +# Dave Finnegan +upsnotifyprot 2648/udp # Upsnotifyprot +upsnotifyprot 2648/tcp # Upsnotifyprot +# Mario Leboute +vpsipport 2649/udp # VPSIPPORT +vpsipport 2649/tcp # VPSIPPORT +# Joon Radley +eristwoguns 2650/udp # eristwoguns +eristwoguns 2650/tcp # eristwoguns +# NetPro Computing Inc. +ebinsite 2651/udp # EBInSite +ebinsite 2651/tcp # EBInSite +# Lefteris Kalamaras +interpathpanel 2652/udp # InterPathPanel +interpathpanel 2652/tcp # InterPathPanel +# Stephen Misel +sonus 2653/udp # Sonus +sonus 2653/tcp # Sonus +# Mark Garti +corel_vncadmin 2654/udp # Corel VNC Admin +corel_vncadmin 2654/tcp # Corel VNC Admin +# Oleg Noskov +unglue 2655/udp # UNIX Nt Glue +unglue 2655/tcp # UNIX Nt Glue +# Peter Santoro +kana 2656/udp # Kana +kana 2656/tcp # Kana +# Colin Goldstein +sns-dispatcher 2657/udp # SNS Dispatcher +sns-dispatcher 2657/tcp # SNS Dispatcher +sns-admin 2658/udp # SNS Admin +sns-admin 2658/tcp # SNS Admin +sns-query 2659/udp # SNS Query +sns-query 2659/tcp # SNS Query +# Mary Holstege +gcmonitor 2660/udp # GC Monitor +gcmonitor 2660/tcp # GC Monitor +# Gustavo Rodriguez-Rivera +olhost 2661/udp # OLHOST +olhost 2661/tcp # OLHOST +# Robert Ripberger +bintec-capi 2662/udp # BinTec-CAPI +bintec-capi 2662/tcp # BinTec-CAPI +bintec-tapi 2663/udp # BinTec-TAPI +bintec-tapi 2663/tcp # BinTec-TAPI +# +patrol-mq-gm 2664/udp # Patrol for MQ GM +patrol-mq-gm 2664/tcp # Patrol for MQ GM +patrol-mq-nm 2665/udp # Patrol for MQ NM +patrol-mq-nm 2665/tcp # Patrol for MQ NM +# Richard Nikula +extensis 2666/udp # extensis +extensis 2666/tcp # extensis +# Milton Sagen +alarm-clock-s 2667/udp # Alarm Clock Server +alarm-clock-s 2667/tcp # Alarm Clock Server +alarm-clock-c 2668/udp # Alarm Clock Client +alarm-clock-c 2668/tcp # Alarm Clock Client +toad 2669/udp # TOAD +toad 2669/tcp # TOAD +# Michael Marking +tve-announce 2670/udp # TVE Announce +tve-announce 2670/tcp # TVE Announce +# Dean Blackketter +newlixreg 2671/udp # newlixreg +newlixreg 2671/tcp # newlixreg +# Jean-Serge Gagnon +nhserver 2672/udp # nhserver +nhserver 2672/tcp # nhserver +# Adrian Hornby +firstcall42 2673/udp # First Call 42 +firstcall42 2673/tcp # First Call 42 +# Luke Bowen +ewnn 2674/udp # ewnn +ewnn 2674/tcp # ewnn +# Yasunari Yamashita +ttc-etap 2675/udp # TTC ETAP +ttc-etap 2675/tcp # TTC ETAP +# Daniel Becker +simslink 2676/udp # SIMSLink +simslink 2676/tcp # SIMSLink +# Steve Ryckman +gadgetgate1way 2677/udp # Gadget Gate 1 Way +gadgetgate1way 2677/tcp # Gadget Gate 1 Way +gadgetgate2way 2678/udp # Gadget Gate 2 Way +gadgetgate2way 2678/tcp # Gadget Gate 2 Way +# Matt Rollins +syncserverssl 2679/udp # Sync Server SSL +syncserverssl 2679/tcp # Sync Server SSL +# Dave Finnegan +pxc-sapxom 2680/udp # pxc-sapxom +pxc-sapxom 2680/tcp # pxc-sapxom +# Hideki Kiriyama +mpnjsomb 2681/udp # mpnjsomb +mpnjsomb 2681/tcp # mpnjsomb +# Takenori Miyahara +# 2682 Removed (2002-04-30) +ncdloadbalance 2683/udp # NCDLoadBalance +ncdloadbalance 2683/tcp # NCDLoadBalance +# Tim Stevenson +mpnjsosv 2684/udp # mpnjsosv +mpnjsosv 2684/tcp # mpnjsosv +mpnjsocl 2685/udp # mpnjsocl +mpnjsocl 2685/tcp # mpnjsocl +mpnjsomg 2686/udp # mpnjsomg +mpnjsomg 2686/tcp # mpnjsomg +# Takenori Miyahara +pq-lic-mgmt 2687/udp # pq-lic-mgmt +pq-lic-mgmt 2687/tcp # pq-lic-mgmt +# Bob Sledge +md-cg-http 2688/udp # md-cf-http +md-cg-http 2688/tcp # md-cf-http +# Lyndon Nerenberg +fastlynx 2689/udp # FastLynx +fastlynx 2689/tcp # FastLynx +# Dave Sewell +hp-nnm-data 2690/udp # HP NNM Embedded Database +hp-nnm-data 2690/tcp # HP NNM Embedded Database +# Chris Das +itinternet 2691/udp # ITInternet ISM Server +itinternet 2691/tcp # ITInternet ISM Server +# Ron Ehli +admins-lms 2692/udp # Admins LMS +admins-lms 2692/tcp # Admins LMS +# Dagfinn Saether +belarc-http 2693/udp # belarc-http +belarc-http 2693/tcp # belarc-http +# Gary Newman +pwrsevent 2694/udp # pwrsevent +pwrsevent 2694/tcp # pwrsevent +# Yoshinobu Nakamura +# +vspread 2695/udp # VSPREAD +vspread 2695/tcp # VSPREAD +# Sumitake kobayashi +# +unifyadmin 2696/udp # Unify Admin +unifyadmin 2696/tcp # Unify Admin +# Duane Gibson +oce-snmp-trap 2697/udp # Oce SNMP Trap Port +oce-snmp-trap 2697/tcp # Oce SNMP Trap Port +# Peter Teeuwen +mck-ivpip 2698/udp # MCK-IVPIP +mck-ivpip 2698/tcp # MCK-IVPIP +# Robert Vincent +csoft-plusclnt 2699/udp # Csoft Plus Client +csoft-plusclnt 2699/tcp # Csoft Plus Client +# Nedelcho Stanev +tqdata 2700/udp # tqdata +tqdata 2700/tcp # tqdata +# Al Guetzlaff +sms-rcinfo 2701/udp # SMS RCINFO +sms-rcinfo 2701/tcp # SMS RCINFO +sms-xfer 2702/udp # SMS XFER +sms-xfer 2702/tcp # SMS XFER +sms-chat 2703/udp # SMS CHAT +sms-chat 2703/tcp # SMS CHAT +sms-remctrl 2704/udp # SMS REMCTRL +sms-remctrl 2704/tcp # SMS REMCTRL +# Tom Friend +sds-admin 2705/udp # SDS Admin +sds-admin 2705/tcp # SDS Admin +# Don Traub +ncdmirroring 2706/udp # NCD Mirroring +ncdmirroring 2706/tcp # NCD Mirroring +# Tim Stevenson +emcsymapiport 2707/udp # EMCSYMAPIPORT +emcsymapiport 2707/tcp # EMCSYMAPIPORT +# Bruce Ferjulian +banyan-net 2708/udp # Banyan-Net +banyan-net 2708/tcp # Banyan-Net +# R. Thirumurthy +supermon 2709/udp # Supermon +supermon 2709/tcp # Supermon +# Ron Minnich +sso-service 2710/udp # SSO Service +sso-service 2710/tcp # SSO Service +sso-control 2711/udp # SSO Control +sso-control 2711/tcp # SSO Control +# Martin Proulx +aocp 2712/udp # Axapta Object Communication Protocol +aocp 2712/tcp # Axapta Object Communication Protocol +# Jakob Steen Hansen +raven1 2713/udp # Raven1 +raven1 2713/tcp # Raven1 +raven2 2714/udp # Raven2 +raven2 2714/tcp # Raven2 +# Daniel Sorlov +hpstgmgr2 2715/udp # HPSTGMGR2 +hpstgmgr2 2715/tcp # HPSTGMGR2 +# Kevin Collins +inova-ip-disco 2716/udp # Inova IP Disco +inova-ip-disco 2716/tcp # Inova IP Disco +# Chris Koeritz +pn-requester 2717/udp # PN REQUESTER +pn-requester 2717/tcp # PN REQUESTER +pn-requester2 2718/udp # PN REQUESTER 2 +pn-requester2 2718/tcp # PN REQUESTER 2 +# Edmund Chang +scan-change 2719/udp # Scan & Change +scan-change 2719/tcp # Scan & Change +# Alexander Raji +wkars 2720/udp # wkars +wkars 2720/tcp # wkars +# Barry Shelton +smart-diagnose 2721/udp # Smart Diagnose +smart-diagnose 2721/tcp # Smart Diagnose +# Geoffry Meek +proactivesrvr 2722/udp # Proactive Server +proactivesrvr 2722/tcp # Proactive Server +# Dalit Naor +watchdognt 2723/udp # WatchDog NT +watchdognt 2723/tcp # WatchDog NT +# Glen Sansoucie +qotps 2724/udp # qotps +qotps 2724/tcp # qotps +# Piotr Parlewicz +msolap-ptp2 2725/udp # MSOLAP PTP2 +msolap-ptp2 2725/tcp # MSOLAP PTP2 +# Cristian Petculescu +tams 2726/udp # TAMS +tams 2726/tcp # TAMS +# David Leinbach +mgcp-callagent 2727/udp # Media Gateway Control Protocol Call Agent +mgcp-callagent 2727/tcp # Media Gateway Control Protocol Call Agent +# Christian Huitema +sqdr 2728/udp # SQDR +sqdr 2728/tcp # SQDR +# Matthew Orzen +tcim-control 2729/udp # TCIM Control +tcim-control 2729/tcp # TCIM Control +# Dean Skelton +nec-raidplus 2730/udp # NEC RaidPlus +nec-raidplus 2730/tcp # NEC RaidPlus +# Yusuke Asai +fyre-messanger 2731/udp # Fyre Messagner +fyre-messanger 2731/tcp # Fyre Messanger +# Robert Waters +g5m 2732/udp # G5M +g5m 2732/tcp # G5M +# Graham Klyne +signet-ctf 2733/udp # Signet CTF +signet-ctf 2733/tcp # Signet CTF +# Greg Broiles +ccs-software 2734/udp # CCS Software +ccs-software 2734/tcp # CCS Software +# Bertus Jacobs +netiq-mc 2735/udp # NetIQ Monitor Console +netiq-mc 2735/tcp # NetIQ Monitor Console +# Scott Southard +radwiz-nms-srv 2736/udp # RADWIZ NMS SRV +radwiz-nms-srv 2736/tcp # RADWIZ NMS SRV +# Israel Shainert +srp-feedback 2737/udp # SRP Feedback +srp-feedback 2737/tcp # SRP Feedback +# Werner Almesberger +ndl-tcp-ois-gw 2738/udp # NDL TCP-OSI Gateway +ndl-tcp-ois-gw 2738/tcp # NDL TCP-OSI Gateway +# Martin Norman +tn-timing 2739/udp # TN Timing +tn-timing 2739/tcp # TN Timing +# Paul Roberts +alarm 2740/udp # Alarm +alarm 2740/tcp # Alarm +# Uriy Makasjuk +tsb 2741/udp # TSB +tsb 2741/tcp # TSB +tsb2 2742/udp # TSB2 +tsb2 2742/tcp # TSB2 +# Ashish Chatterjee +# +murx 2743/udp # murx +murx 2743/tcp # murx +# Thomas Kuiper +honyaku 2744/udp # honyaku +honyaku 2744/tcp # honyaku +# Yasunari Yamashita +urbisnet 2745/udp # URBISNET +urbisnet 2745/tcp # URBISNET +# Urbis.Net Ltd +cpudpencap 2746/udp # CPUDPENCAP +cpudpencap 2746/tcp # CPUDPENCAP +# Tamir Zegman +fjippol-swrly 2747/udp # +fjippol-swrly 2747/tcp # +fjippol-polsvr 2748/udp # +fjippol-polsvr 2748/tcp # +fjippol-cnsl 2749/udp # +fjippol-cnsl 2749/tcp # +fjippol-port1 2750/udp # +fjippol-port1 2750/tcp # +fjippol-port2 2751/udp # +fjippol-port2 2751/tcp # +# Shoichi Tachibana +rsisysaccess 2752/udp # RSISYS ACCESS +rsisysaccess 2752/tcp # RSISYS ACCESS +# Christophe Besant +de-spot 2753/udp # de-spot +de-spot 2753/tcp # de-spot +# Sanjay Parekh +apollo-cc 2754/udp # APOLLO CC +apollo-cc 2754/tcp # APOLLO CC +# Brand Communications +expresspay 2755/udp # Express Pay +expresspay 2755/tcp # Express Pay +# Ben Higgins +simplement-tie 2756/udp # simplement-tie +simplement-tie 2756/tcp # simplement-tie +# Tzvika Chumash +cnrp 2757/udp # CNRP +cnrp 2757/tcp # CNRP +# Jacob Ulmert +apollo-status 2758/udp # APOLLO Status +apollo-status 2758/tcp # APOLLO Status +apollo-gms 2759/udp # APOLLO GMS +apollo-gms 2759/tcp # APOLLO GMS +# Simon Hovell +sabams 2760/udp # Saba MS +sabams 2760/tcp # Saba MS +# Davoud Maha +dicom-iscl 2761/udp # DICOM ISCL +dicom-iscl 2761/tcp # DICOM ISCL +dicom-tls 2762/udp # DICOM TLS +dicom-tls 2762/tcp # DICOM TLS +# Lawrence Tarbox +desktop-dna 2763/udp # Desktop DNA +desktop-dna 2763/tcp # Desktop DNA +# Jon Walker +data-insurance 2764/udp # Data Insurance +data-insurance 2764/tcp # Data Insurance +# Brent Irwin +qip-audup 2765/udp # qip-audup +qip-audup 2765/tcp # qip-audup +# Mike Morgan +compaq-scp 2766/udp # Compaq SCP +compaq-scp 2766/tcp # Compaq SCP +# Ferruccio Barletta +uadtc 2767/udp # UADTC +uadtc 2767/tcp # UADTC +uacs 2768/udp # UACS +uacs 2768/tcp # UACS +# Vishwas Lele +singlept-mvs 2769/udp # Single Point MVS +singlept-mvs 2769/tcp # Single Point MVS +# Thomas Anderson +veronica 2770/udp # Veronica +veronica 2770/tcp # Veronica +# Jonas Oberg +vergencecm 2771/udp # Vergence CM +vergencecm 2771/tcp # Vergence CM +# Mark Morwood +auris 2772/udp # auris +auris 2772/tcp # auris +# Francisco Saez Arance +rbakcup1 2773/udp # RBackup Remote Backup +rbakcup1 2773/tcp # RBackup Remote Backup +rbakcup2 2774/udp # RBackup Remote Backup +rbakcup2 2774/tcp # RBackup Remote Backup +# Rob Cosgrove +smpp 2775/udp # SMPP +smpp 2775/tcp # SMPP +# Owen Sullivan +ridgeway1 2776/udp # Ridgeway Systems & Software +ridgeway1 2776/tcp # Ridgeway Systems & Software +ridgeway2 2777/udp # Ridgeway Systems & Software +ridgeway2 2777/tcp # Ridgeway Systems & Software +# Steve Read +gwen-sonya 2778/udp # Gwen-Sonya +gwen-sonya 2778/tcp # Gwen-Sonya +# Mark Hurst +lbc-sync 2779/udp # LBC Sync +lbc-sync 2779/tcp # LBC Sync +lbc-control 2780/udp # LBC Control +lbc-control 2780/tcp # LBC Control +# Keiji Michine +whosells 2781/udp # whosells +whosells 2781/tcp # whosells +# William Randolph Royere III +# +everydayrc 2782/udp # everydayrc +everydayrc 2782/tcp # everydayrc +# Ahti Heinla +aises 2783/udp # AISES +aises 2783/tcp # AISES +# Daniel Grazioli +www-dev 2784/udp # world wide web - development +www-dev 2784/tcp # world wide web - development +aic-np 2785/udp # aic-np +aic-np 2785/tcp # aic-np +# Brad Parker +aic-oncrpc 2786/udp # aic-oncrpc - Destiny MCD database +aic-oncrpc 2786/tcp # aic-oncrpc - Destiny MCD database +# Brad Parker +piccolo 2787/udp # piccolo - Cornerstone Software +piccolo 2787/tcp # piccolo - Cornerstone Software +# Dave Bellivea +fryeserv 2788/udp # NetWare Loadable Module - Seagate Software +fryeserv 2788/tcp # NetWare Loadable Module - Seagate Software +# Joseph LoPilato +# +media-agent 2789/udp # Media Agent +media-agent 2789/tcp # Media Agent +# Nitzan Daube +plgproxy 2790/udp # PLG Proxy +plgproxy 2790/tcp # PLG Proxy +# Charlie Hava +mtport-regist 2791/udp # MT Port Registrator +mtport-regist 2791/tcp # MT Port Registrator +# Maxim Tseitlin +f5-globalsite 2792/udp # f5-globalsite +f5-globalsite 2792/tcp # f5-globalsite +# Christian Saether +initlsmsad 2793/udp # initlsmsad +initlsmsad 2793/tcp # initlsmsad +# Kelly Green +aaftp 2794/udp # aaftp +aaftp 2794/tcp # aaftp +# E. Jay Berkenbilt +livestats 2795/udp # LiveStats +livestats 2795/tcp # LiveStats +# Chris Greene +ac-tech 2796/udp # ac-tech +ac-tech 2796/tcp # ac-tech +# Chiming Huang +esp-encap 2797/udp # esp-encap +esp-encap 2797/tcp # esp-encap +# Jorn Sierwald +tmesis-upshot 2798/udp # TMESIS-UPShot +tmesis-upshot 2798/tcp # TMESIS-UPShot +# Brian Schenkenberger +icon-discover 2799/udp # ICON Discover +icon-discover 2799/tcp # ICON Discover +# Alexander Falk +acc-raid 2800/udp # ACC RAID +acc-raid 2800/tcp # ACC RAID +# Scott St. Clair +igcp 2801/udp # IGCP +igcp 2801/tcp # IGCP +# David Hampson +veritas-udp1 2802/udp # Veritas UDP1 +veritas-tcp1 2802/tcp # Veritas TCP1 +# Russ Thrasher +btprjctrl 2803/udp # btprjctrl +btprjctrl 2803/tcp # btprjctrl +# Huw Thomas +telexis-vtu 2804/udp # Telexis VTU +telexis-vtu 2804/tcp # Telexis VTU +# Todd White +wta-wsp-s 2805/udp # WTA WSP-S +wta-wsp-s 2805/tcp # WTA WSP-S +# Sebastien Bury (WAP Forum) +# +cspuni 2806/udp # cspuni +cspuni 2806/tcp # cspuni +cspmulti 2807/udp # cspmulti +cspmulti 2807/tcp # cspmulti +# Terumasa Yoneda +j-lan-p 2808/udp # J-LAN-P +j-lan-p 2808/tcp # J-LAN-P +# Takeshi Sahara +corbaloc 2809/udp # CORBA LOC +corbaloc 2809/tcp # CORBA LOC +# Ted McFadden +netsteward 2810/udp # Active Net Steward +netsteward 2810/tcp # Active Net Steward +# Keith Morley +gsiftp 2811/udp # GSI FTP +gsiftp 2811/tcp # GSI FTP +# Von Welch +atmtcp 2812/udp # atmtcp +atmtcp 2812/tcp # atmtcp +# Werner Almesberger +llm-pass 2813/udp # llm-pass +llm-pass 2813/tcp # llm-pass +llm-csv 2814/udp # llm-csv +llm-csv 2814/tcp # llm-csv +# Glen Sansoucie +lbc-measure 2815/udp # LBC Measurement +lbc-measure 2815/tcp # LBC Measurement +lbc-watchdog 2816/udp # LBC Watchdog +lbc-watchdog 2816/tcp # LBC Watchdog +# Akiyoshi Ochi +nmsigport 2817/udp # NMSig Port +nmsigport 2817/tcp # NMSig Port +# Peter Egli +rmlnk 2818/udp # rmlnk +rmlnk 2818/tcp # rmlnk +fc-faultnotify 2819/udp # FC Fault Notification +fc-faultnotify 2819/tcp # FC Fault Notification +# Dave Watkins +univision 2820/udp # UniVision +univision 2820/tcp # UniVision +# Keith Ansell +vrts-at-port 2821/udp # VERITAS Authentication Service +vrts-at-port 2821/tcp # VERITAS Authentication Service +# Stefan Winkel +ka0wuc 2822/udp # ka0wuc +ka0wuc 2822/tcp # ka0wuc +# Kit Haskins +cqg-netlan 2823/udp # CQG Net/LAN +cqg-netlan 2823/tcp # CQG Net/LAN +cqg-netlan-1 2824/udp # CQG Net/Lan 1 +cqg-netlan-1 2824/tcp # CQG Net/LAN 1 +# Jeff Wood +# 2825 (unassigned) Possibly assigned +slc-systemlog 2826/udp # slc systemlog +slc-systemlog 2826/tcp # slc systemlog +slc-ctrlrloops 2827/udp # slc ctrlrloops +slc-ctrlrloops 2827/tcp # slc ctrlrloops +# Erwin Hogeweg +itm-lm 2828/udp # ITM License Manager +itm-lm 2828/tcp # ITM License Manager +# Miles O'Neal +silkp1 2829/udp # silkp1 +silkp1 2829/tcp # silkp1 +silkp2 2830/udp # silkp2 +silkp2 2830/tcp # silkp2 +silkp3 2831/udp # silkp3 +silkp3 2831/tcp # silkp3 +silkp4 2832/udp # silkp4 +silkp4 2832/tcp # silkp4 +# Erik Skyten +glishd 2833/udp # glishd +glishd 2833/tcp # glishd +# Darrell Schiebel +evtp 2834/udp # EVTP +evtp 2834/tcp # EVTP +evtp-data 2835/udp # EVTP-DATA +evtp-data 2835/tcp # EVTP-DATA +# Eric Bruno +catalyst 2836/udp # catalyst +catalyst 2836/tcp # catalyst +# Garret Tollkuhn +repliweb 2837/udp # Repliweb +repliweb 2837/tcp # Repliweb +# William Orme +starbot 2838/udp # Starbot +starbot 2838/tcp # Starbot +# Markus Sabadello +nmsigport 2839/udp # NMSigPort +nmsigport 2839/tcp # NMSigPort +# Peter Egli +l3-exprt 2840/udp # l3-exprt +l3-exprt 2840/tcp # l3-exprt +l3-ranger 2841/udp # l3-ranger +l3-ranger 2841/tcp # l3-ranger +l3-hawk 2842/udp # l3-hawk +l3-hawk 2842/tcp # l3-hawk +# Dolores Scott +pdnet 2843/udp # PDnet +pdnet 2843/tcp # PDnet +# Torsten Scheffler +bpcp-poll 2844/udp # BPCP POLL +bpcp-poll 2844/tcp # BPCP POLL +bpcp-trap 2845/udp # BPCP TRAP +bpcp-trap 2845/tcp # BPCP TRAP +# Steve Van Duser +# +aimpp-hello 2846/udp # AIMPP Hello +aimpp-hello 2846/tcp # AIMPP Hello +aimpp-port-req 2847/udp # AIMPP Port Req +aimpp-port-req 2847/tcp # AIMPP Port Req +# Brian Martinicky +# +amt-blc-port 2848/udp # AMT-BLC-PORT +amt-blc-port 2848/tcp # AMT-BLC-PORT +# Sandra Frulloni +fxp 2849/udp # FXP +fxp 2849/tcp # FXP +# Martin Lichtin +metaconsole 2850/udp # MetaConsole +metaconsole 2850/tcp # MetaConsole +# Rakesh Mahajan +webemshttp 2851/udp # webemshttp +webemshttp 2851/tcp # webemshttp +# Stephen Tsun +bears-01 2852/udp # bears-01 +bears-01 2852/tcp # bears-01 +# Bruce McKinnon +ispipes 2853/udp # ISPipes +ispipes 2853/tcp # ISPipes +# Rajesh Nandyalam +infomover 2854/udp # InfoMover +infomover 2854/tcp # InfoMover +# Carla Caputo +cesdinv 2856/udp # cesdinv +cesdinv 2856/tcp # cesdinv +# Yoshiaki Tokumoto +simctlp 2857/udp # SimCtIP +simctlp 2857/tcp # SimCtIP +# Christian Zietz +ecnp 2858/udp # ECNP +ecnp 2858/tcp # ECNP +# Robert Reimiller +activememory 2859/udp # Active Memory +activememory 2859/tcp # Active Memory +# Joe Graham +dialpad-voice1 2860/udp # Dialpad Voice 1 +dialpad-voice1 2860/tcp # Dialpad Voice 1 +dialpad-voice2 2861/udp # Dialpad Voice 2 +dialpad-voice2 2861/tcp # Dialpad Voice 2 +# Wongyu Cho +ttg-protocol 2862/udp # TTG Protocol +ttg-protocol 2862/tcp # TTG Protocol +# Mark Boler +sonardata 2863/udp # Sonar Data +sonardata 2863/tcp # Sonar Data +# Ian Higginbottom +astromed-main 2864/udp # main 5001 cmd +astromed-main 2864/tcp # main 5001 cmd +# Chris Tate +pit-vpn 2865/udp # pit-vpn +pit-vpn 2865/tcp # pit-vpn +# Norbert Sendetzky +iwlistener 2866/udp # iwlistener +iwlistener 2866/tcp # iwlistener +# Fred Surr +esps-portal 2867/udp # esps-portal +esps-portal 2867/tcp # esps-portal +# Nicholas Stowfis +npep-messaging 2868/udp # NPEP Messaging +npep-messaging 2868/tcp # NPEP Messaging +# Kristian A. Bognaes +icslap 2869/udp # ICSLAP +icslap 2869/tcp # ICSLAP +# Richard Lamb +daishi 2870/udp # daishi +daishi 2870/tcp # daishi +# Patrick Chipman +msi-selectplay 2871/udp # MSI Select Play +msi-selectplay 2871/tcp # MSI Select Play +# Paul Fonte +radix 2872/udp # RADIX +radix 2872/tcp # RADIX +# Stein Roger Skaflotten +# +paspar2-zoomin 2873/udp # PASPAR2 ZoomIn +paspar2-zoomin 2873/tcp # PASPAR2 ZoomIn +# Amonn David +dxmessagebase1 2874/udp # dxmessagebase1 +dxmessagebase1 2874/tcp # dxmessagebase1 +dxmessagebase2 2875/udp # dxmessagebase2 +dxmessagebase2 2875/tcp # dxmessagebase2 +# Ozz Nixon +sps-tunnel 2876/udp # SPS Tunnel +sps-tunnel 2876/tcp # SPS Tunnel +# Bill McIntosh +bluelance 2877/udp # BLUELANCE +bluelance 2877/tcp # BLUELANCE +# Michael Padrezas +aap 2878/udp # AAP +aap 2878/tcp # AAP +# Stephen Hanna +ucentric-ds 2879/udp # ucentric-ds +ucentric-ds 2879/tcp # ucentric-ds +# Alex Vasilevsky +synapse 2880/udp # Synapse Transport +synapse 2880/tcp # Synapse Transport +# Ali Fracyon +ndsp 2881/udp # NDSP +ndsp 2881/tcp # NDSP +ndtp 2882/udp # NDTP +ndtp 2882/tcp # NDTP +ndnp 2883/udp # NDNP +ndnp 2883/tcp # NDNP +# Khelben Blackstaff +flashmsg 2884/udp # Flash Msg +flashmsg 2884/tcp # Flash Msg +# Jeffrey Zinkerman +topflow 2885/udp # TopFlow +topflow 2885/tcp # TopFlow +# Ted Ross +responselogic 2886/udp # RESPONSELOGIC +responselogic 2886/tcp # RESPONSELOGIC +# Bruce Casey +aironetddp 2887/udp # aironet +aironetddp 2887/tcp # aironet +# Victor Griswold +spcsdlobby 2888/udp # SPCSDLOBBY +spcsdlobby 2888/tcp # SPCSDLOBBY +# Matthew Williams +rsom 2889/udp # RSOM +rsom 2889/tcp # RSOM +# Justine Higgins +cspclmulti 2890/udp # CSPCLMULTI +cspclmulti 2890/tcp # CSPCLMULTI +# Yoneda Terumasa +cinegrfx-elmd 2891/udp # CINEGRFX-ELMD License Manager +cinegrfx-elmd 2891/tcp # CINEGRFX-ELMD License Manager +# Greg Ercolano +snifferdata 2892/udp # SNIFFERDATA +snifferdata 2892/tcp # SNIFFERDATA +# Jeff Mangasarian +vseconnector 2893/udp # VSECONNECTOR +vseconnector 2893/tcp # VSECONNECTOR +# Ingo Franzki +abacus-remote 2894/udp # ABACUS-REMOTE +abacus-remote 2894/tcp # ABACUS-REMOTE +# Mike Bello +natuslink 2895/udp # NATUS LINK +natuslink 2895/tcp # NATUS LINK +# Jonathan Mergy +ecovisiong6-1 2896/udp # ECOVISIONG6-1 +ecovisiong6-1 2896/tcp # ECOVISIONG6-1 +# Henrik Holst +citrix-rtmp 2897/udp # Citrix RTMP +citrix-rtmp 2897/tcp # Citrix RTMP +# Myk Willis +appliance-cfg 2898/udp # APPLIANCE-CFG +appliance-cfg 2898/tcp # APPLIANCE-CFG +# Gary A. James +powergemplus 2899/udp # POWERGEMPLUS +powergemplus 2899/tcp # POWERGEMPLUS +# Koich Nakamura +quicksuite 2900/udp # QUICKSUITE +quicksuite 2900/tcp # QUICKSUITE +# William Egge +allstorcns 2901/udp # ALLSTORCNS +allstorcns 2901/tcp # ALLSTORCNS +# Steve Dobson +netaspi 2902/udp # NET ASPI +netaspi 2902/tcp # NET ASPI +# Johnson Luo +suitcase 2903/udp # SUITCASE +suitcase 2903/tcp # SUITCASE +# Milton E. Sagen +m2ua 2904/sctp # M2UA +m2ua 2904/udp # M2UA +m2ua 2904/tcp # M2UA +# Lyndon Ong +m3ua 2905/sctp # M3UA +m3ua 2905/udp # De-registered (2001 June 07) +m3ua 2905/tcp # M3UA +# Lyndon Ong +caller9 2906/udp # CALLER9 +caller9 2906/tcp # CALLER9 +# Shams Naqi +webmethods-b2b 2907/udp # WEBMETHODS B2B +webmethods-b2b 2907/tcp # WEBMETHODS B2B +# Joseph Hines +mao 2908/udp # mao +mao 2908/tcp # mao +# Marc Baudoin +funk-dialout 2909/udp # Funk Dialout +funk-dialout 2909/tcp # Funk Dialout +# Cimarron Boozer +tdaccess 2910/udp # TDAccess +tdaccess 2910/tcp # TDAccess +# Tom Haapanen +blockade 2911/udp # Blockade +blockade 2911/tcp # Blockade +# VP - Research & Development +epicon 2912/udp # Epicon +epicon 2912/tcp # Epicon +# Michael Khalandovsky +boosterware 2913/udp # Booster Ware +boosterware 2913/tcp # Booster Ware +# Ido Ben-David +gamelobby 2914/udp # Game Lobby +gamelobby 2914/tcp # Game Lobby +# Paul Ford-Hutchinson +tksocket 2915/udp # TK Socket +tksocket 2915/tcp # TK Socket +# Alan Fahrner +elvin_server 2916/udp # Elvin Server +elvin_server 2916/tcp # Elvin Server +elvin_client 2917/udp # Elvin Client +elvin_client 2917/tcp # Elvin Client +# David Arnold +kastenchasepad 2918/udp # Kasten Chase Pad +kastenchasepad 2918/tcp # Kasten Chase Pad +# Marc Gauthier +roboer 2919/udp # ROBOER +roboer 2919/tcp # ROBOER +# Paul Snook +roboeda 2920/udp # ROBOEDA +roboeda 2920/tcp # ROBOEDA +# Paul Snook +cesdcdman 2921/udp # CESD Contents Delivery Management +cesdcdman 2921/tcp # CESD Contents Delivery Management +# Shinya Abe +cesdcdtrn 2922/udp # CESD Contents Delivery Data Transfer +cesdcdtrn 2922/tcp # CESD Contents Delivery Data Transfer +# Shinya Abe +wta-wsp-wtp-s 2923/udp # WTA-WSP-WTP-S +wta-wsp-wtp-s 2923/tcp # WTA-WSP-WTP-S +# Sebastien Bury (WAP Forum) +# +precise-vip 2924/udp # PRECISE-VIP +precise-vip 2924/tcp # PRECISE-VIP +# Michael Landwehr +# 2925 Unassigned (FRP-Released 12/7/00) +mobile-file-dl 2926/udp # MOBILE-FILE-DL +mobile-file-dl 2926/tcp # MOBILE-FILE-DL +# Mitsuji Toda +unimobilectrl 2927/udp # UNIMOBILECTRL +unimobilectrl 2927/tcp # UNIMOBILECTRL +# Vikas +redstone-cpss 2928/udp # REDSTONE-CPSS +redstone-cpss 2928/tcp # REDSTONE-CPSS +# Jeff Looman +amx-webadmin 2929/udp # AMX-WEBADMIN +amx-webadmin 2929/tcp # AMX-WEBADMIN +# Mike Morris +amx-weblinx 2930/udp # AMX-WEBLINX +amx-weblinx 2930/tcp # AMX-WEBLINX +# Mike Morris +circle-x 2931/udp # Circle-X +circle-x 2931/tcp # Circle-X +# Norm Freedman +incp 2932/udp # INCP +incp 2932/tcp # INCP +# Keith Paulsen +4-tieropmgw 2933/udp # 4-TIER OPM GW +4-tieropmgw 2933/tcp # 4-TIER OPM GW +# Francois Peloffy +4-tieropmcli 2934/udp # 4-TIER OPM CLI +4-tieropmcli 2934/tcp # 4-TIER OPM CLI +# Francois Peloffy +qtp 2935/udp # QTP +qtp 2935/tcp # QTP +# Cameron Young +otpatch 2936/udp # OTPatch +otpatch 2936/tcp # OTPatch +# Thomas J. Theobald +pnaconsult-lm 2937/udp # PNACONSULT-LM +pnaconsult-lm 2937/tcp # PNACONSULT-LM +# Theo Nijssen +sm-pas-1 2938/udp # SM-PAS-1 +sm-pas-1 2938/tcp # SM-PAS-1 +sm-pas-2 2939/udp # SM-PAS-2 +sm-pas-2 2939/tcp # SM-PAS-2 +sm-pas-3 2940/udp # SM-PAS-3 +sm-pas-3 2940/tcp # SM-PAS-3 +sm-pas-4 2941/udp # SM-PAS-4 +sm-pas-4 2941/tcp # SM-PAS-4 +sm-pas-5 2942/udp # SM-PAS-5 +sm-pas-5 2942/tcp # SM-PAS-5 +# Tom Haapanen +ttnrepository 2943/udp # TTNRepository +ttnrepository 2943/tcp # TTNRepository +# Robert Orr +megaco-h248 2944/udp # Megaco H-248 +megaco-h248 2944/tcp # Megaco H-248 +h248-binary 2945/udp # H248 Binary +h248-binary 2945/tcp # H248 Binary +# Tom Taylor +fjsvmpor 2946/udp # FJSVmpor +fjsvmpor 2946/tcp # FJSVmpor +# Naoki Hayashi +gpsd 2947/udp # GPSD +gpsd 2947/tcp # GPSD +# Derrick J. Brashear +wap-push 2948/udp # WAP PUSH +wap-push 2948/tcp # WAP PUSH +wap-pushsecure 2949/udp # WAP PUSH SECURE +wap-pushsecure 2949/tcp # WAP PUSH SECURE +# WAP FORUM +esip 2950/udp # ESIP +esip 2950/tcp # ESIP +# David Stephenson +ottp 2951/udp # OTTP +ottp 2951/tcp # OTTP +# Brent Foster +mpfwsas 2952/udp # MPFWSAS +mpfwsas 2952/tcp # MPFWSAS +# Toru Murai +ovalarmsrv 2953/udp # OVALARMSRV +ovalarmsrv 2953/tcp # OVALARMSRV +ovalarmsrv-cmd 2954/udp # OVALARMSRV-CMD +ovalarmsrv-cmd 2954/tcp # OVALARMSRV-CMD +# Eric Pulsipher +csnotify 2955/udp # CSNOTIFY +csnotify 2955/tcp # CSNOTIFY +# Israel Beniaminy +ovrimosdbman 2956/udp # OVRIMOSDBMAN +ovrimosdbman 2956/tcp # OVRIMOSDBMAN +# Dimitrios Souflis +jmact5 2957/udp # JAMCT5 +jmact5 2957/tcp # JAMCT5 +jmact6 2958/udp # JAMCT6 +jmact6 2958/tcp # JAMCT6 +rmopagt 2959/udp # RMOPAGT +rmopagt 2959/tcp # RMOPAGT +# Shuji Okubo +dfoxserver 2960/udp # DFOXSERVER +dfoxserver 2960/tcp # DFOXSERVER +# David Holden +boldsoft-lm 2961/udp # BOLDSOFT-LM +boldsoft-lm 2961/tcp # BOLDSOFT-LM +# Fredrik Haglund +iph-policy-cli 2962/udp # IPH-POLICY-CLI +iph-policy-cli 2962/tcp # IPH-POLICY-CLI +iph-policy-adm 2963/udp # IPH-POLICY-ADM +iph-policy-adm 2963/tcp # IPH-POLICY-ADM +# Shai Herzog +bullant-srap 2964/udp # BULLANT SRAP +bullant-srap 2964/tcp # BULLANT SRAP +bullant-rap 2965/udp # BULLANT RAP +bullant-rap 2965/tcp # BULLANT RAP +# Michael Cahill +idp-infotrieve 2966/udp # IDP-INFOTRIEVE +idp-infotrieve 2966/tcp # IDP-INFOTRIEVE +# Kevin Bruckert +ssc-agent 2967/udp # SSC-AGENT +ssc-agent 2967/tcp # SSC-AGENT +# George Dzieciol +enpp 2968/udp # ENPP +enpp 2968/tcp # ENPP +# Kazuhito Gassho +essp 2969/udp # ESSP +essp 2969/tcp # ESSP +# Hitoshi Ishida +index-net 2970/udp # INDEX-NET +index-net 2970/tcp # INDEX-NET +# Chris J. Wren +netclip 2971/udp # NetClip clipboard daemon +netclip 2971/tcp # NetClip clipboard daemon +# Rudi Chiarito +pmsm-webrctl 2972/udp # PMSM Webrctl +pmsm-webrctl 2972/tcp # PMSM Webrctl +# Markus Michels +svnetworks 2973/udp # SV Networks +svnetworks 2973/tcp # SV Networks +# Sylvia Siu +signal 2974/udp # Signal +signal 2974/tcp # Signal +# Wyatt Williams +fjmpcm 2975/udp # Fujitsu Configuration Management Service +fjmpcm 2975/tcp # Fujitsu Configuration Management Service +# Hiroki Kawano +cns-srv-port 2976/udp # CNS Server Port +cns-srv-port 2976/tcp # CNS Server Port +# Ram Golla +ttc-etap-ns 2977/udp # TTCs Enterprise Test Access Protocol - NS +ttc-etap-ns 2977/tcp # TTCs Enterprise Test Access Protocol - NS +ttc-etap-ds 2978/udp # TTCs Enterprise Test Access Protocol - DS +ttc-etap-ds 2978/tcp # TTCs Enterprise Test Access Protocol - DS +# Daniel Becker +h263-video 2979/udp # H.263 Video Streaming +h263-video 2979/tcp # H.263 Video Streaming +# Jauvane C. de Oliveira +wimd 2980/udp # Instant Messaging Service +wimd 2980/tcp # Instant Messaging Service +# Kevin Birch +mylxamport 2981/udp # MYLXAMPORT +mylxamport 2981/tcp # MYLXAMPORT +# Wei Gao +iwb-whiteboard 2982/udp # IWB-WHITEBOARD +iwb-whiteboard 2982/tcp # IWB-WHITEBOARD +# David W. Radcliffe +netplan 2983/udp # NETPLAN +netplan 2983/tcp # NETPLAN +# Thomas Driemeyer +hpidsadmin 2984/udp # HPIDSADMIN +hpidsadmin 2984/tcp # HPIDSADMIN +hpidsagent 2985/udp # HPIDSAGENT +hpidsagent 2985/tcp # HPIDSAGENT +# John Trudeau +stonefalls 2986/udp # STONEFALLS +stonefalls 2986/tcp # STONEFALLS +# Scott Grau +identify 2987/udp # identify +identify 2987/tcp # identify +hippad 2988/udp # HIPPA Reporting Protocol +hippad 2988/tcp # HIPPA Reporting Protocol +# William Randolph Royere III +# +zarkov 2989/udp # ZARKOV Intelligent Agent Communication +zarkov 2989/tcp # ZARKOV Intelligent Agent Communication +# Robin Felix +boscap 2990/udp # BOSCAP +boscap 2990/tcp # BOSCAP +# Dirk Hillbrecht +wkstn-mon 2991/udp # WKSTN-MON +wkstn-mon 2991/tcp # WKSTN-MON +# William David +itb301 2992/udp # ITB301 +itb301 2992/tcp # ITB301 +# Bodo Rueskamp +veritas-vis1 2993/udp # VERITAS VIS1 +veritas-vis1 2993/tcp # VERITAS VIS1 +veritas-vis2 2994/udp # VERITAS VIS2 +veritas-vis2 2994/tcp # VERITAS VIS2 +# Dinkar Chivaluri +idrs 2995/udp # IDRS +idrs 2995/tcp # IDRS +# Jeff Eaton +vsixml 2996/udp # vsixml +vsixml 2996/tcp # vsixml +# Rob Juergens +rebol 2997/udp # REBOL +rebol 2997/tcp # REBOL +# Holger Kruse +realsecure 2998/udp # Real Secure +realsecure 2998/tcp # Real Secure +# Tim Farley +remoteware-un 2999/udp # RemoteWare Unassigned +remoteware-un 2999/tcp # RemoteWare Unassigned +# Tim Farley +hbci 3000/udp # HBCI +hbci 3000/tcp # HBCI +# Kurt Haubner +# The following entry records an unassigned but widespread use +remoteware-cl 3000/udp # RemoteWare Client +remoteware-cl 3000/tcp # RemoteWare Client +# Tim Farley +redwood-broker 3001/udp # Redwood Broker +redwood-broker 3001/tcp # Redwood Broker +# Joseph Morrison +exlm-agent 3002/udp # EXLM Agent +exlm-agent 3002/tcp # EXLM Agent +# Randy Martin +# The following entry records an unassigned but widespread use +remoteware-srv 3002/udp # RemoteWare Server +remoteware-srv 3002/tcp # RemoteWare Server +# Tim Farley +cgms 3003/udp # CGMS +cgms 3003/tcp # CGMS +# Jim Mazzonna +csoftragent 3004/udp # Csoft Agent +csoftragent 3004/tcp # Csoft Agent +# Nedelcho Stanev +geniuslm 3005/udp # Genius License Manager +geniuslm 3005/tcp # Genius License Manager +# Jakob Spies +ii-admin 3006/udp # Instant Internet Admin +ii-admin 3006/tcp # Instant Internet Admin +# Lewis Donzis +lotusmtap 3007/udp # Lotus Mail Tracking Agent Protocol +lotusmtap 3007/tcp # Lotus Mail Tracking Agent Protocol +# Ken Lin +midnight-tech 3008/udp # Midnight Technologies +midnight-tech 3008/tcp # Midnight Technologies +# Kyle Unice +pxc-ntfy 3009/udp # PXC-NTFY +pxc-ntfy 3009/tcp # PXC-NTFY +# Takeshi Nishizawa +ping-pong 3010/udp # Telerate Workstation +gw 3010/tcp # Telerate Workstation +# Timo Sivonen +trusted-web 3011/udp # Trusted Web +trusted-web 3011/tcp # Trusted Web +twsdss 3012/udp # Trusted Web Client +twsdss 3012/tcp # Trusted Web Client +# Alex Duncan +gilatskysurfer 3013/udp # Gilat Sky Surfer +gilatskysurfer 3013/tcp # Gilat Sky Surfer +# Yossi Gal +broker_service 3014/udp # Broker Service +broker_service 3014/tcp # Broker Service +# Dale Bethers +nati-dstp 3015/udp # NATI DSTP +nati-dstp 3015/tcp # NATI DSTP +# Paul Austin +notify_srvr 3016/udp # Notify Server +notify_srvr 3016/tcp # Notify Server +# Hugo Parra +event_listener 3017/udp # Event Listener +event_listener 3017/tcp # Event Listener +# Ted Tronson +srvc_registry 3018/udp # Service Registry +srvc_registry 3018/tcp # Service Registry +# Mark Killgore +resource_mgr 3019/udp # Resource Manager +resource_mgr 3019/tcp # Resource Manager +# Gary Glover +cifs 3020/udp # CIFS +cifs 3020/tcp # CIFS +# Paul Leach +agriserver 3021/udp # AGRI Server +agriserver 3021/tcp # AGRI Server +# Frank Neulichedl +csregagent 3022/udp # CSREGAGENT +csregagent 3022/tcp # CSREGAGENT +# Nedelcho Stanev +magicnotes 3023/udp # magicnotes +magicnotes 3023/tcp # magicnotes +# Karl Edwall +nds_sso 3024/udp # NDS_SSO +nds_sso 3024/tcp # NDS_SSO +# Mel Oyler +arepa-raft 3025/udp # Arepa Raft +arepa-raft 3025/tcp # Arepa Raft +# Mark Ellison +agri-gateway 3026/udp # AGRI Gateway +agri-gateway 3026/tcp # AGRI Gateway +# Agri Datalog +LiebDevMgmt_C 3027/udp # LiebDevMgmt_C +LiebDevMgmt_C 3027/tcp # LiebDevMgmt_C +LiebDevMgmt_DM 3028/udp # LiebDevMgmt_DM +LiebDevMgmt_DM 3028/tcp # LiebDevMgmt_DM +LiebDevMgmt_A 3029/udp # LiebDevMgmt_A +LiebDevMgmt_A 3029/tcp # LiebDevMgmt_A +# Mike Velten +arepa-cas 3030/udp # Arepa Cas +arepa-cas 3030/tcp # Arepa Cas +# Seth Silverman +eppc 3031/udp # Remote AppleEvents/PPC Toolbox +eppc 3031/tcp # Remote AppleEvents/PPC Toolbox +# Steve Zellers +redwood-chat 3032/udp # Redwood Chat +redwood-chat 3032/tcp # Redwood Chat +# Songwon Chi +pdb 3033/udp # PDB +pdb 3033/tcp # PDB +# Don Bowman +osmosis-aeea 3034/udp # Osmosis / Helix (R) AEEA Port +osmosis-aeea 3034/tcp # Osmosis / Helix (R) AEEA Port +# Larry Atkin +fjsv-gssagt 3035/udp # FJSV gssagt +fjsv-gssagt 3035/tcp # FJSV gssagt +# Tomoji Koike +hagel-dump 3036/udp # Hagel DUMP +hagel-dump 3036/tcp # Hagel DUMP +# Haim Gelfenbeyn +hp-san-mgmt 3037/udp # HP SAN Mgmt +hp-san-mgmt 3037/tcp # HP SAN Mgmt +# Steve Britt +santak-ups 3038/udp # Santak UPS +santak-ups 3038/tcp # Santak UPS +# Tom Liu +cogitate 3039/udp # Cogitate, Inc. +cogitate 3039/tcp # Cogitate, Inc. +# Jim Harlan +tomato-springs 3040/udp # Tomato Springs +tomato-springs 3040/tcp # Tomato Springs +# Jack Waller III +di-traceware 3041/udp # di-traceware +di-traceware 3041/tcp # di-traceware +# Carlos Hung +journee 3042/udp # journee +journee 3042/tcp # journee +# Kevin Calman +brp 3043/udp # BRP +brp 3043/tcp # BRP +# Greg Gee +epp 3044/udp # EndPoint Protocol +epp 3044/tcp # EndPoint Protocol +# Stephen Cipolli +responsenet 3045/udp # ResponseNet +responsenet 3045/tcp # ResponseNet +# Chul Yoon +di-ase 3046/udp # di-ase +di-ase 3046/tcp # di-ase +# Carlos Hung +hlserver 3047/udp # Fast Security HL Server +hlserver 3047/tcp # Fast Security HL Server +# Michael Zunke +pctrader 3048/udp # Sierra Net PC Trader +pctrader 3048/tcp # Sierra Net PC Trader +# Chris Hahn +nsws 3049/udp # NSWS +nsws 3049/tcp # NSWS +# Ray Gwinn +gds_db 3050/udp # gds_db +gds_db 3050/tcp # gds_db +# Madhukar N. Thakur +galaxy-server 3051/udp # Galaxy Server +galaxy-server 3051/tcp # Galaxy Server +# Michael Andre +apc-3052 3052/udp # APC 3052 +apc-3052 3052/tcp # APC 3052 +# American Power Conversion +dsom-server 3053/udp # dsom-server +dsom-server 3053/tcp # dsom-server +# Daniel Sisk +amt-cnf-prot 3054/udp # AMT CNF PROT +amt-cnf-prot 3054/tcp # AMT CNF PROT +# Marco Marcucci +policyserver 3055/udp # Policy Server +policyserver 3055/tcp # Policy Server +# Mark Garti +cdl-server 3056/udp # CDL Server +cdl-server 3056/tcp # CDL Server +# Paul Roberts +goahead-fldup 3057/udp # GoAhead FldUp +goahead-fldup 3057/tcp # GoAhead FldUp +# Alan Pickrell +videobeans 3058/udp # videobeans +videobeans 3058/tcp # videobeans +# Hiroyuki Takahashi +qsoft 3059/udp # qsoft +qsoft 3059/tcp # qsoft +# James Kunz +interserver 3060/udp # interserver +interserver 3060/tcp # interserver +# Madhukar N. Thakur +cautcpd 3061/udp # cautcpd +cautcpd 3061/tcp # cautcpd +ncacn-ip-tcp 3062/udp # ncacn-ip-tcp +ncacn-ip-tcp 3062/tcp # ncacn-ip-tcp +ncadg-ip-udp 3063/udp # ncadg-ip-udp +ncadg-ip-udp 3063/tcp # ncadg-ip-udp +# Gabi Kalmar +rprt 3064/udp # Remote Port Redirector +rprt 3064/tcp # Remote Port Redirector +# Robin Johnston +slinterbase 3065/udp # slinterbase +slinterbase 3065/tcp # slinterbase +# Bie Tie +netattachsdmp 3066/udp # NETATTACHSDMP +netattachsdmp 3066/tcp # NETATTACHSDMP +# Mike Young +fjhpjp 3067/udp # FJHPJP +fjhpjp 3067/tcp # FJHPJP +# Ryozo Furutani +ls3bcast 3068/udp # ls3 Broadcast +ls3bcast 3068/tcp # ls3 Broadcast +ls3 3069/udp # ls3 +ls3 3069/tcp # ls3 +# Andrei Tsyganenko +mgxswitch 3070/udp # MGXSWITCH +mgxswitch 3070/tcp # MGXSWITCH +# George Walter +csd-mgmt-port 3071/udp # ContinuStor Manager Port +csd-mgmt-port 3071/tcp # ContinuStor Manager Port +csd-monitor 3072/udp # ContinuStor Monitor Port +csd-monitor 3072/tcp # ContinuStor Monitor Port +# Ray Jantz +vcrp 3073/udp # Very simple chatroom prot +vcrp 3073/tcp # Very simple chatroom prot +# Andreas Wurf +xbox 3074/udp # Xbox game port +xbox 3074/tcp # Xbox game port +# Damon Danieli +orbix-locator 3075/udp # Orbix 2000 Locator +orbix-locator 3075/tcp # Orbix 2000 Locator +orbix-config 3076/udp # Orbix 2000 Config +orbix-config 3076/tcp # Orbix 2000 Config +orbix-loc-ssl 3077/udp # Orbix 2000 Locator SSL +orbix-loc-ssl 3077/tcp # Orbix 2000 Locator SSL +orbix-cfg-ssl 3078/udp # Orbix 2000 Locator SSL +orbix-cfg-ssl 3078/tcp # Orbix 2000 Locator SSL +# Eric Newcomer +lv-frontpanel 3079/udp # LV Front Panel +lv-frontpanel 3079/tcp # LV Front Panel +# Darshan Shah +stm_pproc 3080/udp # stm_pproc +stm_pproc 3080/tcp # stm_pproc +# Paul McGinnis +tl1-lv 3081/udp # TL1-LV +tl1-lv 3081/tcp # TL1-LV +tl1-raw 3082/udp # TL1-RAW +tl1-raw 3082/tcp # TL1-RAW +tl1-telnet 3083/udp # TL1-TELNET +tl1-telnet 3083/tcp # TL1-TELNET +# SONET Internetworking Forum (SIF) +# - SONET Contact +itm-mccs 3084/udp # ITM-MCCS +itm-mccs 3084/tcp # ITM-MCCS +# Alain Callebaut +pcihreq 3085/udp # PCIHReq +pcihreq 3085/tcp # PCIHReq +# Paul Sanders +jdl-dbkitchen 3086/udp # JDL-DBKitchen +jdl-dbkitchen 3086/tcp # JDL-DBKitchen +# Hideo Wakabayashi +asoki-sma 3087/udp # Asoki SMA +asoki-sma 3087/tcp # Asoki SMA +# Andrew Mossberg +xdtp 3088/udp # eXtensible Data Transfer Protocol +xdtp 3088/tcp # eXtensible Data Transfer Protocol +# Michael Shearson +ptk-alink 3089/udp # ParaTek Agent Linking +ptk-alink 3089/tcp # ParaTek Agent Linking +# Robert Hodgson +rtss 3090/udp # Rappore Session Services +rtss 3090/tcp # Rappore Session Services +# Peter Boucher +1ci-smcs 3091/udp # 1Ci Server Management +1ci-smcs 3091/tcp # 1Ci Server Management +# Ralf Bensmann +njfss 3092/udp # Netware sync services +njfss 3092/tcp # Netware sync services +# Gordon Ross +rapidmq-center 3093/udp # Jiiva RapidMQ Center +rapidmq-center 3093/tcp # Jiiva RapidMQ Center +rapidmq-reg 3094/udp # Jiiva RapidMQ Registry +rapidmq-reg 3094/tcp # Jiiva RapidMQ Registry +# Mark Ericksen +panasas 3095/udp # Panasas rendevous port +panasas 3095/tcp # Panasas rendevous port +# Peter Berger +ndl-aps 3096/udp # Active Print Server Port +ndl-aps 3096/tcp # Active Print Server Port +# Martin Norman +# 3097/tcp Reserved +# 3097/udp Reserved +itu-bicc-stc 3097/sctp # ITU-T Q.1902.1/Q.2150.3 +# Greg Sidebottom +umm-port 3098/udp # Universal Message Manager +umm-port 3098/tcp # Universal Message Manager +# Phil Braham +chmd 3099/udp # CHIPSY Machine Daemon +chmd 3099/tcp # CHIPSY Machine Daemon +# Trond Borsting +opcon-xps 3100/udp # OpCon/xps +opcon-xps 3100/tcp # OpCon/xps +# David Bourland +hp-pxpib 3101/udp # HP PolicyXpert PIB Server +hp-pxpib 3101/tcp # HP PolicyXpert PIB Server +# Brian O'Keefe +slslavemon 3102/udp # SoftlinK Slave Mon Port +slslavemon 3102/tcp # SoftlinK Slave Mon Port +# Moshe Livne +autocuesmi 3103/udp # Autocue SMI Protocol +autocuesmi 3103/tcp # Autocue SMI Protocol +autocuetime 3104/udp # Autocue Time Service +autocuelog 3104/tcp # Autocue Logger Protocol +# Geoff Back +cardbox 3105/udp # Cardbox +cardbox 3105/tcp # Cardbox +cardbox-http 3106/udp # Cardbox HTTP +cardbox-http 3106/tcp # Cardbox HTTP +# Martin Kochanski +business 3107/udp # Business protocol +business 3107/tcp # Business protocol +geolocate 3108/udp # Geolocate protocol +geolocate 3108/tcp # Geolocate protocol +personnel 3109/udp # Personnel protocol +personnel 3109/tcp # Personnel protocol +# William Randolph Royere III +# +sim-control 3110/udp # simulator control port +sim-control 3110/tcp # simulator control port +# Ian Bell +wsynch 3111/udp # Web Synchronous Services +wsynch 3111/tcp # Web Synchronous Services +# Valery Fremaux +ksysguard 3112/udp # KDE System Guard +ksysguard 3112/tcp # KDE System Guard +# Chris Schlaeger +cs-auth-svr 3113/udp # CS-Authenticate Svr Port +cs-auth-svr 3113/tcp # CS-Authenticate Svr Port +# Cliff Diamond +# Andy Georgiou +ccmad 3114/udp # CCM AutoDiscover +ccmad 3114/tcp # CCM AutoDiscover +# Ram Sudama +mctet-master 3115/udp # MCTET Master +mctet-master 3115/tcp # MCTET Master +mctet-gateway 3116/udp # MCTET Gateway +mctet-gateway 3116/tcp # MCTET Gateway +mctet-jserv 3117/udp # MCTET Jserv +mctet-jserv 3117/tcp # MCTET Jserv +# Manuel Veloso +pkagent 3118/udp # PKAgent +pkagent 3118/tcp # PKAgent +# Michael Douglass +d2000kernel 3119/udp # D2000 Kernel Port +d2000kernel 3119/tcp # D2000 Kernel Port +d2000webserver 3120/udp # D2000 Webserver Port +d2000webserver 3120/tcp # D2000 Webserver Port +# Tomas Rajcan +epp-temp 3121/udp # Extensible Provisioning Protocol +epp-temp 3121/tcp # Extensible Provisioning Protocol +# Scott Hollenbeck +vtr-emulator 3122/udp # MTI VTR Emulator port +vtr-emulator 3122/tcp # MTI VTR Emulator port +# John Mertus +edix 3123/udp # EDI Translation Protocol +edix 3123/tcp # EDI Translation Protocol +# William Randolph Royere III +beacon-port 3124/udp # Beacon Port +beacon-port 3124/tcp # Beacon Port +# James Paul Duncan +a13-an 3125/udp # A13-AN Interface +a13-an 3125/tcp # A13-AN Interface +# Douglas Knisely +ms-dotnetster 3126/udp # Microsoft .NETster Port +ms-dotnetster 3126/tcp # Microsoft .NETster Port +# Dave Mendlen +ctx-bridge 3127/udp # CTX Bridge Port +ctx-bridge 3127/tcp # CTX Bridge Port +# Alexander Dubrovsky +ndl-aas 3128/udp # Active API Server Port +ndl-aas 3128/tcp # Active API Server Port +# Martin Norman +netport-id 3129/udp # NetPort Discovery Port +netport-id 3129/tcp # NetPort Discovery Port +# P.T.K. Farrar +icpv2 3130/udp # ICPv2 +icpv2 3130/tcp # ICPv2 +# Duane Wessels +netbookmark 3131/udp # Net Book Mark +netbookmark 3131/tcp # Net Book Mark +# Yiftach Ravid +ms-rule-engine 3132/udp # Microsoft Business Rule Engine Update Service +ms-rule-engine 3132/tcp # Microsoft Business Rule Engine Update Service +# Anush Kumar +prism-deploy 3133/udp # Prism Deploy User Port +prism-deploy 3133/tcp # Prism Deploy User Port +# Joan Linck +ecp 3134/udp # Extensible Code Protocol +ecp 3134/tcp # Extensible Code Protocol +# Jim Trek +# Mark Bocko +peerbook-port 3135/udp # PeerBook Port +peerbook-port 3135/tcp # PeerBook Port +# John Flowers +grubd 3136/udp # Grub Server Port +grubd 3136/tcp # Grub Server Port +# Kord Campbell +rtnt-1 3137/udp # rtnt-1 data packets +rtnt-1 3137/tcp # rtnt-1 data packets +rtnt-2 3138/udp # rtnt-2 data packets +rtnt-2 3138/tcp # rtnt-2 data packets +# Ron Muellerschoen +incognitorv 3139/udp # Incognito Rendez-Vous +incognitorv 3139/tcp # Incognito Rendez-Vous +# Stephane Bourque +ariliamulti 3140/udp # Arilia Multiplexor +ariliamulti 3140/tcp # Arilia Multiplexor +# Stephane Bourque +vmodem 3141/udp # VMODEM +vmodem 3141/tcp # VMODEM +# Ray Gwinn +rdc-wh-eos 3142/udp # RDC WH EOS +rdc-wh-eos 3142/tcp # RDC WH EOS +# Udi Nir +seaview 3143/udp # Sea View +seaview 3143/tcp # Sea View +# Jim Flaherty +tarantella 3144/udp # Tarantella +tarantella 3144/tcp # Tarantella +# Roger Binns +csi-lfap 3145/udp # CSI-LFAP +csi-lfap 3145/tcp # CSI-LFAP +# Paul Amsden +bears-02 3146/udp # bears-02 +bears-02 3146/tcp # bears-02 +# Bruce McKinnon +rfio 3147/udp # RFIO +rfio 3147/tcp # RFIO +# Frederic Hemmer +nm-game-admin 3148/udp # NetMike Game Administrator +nm-game-admin 3148/tcp # NetMike Game Administrator +nm-game-server 3149/udp # NetMike Game Server +nm-game-server 3149/tcp # NetMike Game Server +nm-asses-admin 3150/udp # NetMike Assessor Administrator +nm-asses-admin 3150/tcp # NetMike Assessor Administrator +nm-assessor 3151/udp # NetMike Assessor +nm-assessor 3151/tcp # NetMike Assessor +# Andrew Sharpe +feitianrockey 3152/udp # FeiTian Port +feitianrockey 3152/tcp # FeiTian Port +# Huang Yu +s8-client-port 3153/udp # S8Cargo Client Port +s8-client-port 3153/tcp # S8Cargo Client Port +# Jon S. Kyle +ccmrmi 3154/udp # ON RMI Registry +ccmrmi 3154/tcp # ON RMI Registry +# Ram Sudama +jpegmpeg 3155/udp # JpegMpeg Port +jpegmpeg 3155/tcp # JpegMpeg Port +# Richard Bassous +indura 3156/udp # Indura Collector +indura 3156/tcp # Indura Collector +# Bruce Kosbab +e3consultants 3157/udp # CCC Listener Port +e3consultants 3157/tcp # CCC Listener Port +# Brian Carnell +stvp 3158/udp # SmashTV Protocol +stvp 3158/tcp # SmashTV Protocol +# Christian Wolff +navegaweb-port 3159/udp # NavegaWeb Tarification +navegaweb-port 3159/tcp # NavegaWeb Tarification +# Miguel Angel Fernandez +tip-app-server 3160/udp # TIP Application Server +tip-app-server 3160/tcp # TIP Application Server +# Olivier Mascia +doc1lm 3161/udp # DOC1 License Manager +doc1lm 3161/tcp # DOC1 License Manager +# Greg Goodson +sflm 3162/udp # SFLM +sflm 3162/tcp # SFLM +# Keith Turner +res-sap 3163/udp # RES-SAP +res-sap 3163/tcp # RES-SAP +# Bob Janssen +imprs 3164/udp # IMPRS +imprs 3164/tcp # IMPRS +# Lars Bohn +newgenpay 3165/udp # Newgenpay Engine Service +newgenpay 3165/tcp # Newgenpay Engine Service +# Ilan Zisser +qrepos 3166/udp # Quest Repository +qrepos 3166/tcp # Quest Repository +# Fred Surr +poweroncontact 3167/udp # poweroncontact +poweroncontact 3167/tcp # poweroncontact +poweronnud 3168/udp # poweronnud +poweronnud 3168/tcp # poweronnud +# Paul Cone +serverview-as 3169/udp # SERVERVIEW-AS +serverview-as 3169/tcp # SERVERVIEW-AS +serverview-asn 3170/udp # SERVERVIEW-ASN +serverview-asn 3170/tcp # SERVERVIEW-ASN +serverview-gf 3171/udp # SERVERVIEW-GF +serverview-gf 3171/tcp # SERVERVIEW-GF +serverview-rm 3172/udp # SERVERVIEW-RM +serverview-rm 3172/tcp # SERVERVIEW-RM +serverview-icc 3173/udp # SERVERVIEW-ICC +serverview-icc 3173/tcp # SERVERVIEW-ICC +# Guenther Kroenert +# +armi-server 3174/udp # ARMI Server +armi-server 3174/tcp # ARMI Server +# Bobby Martin +t1-e1-over-ip 3175/udp # T1_E1_Over_IP +t1-e1-over-ip 3175/tcp # T1_E1_Over_IP +# Mark Doyle +ars-master 3176/udp # ARS Master +ars-master 3176/tcp # ARS Master +# Ade Adebayo +phonex-port 3177/udp # Phonex Protocol +phonex-port 3177/tcp # Phonex Protocol +# Doug Grover +radclientport 3178/udp # Radiance UltraEdge Port +radclientport 3178/tcp # Radiance UltraEdge Port +# Sri Subramaniam +h2gf-w-2m 3179/udp # H2GF W.2m Handover prot. +h2gf-w-2m 3179/tcp # H2GF W.2m Handover prot. +# Arne Norefors +mc-brk-srv 3180/udp # Millicent Broker Server +mc-brk-srv 3180/tcp # Millicent Broker Server +# Steve Glassman +bmcpatrolagent 3181/udp # BMC Patrol Agent +bmcpatrolagent 3181/tcp # BMC Patrol Agent +bmcpatrolrnvu 3182/udp # BMC Patrol Rendezvous +bmcpatrolrnvu 3182/tcp # BMC Patrol Rendezvous +# Eric Anderson +cops-tls 3183/udp # COPS/TLS +cops-tls 3183/tcp # COPS/TLS +# Mark Stevens +apogeex-port 3184/udp # ApogeeX Port +apogeex-port 3184/tcp # ApogeeX Port +# Tom Nys +smpppd 3185/udp # SuSE Meta PPPD +smpppd 3185/tcp # SuSE Meta PPPD +# Arvin Schnell +iiw-port 3186/udp # IIW Monitor User Port +iiw-port 3186/tcp # IIW Monitor User Port +# Corey Burnett +odi-port 3187/udp # Open Design Listen Port +odi-port 3187/tcp # Open Design Listen Port +# Phivos Aristides +brcm-comm-port 3188/udp # Broadcom Port +brcm-comm-port 3188/tcp # Broadcom Port +# Thomas L. Johnson +pcle-infex 3189/udp # Pinnacle Sys InfEx Port +pcle-infex 3189/tcp # Pinnacle Sys InfEx Port +# Anthon van der Neut +csvr-proxy 3190/udp # ConServR Proxy +csvr-proxy 3190/tcp # ConServR Proxy +csvr-sslproxy 3191/udp # ConServR SSL Proxy +csvr-sslproxy 3191/tcp # ConServR SSL Proxy +# Mikhail Kruk +firemonrcc 3192/udp # FireMon Revision Control +firemonrcc 3192/tcp # FireMon Revision Control +# Michael Bishop +cordataport 3193/udp # Cordaxis Data Port +cordataport 3193/tcp # Cordaxis Data Port +# Jay Fesco +magbind 3194/udp # Rockstorm MAG protocol +magbind 3194/tcp # Rockstorm MAG protocol +# Jens Nilsson +ncu-1 3195/udp # Network Control Unit +ncu-1 3195/tcp # Network Control Unit +ncu-2 3196/udp # Network Control Unit +ncu-2 3196/tcp # Network Control Unit +# Charlie Hundre +embrace-dp-s 3197/udp # Embrace Device Protocol Server +embrace-dp-s 3197/tcp # Embrace Device Protocol Server +embrace-dp-c 3198/udp # Embrace Device Protocol Client +embrace-dp-c 3198/tcp # Embrace Device Protocol Client +# Elliot Schwartz +dmod-workspace 3199/udp # DMOD WorkSpace +dmod-workspace 3199/tcp # DMOD WorkSpace +# Nick Plante +tick-port 3200/udp # Press-sense Tick Port +tick-port 3200/tcp # Press-sense Tick Port +# Boris Svetlitsky +cpq-tasksmart 3201/udp # CPQ-TaskSmart +cpq-tasksmart 3201/tcp # CPQ-TaskSmart +# Jackie Lau +intraintra 3202/udp # IntraIntra +intraintra 3202/tcp # IntraIntra +# Matthew Asham +netwatcher-mon 3203/udp # Network Watcher Monitor +netwatcher-mon 3203/tcp # Network Watcher Monitor +netwatcher-db 3204/udp # Network Watcher DB Access +netwatcher-db 3204/tcp # Network Watcher DB Access +# Hirokazu Fujisawa +isns 3205/udp # iSNS Server Port +isns 3205/tcp # iSNS Server Port +# Josh Tseng +ironmail 3206/udp # IronMail POP Proxy +ironmail 3206/tcp # IronMail POP Proxy +# Mike Hudack +vx-auth-port 3207/udp # Veritas Authentication Port +vx-auth-port 3207/tcp # Veritas Authentication Port +# Senthil Ponnuswamy +pfu-prcallback 3208/udp # PFU PR Callback +pfu-prcallback 3208/tcp # PFU PR Callback +# Tetsuharu Hanada +netwkpathengine 3209/udp # HP OpenView Network Path Engine Server +netwkpathengine 3209/tcp # HP OpenView Network Path Engine Server +# Anthony Walker +flamenco-proxy 3210/udp # Flamenco Networks Proxy +flamenco-proxy 3210/tcp # Flamenco Networks Proxy +# Corey Corrick +avsecuremgmt 3211/udp # Avocent Secure Management +avsecuremgmt 3211/tcp # Avocent Secure Management +# Brian S. Stewart +surveyinst 3212/udp # Survey Instrument +surveyinst 3212/tcp # Survey Instrument +# Al Amet +neon24x7 3213/udp # NEON 24X7 Mission Control +neon24x7 3213/tcp # NEON 24X7 Mission Control +# Tony Lubrano +jmq-daemon-1 3214/udp # JMQ Daemon Port 1 +jmq-daemon-1 3214/tcp # JMQ Daemon Port 1 +jmq-daemon-2 3215/udp # JMQ Daemon Port 2 +jmq-daemon-2 3215/tcp # JMQ Daemon Port 2 +# Martin West +ferrari-foam 3216/udp # Ferrari electronic FOAM +ferrari-foam 3216/tcp # Ferrari electronic FOAM +# Johann Deutinger +unite 3217/udp # Unified IP & Telecomm Env +unite 3217/tcp # Unified IP & Telecomm Env +# Christer Gunnarsson +# +smartpackets 3218/udp # EMC SmartPackets +smartpackets 3218/tcp # EMC SmartPackets +# Steve Spataro +wms-messenger 3219/udp # WMS Messenger +wms-messenger 3219/tcp # WMS Messenger +# Michael Monasterio +xnm-ssl 3220/udp # XML NM over SSL +xnm-ssl 3220/tcp # XML NM over SSL +xnm-clear-text 3221/udp # XML NM over TCP +xnm-clear-text 3221/tcp # XML NM over TCP +# Mark Trostler +glbp 3222/udp # Gateway Load Balancing Pr +glbp 3222/tcp # Gateway Load Balancing Pr +# Douglas McLaggan +digivote 3223/udp # DIGIVOTE (R) Vote-Server +digivote 3223/tcp # DIGIVOTE (R) Vote-Server +# Christian Treczoks +aes-discovery 3224/udp # AES Discovery Port +aes-discovery 3224/tcp # AES Discovery Port +# Ken Richard +fcip-port 3225/udp # FCIP +fcip-port 3225/tcp # FCIP +# RFC-ietf-ips-fcovertcpip-12.txt +isi-irp 3226/udp # ISI Industry Software IRP +isi-irp 3226/tcp # ISI Industry Software IRP +# Peter Sandstrom +dwnmshttp 3227/udp # DiamondWave NMS Server +dwnmshttp 3227/tcp # DiamondWave NMS Server +dwmsgserver 3228/udp # DiamondWave MSG Server +dwmsgserver 3228/tcp # DiamondWave MSG Server +# Varma Bhupatiraju +global-cd-port 3229/udp # Global CD Port +global-cd-port 3229/tcp # Global CD Port +# Vitaly Revsin +sftdst-port 3230/udp # Software Distributor Port +sftdst-port 3230/tcp # Software Distributor Port +# Andrea Lanza +dsnl 3231/udp # Delta Solutions Direct +dsnl 3231/tcp # Delta Solutions Direct +# Peter Ijkhout +mdtp 3232/udp # MDT port +mdtp 3232/tcp # MDT port +# IJsbrand Wijnands +whisker 3233/udp # WhiskerControl main port +whisker 3233/tcp # WhiskerControl main port +# Rudolf Cardinal February 2002 +alchemy 3234/udp # Alchemy Server +alchemy 3234/tcp # Alchemy Server +# Mikhail Belov February 2002 +mdap-port 3235/udp # MDAP Port +mdap-port 3235/tcp # MDAP port +# Johan Deleu February 2002 +apparenet-ts 3236/udp # appareNet Test Server +apparenet-ts 3236/tcp # appareNet Test Server +apparenet-tps 3237/udp # appareNet Test Packet Sequencer +apparenet-tps 3237/tcp # appareNet Test Packet Sequencer +apparenet-as 3238/udp # appareNet Analysis Server +apparenet-as 3238/tcp # appareNet Analysis Server +apparenet-ui 3239/udp # appareNet User Interface +apparenet-ui 3239/tcp # appareNet User Interface +# Fred Klassen February 2002 +triomotion 3240/udp # Trio Motion Control Port +triomotion 3240/tcp # Trio Motion Control Port +# Tony Matthews February 2002 +sysorb 3241/udp # SysOrb Monitoring Server +sysorb 3241/tcp # SysOrb Monitoring Server +# Jakob Oestergaard February 2002 +sdp-id-port 3242/udp # Session Description ID +sdp-id-port 3242/tcp # Session Description ID +# Greg Rose February 2002 +timelot 3243/udp # Timelot Port +timelot 3243/tcp # Timelot Port +# David Ferguson February 2002 +onesaf 3244/udp # OneSAF +onesaf 3244/tcp # OneSAF +# Gene McCulley February 2002 +vieo-fe 3245/udp # VIEO Fabric Executive +vieo-fe 3245/tcp # VIEO Fabric Executive +# James Cox February 2002 +dvt-system 3246/udp # DVT SYSTEM PORT +dvt-system 3246/tcp # DVT SYSTEM PORT +dvt-data 3247/udp # DVT DATA LINK +dvt-data 3247/tcp # DVT DATA LINK +# Phillip Heil February 2002 +procos-lm 3248/udp # PROCOS LM +procos-lm 3248/tcp # PROCOS LM +# Torsten Rendelmann +# February 2002 +ssp 3249/udp # State Sync Protocol +ssp 3249/tcp # State Sync Protocol +# Stephane Beaulieu February 2002 +hicp 3250/udp # HMS hicp port +hicp 3250/tcp # HMS hicp port +# Joel Palsson, HMS Industrial Networks AB +# February 2002 +sysscanner 3251/udp # Sys Scanner +sysscanner 3251/tcp # Sys Scanner +# Dick Georges February 2002 +dhe 3252/udp # DHE port +dhe 3252/tcp # DHE port +# Fabrizio Massimo Ferrara February 2002 +pda-data 3253/udp # PDA Data +pda-data 3253/tcp # PDA Data +pda-sys 3254/udp # PDA System +pda-sys 3254/tcp # PDA System +# Jian Fan February 2002 +semaphore 3255/udp # Semaphore Connection Port +semaphore 3255/tcp # Semaphore Connection Port +# Jay Eckles February 2002 +cpqrpm-agent 3256/udp # Compaq RPM Agent Port +cpqrpm-agent 3256/tcp # Compaq RPM Agent Port +cpqrpm-server 3257/udp # Compaq RPM Server Port +cpqrpm-server 3257/tcp # Compaq RPM Server Port +# Royal King February 2002 +ivecon-port 3258/udp # Ivecon Server Port +ivecon-port 3258/tcp # Ivecon Server Port +# Serguei Tevs February 2002 +epncdp2 3259/udp # Epson Network Common Devi +epncdp2 3259/tcp # Epson Network Common Devi +# SEIKO EPSON Corporation - Oishi Toshiaki +# February 2002 +iscsi-target 3260/udp # iSCSI port +iscsi-target 3260/tcp # iSCSI port +# Julian Satran +winshadow 3261/udp # winShadow +winshadow 3261/tcp # winShadow +# Colin Barry +necp 3262/udp # NECP +necp 3262/tcp # NECP +# Alberto Cerpa +ecolor-imager 3263/udp # E-Color Enterprise Imager +ecolor-imager 3263/tcp # E-Color Enterprise Imager +# Tamara Baker +ccmail 3264/udp # cc:mail/lotus +ccmail 3264/tcp # cc:mail/lotus +# +altav-tunnel 3265/udp # Altav Tunnel +altav-tunnel 3265/tcp # Altav Tunnel +# Gary M. Allen +ns-cfg-server 3266/udp # NS CFG Server +ns-cfg-server 3266/tcp # NS CFG Server +# Aivi Lie +ibm-dial-out 3267/udp # IBM Dial Out +ibm-dial-out 3267/tcp # IBM Dial Out +# Skip Booth +msft-gc 3268/udp # Microsoft Global Catalog +msft-gc 3268/tcp # Microsoft Global Catalog +msft-gc-ssl 3269/udp # Microsoft Global Catalog with LDAP/SSL +msft-gc-ssl 3269/tcp # Microsoft Global Catalog with LDAP/SSL +# Asaf Kashi +verismart 3270/udp # Verismart +verismart 3270/tcp # Verismart +# Jay Weber +csoft-prev 3271/udp # CSoft Prev Port +csoft-prev 3271/tcp # CSoft Prev Port +# Nedelcho Stanev +user-manager 3272/udp # Fujitsu User Manager +user-manager 3272/tcp # Fujitsu User Manager +# Yukihiko Sakurai +sxmp 3273/udp # Simple Extensible Multiplexed Protocol +sxmp 3273/tcp # Simple Extensible Multiplexed Protocol +# Stuart Newman +ordinox-server 3274/udp # Ordinox Server +ordinox-server 3274/tcp # Ordinox Server +# Guy Letourneau +samd 3275/udp # SAMD +samd 3275/tcp # SAMD +# Edgar Circenis +maxim-asics 3276/udp # Maxim ASICs +maxim-asics 3276/tcp # Maxim ASICs +# Dave Inman +awg-proxy 3277/udp # AWG Proxy +awg-proxy 3277/tcp # AWG Proxy +# Alex McDonald +lkcmserver 3278/udp # LKCM Server +lkcmserver 3278/tcp # LKCM Server +# Javier Jimenez +admind 3279/udp # admind +admind 3279/tcp # admind +# Jeff Haynes +vs-server 3280/udp # VS Server +vs-server 3280/tcp # VS Server +# Scott Godlew +sysopt 3281/udp # SYSOPT +sysopt 3281/tcp # SYSOPT +# Tony Hoffman +datusorb 3282/udp # Datusorb +datusorb 3282/tcp # Datusorb +# Thomas Martin +net-assistant 3283/udp # Net Assistant +net-assistant 3283/tcp # Net Assistant +# Michael Stein +4talk 3284/udp # 4Talk +4talk 3284/tcp # 4Talk +# Tony Bushnell +plato 3285/udp # Plato +plato 3285/tcp # Plato +# Jim Battin +e-net 3286/udp # E-Net +e-net 3286/tcp # E-Net +# Steven Grigsby +directvdata 3287/udp # DIRECTVDATA +directvdata 3287/tcp # DIRECTVDATA +# Michael Friedman +cops 3288/udp # COPS +cops 3288/tcp # COPS +# Shai Herzog +enpc 3289/udp # ENPC +enpc 3289/tcp # ENPC +# SEIKO EPSON +caps-lm 3290/udp # CAPS LOGISTICS TOOLKIT - LM +caps-lm 3290/tcp # CAPS LOGISTICS TOOLKIT - LM +# Joseph Krebs +sah-lm 3291/udp # S A Holditch & Associates - LM +sah-lm 3291/tcp # S A Holditch & Associates - LM +# Randy Hudgens +cart-o-rama 3292/udp # Cart O Rama +cart-o-rama 3292/tcp # Cart O Rama +# Phillip Dillinger +fg-fps 3293/udp # fg-fps +fg-fps 3293/tcp # fg-fps +fg-gip 3294/udp # fg-gip +fg-gip 3294/tcp # fg-gip +# Jean-Marc Frailong +dyniplookup 3295/udp # Dynamic IP Lookup +dyniplookup 3295/tcp # Dynamic IP Lookup +# Eugene Osovetsky +rib-slm 3296/udp # Rib License Manager +rib-slm 3296/tcp # Rib License Manager +# Kristean Heisler +cytel-lm 3297/udp # Cytel License Manager +cytel-lm 3297/tcp # Cytel License Manager +# Yogesh P. Gajjar +deskview 3298/udp # DeskView +deskview 3298/tcp # DeskView +# Manfred Randelzofer +# +pdrncs 3299/udp # pdrncs +pdrncs 3299/tcp # pdrncs +# Paul Wissenbach +########### 3300-3301 Unauthorized Use by SAP R/3 ###### +mcs-fastmail 3302/udp # MCS Fastmail +mcs-fastmail 3302/tcp # MCS Fastmail +# Patti Jo Newsom +opsession-clnt 3303/udp # OP Session Client +opsession-clnt 3303/tcp # OP Session Client +opsession-srvr 3304/udp # OP Session Server +opsession-srvr 3304/tcp # OP Session Server +# Amir Blich +odette-ftp 3305/udp # ODETTE-FTP +odette-ftp 3305/tcp # ODETTE-FTP +# David Nash +mysql 3306/udp # MySQL +mysql 3306/tcp # MySQL +# Monty +opsession-prxy 3307/udp # OP Session Proxy +opsession-prxy 3307/tcp # OP Session Proxy +# Amir Blich +tns-server 3308/udp # TNS Server +tns-server 3308/tcp # TNS Server +tns-adv 3309/udp # TNS ADV +tns-adv 3309/tcp # TNS ADV +# Jerome Albin +dyna-access 3310/udp # Dyna Access +dyna-access 3310/tcp # Dyna Access +# Dave Belliveau +# +mcns-tel-ret 3311/udp # MCNS Tel Ret +mcns-tel-ret 3311/tcp # MCNS Tel Ret +# Randall Atkinson +appman-server 3312/udp # Application Management Server +appman-server 3312/tcp # Application Management Server +uorb 3313/udp # Unify Object Broker +uorb 3313/tcp # Unify Object Broker +uohost 3314/udp # Unify Object Host +uohost 3314/tcp # Unify Object Host +# Duane Gibson +cdid 3315/udp # CDID +cdid 3315/tcp # CDID +# Andrew Borisov +aicc-cmi 3316/udp # AICC/CMI +aicc-cmi 3316/tcp # AICC/CMI +# William McDonald +vsaiport 3317/udp # VSAI PORT +vsaiport 3317/tcp # VSAI PORT +# Rieko Asai +ssrip 3318/udp # Swith to Swith Routing Information Protocol +ssrip 3318/tcp # Swith to Swith Routing Information Protocol +# Baba Hidekazu +sdt-lmd 3319/udp # SDT License Manager +sdt-lmd 3319/tcp # SDT License Manager +# Salvo Nassisi +officelink2000 3320/udp # Office Link 2000 +officelink2000 3320/tcp # Office Link 2000 +# Mike Balch +vnsstr 3321/udp # VNSSTR +vnsstr 3321/tcp # VNSSTR +# Takeshi Ohmura +# Bob Braden +sftu 3326/udp # SFTU +sftu 3326/tcp # SFTU +# Eduardo Rosenberg de Moura +bbars 3327/udp # BBARS +bbars 3327/tcp # BBARS +# Lou Harris +egptlm 3328/udp # Eaglepoint License Manager +egptlm 3328/tcp # Eaglepoint License Manager +# Dave Benton +hp-device-disc 3329/udp # HP Device Disc +hp-device-disc 3329/tcp # HP Device Disc +# Shivaun Albright +mcs-calypsoicf 3330/udp # MCS Calypso ICF +mcs-calypsoicf 3330/tcp # MCS Calypso ICF +mcs-messaging 3331/udp # MCS Messaging +mcs-messaging 3331/tcp # MCS Messaging +mcs-mailsvr 3332/udp # MCS Mail Server +mcs-mailsvr 3332/tcp # MCS Mail Server +# Patti Jo Newsom +dec-notes 3333/udp # DEC Notes +dec-notes 3333/tcp # DEC Notes +# Kim Moraros +directv-web 3334/udp # Direct TV Webcasting +directv-web 3334/tcp # Direct TV Webcasting +directv-soft 3335/udp # Direct TV Software Updates +directv-soft 3335/tcp # Direct TV Software Updates +directv-tick 3336/udp # Direct TV Tickers +directv-tick 3336/tcp # Direct TV Tickers +directv-catlg 3337/udp # Direct TV Data Catalog +directv-catlg 3337/tcp # Direct TV Data Catalog +# Michael Friedman +anet-b 3338/udp # OMF data b +anet-b 3338/tcp # OMF data b +anet-l 3339/udp # OMF data l +anet-l 3339/tcp # OMF data l +anet-m 3340/udp # OMF data m +anet-m 3340/tcp # OMF data m +anet-h 3341/udp # OMF data h +anet-h 3341/tcp # OMF data h +# Per Sahlqvist +webtie 3342/udp # WebTIE +webtie 3342/tcp # WebTIE +# Kevin Frender +ms-cluster-net 3343/udp # MS Cluster Net +ms-cluster-net 3343/tcp # MS Cluster Net +# Mike Massa +bnt-manager 3344/udp # BNT Manager +bnt-manager 3344/tcp # BNT Manager +# Brian J. Ives +influence 3345/udp # Influence +influence 3345/tcp # Influence +# Russ Ferriday +trnsprntproxy 3346/udp # Trnsprnt Proxy +trnsprntproxy 3346/tcp # Trnsprnt Proxy +# Grant Kirby +phoenix-rpc 3347/udp # Phoenix RPC +phoenix-rpc 3347/tcp # Phoenix RPC +# Ian Anderson +pangolin-laser 3348/udp # Pangolin Laser +pangolin-laser 3348/tcp # Pangolin Laser +# William Benner +chevinservices 3349/udp # Chevin Services +chevinservices 3349/tcp # Chevin Services +# Gus McNaughton +findviatv 3350/udp # FINDVIATV +findviatv 3350/tcp # FINDVIATV +# Oran Davis +btrieve 3351/udp # Btrieve port +btrieve 3351/tcp # Btrieve port +ssql 3352/udp # Scalable SQL +ssql 3352/tcp # Scalable SQL +# Chuck Talk +fatpipe 3353/udp # FATPIPE +fatpipe 3353/tcp # FATPIPE +# Sanchaita Datta +suitjd 3354/udp # SUITJD +suitjd 3354/tcp # SUITJD +# Todd Moyer +ordinox-dbase 3355/udp # Ordinox Dbase +ordinox-dbase 3355/tcp # Ordinox Dbase +# Guy Litourneau +upnotifyps 3356/udp # UPNOTIFYPS +upnotifyps 3356/tcp # UPNOTIFYPS +# Mark Fox +adtech-test 3357/udp # Adtech Test IP +adtech-test 3357/tcp # Adtech Test IP +# Robin Uyeshiro +mpsysrmsvr 3358/udp # Mp Sys Rmsvr +mpsysrmsvr 3358/tcp # Mp Sys Rmsvr +# Hiroyuki Kawabuchi +wg-netforce 3359/udp # WG NetForce +wg-netforce 3359/tcp # WG NetForce +# Lee Wheat +kv-server 3360/udp # KV Server +kv-server 3360/tcp # KV Server +kv-agent 3361/udp # KV Agent +kv-agent 3361/tcp # KV Agent +# Thomas Soranno +dj-ilm 3362/udp # DJ ILM +dj-ilm 3362/tcp # DJ ILM +# Don Tyson +nati-vi-server 3363/udp # NATI Vi Server +nati-vi-server 3363/tcp # NATI Vi Server +# Robert Dye +creativeserver 3364/udp # Creative Server +creativeserver 3364/tcp # Creative Server +contentserver 3365/udp # Content Server +contentserver 3365/tcp # Content Server +creativepartnr 3366/udp # Creative Partner +creativepartnr 3366/tcp # Creative Partner +# Jesus Ortiz +# Scott Engel +tip2 3372/udp # TIP 2 +tip2 3372/tcp # TIP 2 +# Keith Evans +lavenir-lm 3373/udp # Lavenir License Manager +lavenir-lm 3373/tcp # Lavenir License Manager +# Marius Matioc +cluster-disc 3374/udp # Cluster Disc +cluster-disc 3374/tcp # Cluster Disc +# Jeff Hughes +vsnm-agent 3375/udp # VSNM Agent +vsnm-agent 3375/tcp # VSNM Agent +# Venkat Rangan +cdbroker 3376/udp # CD Broker +cdbroker 3376/tcp # CD Broker +# Moon Ho Chung +cogsys-lm 3377/udp # Cogsys Network License Manager +cogsys-lm 3377/tcp # Cogsys Network License Manager +# Simon Chinnick +wsicopy 3378/udp # WSICOPY +wsicopy 3378/tcp # WSICOPY +# James Overby +socorfs 3379/udp # SOCORFS +socorfs 3379/tcp # SOCORFS +# Hugo Charbonneau +sns-channels 3380/udp # SNS Channels +sns-channels 3380/tcp # SNS Channels +# Shekar Pasumarthi +geneous 3381/udp # Geneous +geneous 3381/tcp # Geneous +# Nick de Smith +fujitsu-neat 3382/udp # Fujitsu Network Enhanced Antitheft function +fujitsu-neat 3382/tcp # Fujitsu Network Enhanced Antitheft function +# Markku Viima +esp-lm 3383/udp # Enterprise Software Products License Manager +esp-lm 3383/tcp # Enterprise Software Products License Manager +# George Rudy +hp-clic 3384/udp # Hardware Management +hp-clic 3384/tcp # Cluster Management Services +# Rajesh Srinivasaraghavan +qnxnetman 3385/udp # qnxnetman +qnxnetman 3385/tcp # qnxnetman +# Michael Hunter +gprs-sig 3386/udp # GPRS SIG +gprs-data 3386/tcp # GPRS Data +# Ansgar Bergmann +backroomnet 3387/udp # Back Room Net +backroomnet 3387/tcp # Back Room Net +# Clayton Wilkinson +cbserver 3388/udp # CB Server +cbserver 3388/tcp # CB Server +# Allen Wei +ms-wbt-server 3389/udp # MS WBT Server +ms-wbt-server 3389/tcp # MS WBT Server +# Ritu Bahl +dsc 3390/udp # Distributed Service Coordinator +dsc 3390/tcp # Distributed Service Coordinator +# Chas Honton +savant 3391/udp # SAVANT +savant 3391/tcp # SAVANT +# Andy Bruce +efi-lm 3392/udp # EFI License Management +efi-lm 3392/tcp # EFI License Management +# Ross E. Greinke +d2k-tapestry1 3393/udp # D2K Tapestry Client to Server +d2k-tapestry1 3393/tcp # D2K Tapestry Client to Server +d2k-tapestry2 3394/udp # D2K Tapestry Server to Server +d2k-tapestry2 3394/tcp # D2K Tapestry Server to Server +# Eric Lan +dyna-lm 3395/udp # Dyna License Manager (Elam) +dyna-lm 3395/tcp # Dyna License Manager (Elam) +# Anjana Iyer +printer_agent 3396/udp # Printer Agent +printer_agent 3396/tcp # Printer Agent +# Devon Taylor +cloanto-lm 3397/udp # Cloanto License Manager +cloanto-lm 3397/tcp # Cloanto License Manager +# Takeo Sato +mercantile 3398/udp # Mercantile +mercantile 3398/tcp # Mercantile +# Erik Kragh Jensen +csms 3399/udp # CSMS +csms 3399/tcp # CSMS +csms2 3400/udp # CSMS2 +csms2 3400/tcp # CSMS2 +# Markus Michels +filecast 3401/udp # filecast +filecast 3401/tcp # filecast +# Eden Sherry +fxaengine-net 3402/udp # FXa Engine Network Port +fxaengine-net 3402/tcp # FXa Engine Network Port +# Lucas Alonso February 2002 +copysnap 3403/udp # CopySnap Server Port +copysnap 3403/tcp # CopySnap Server Port +# Steve Zellers February 2002 +# 3404 Removed (2002-05-01) +nokia-ann-ch1 3405/udp # Nokia Announcement ch 1 +nokia-ann-ch1 3405/tcp # Nokia Announcement ch 1 +nokia-ann-ch2 3406/udp # Nokia Announcement ch 2 +nokia-ann-ch2 3406/tcp # Nokia Announcement ch 2 +# Morteza Kalhour February 2002 +ldap-admin 3407/udp # LDAP admin server port +ldap-admin 3407/tcp # LDAP admin server port +# Stephen Tsun February 2002 +issapi 3408/udp # POWERpack API Port +issapi 3408/tcp # POWERpack API Port +# Colin Griffiths February 2002 +networklens 3409/udp # NetworkLens Event Port +networklens 3409/tcp # NetworkLens Event Port +networklenss 3410/udp # NetworkLens SSL Event +networklenss 3410/tcp # NetworkLens SSL Event +# Greg Bailey February 2002 +biolink-auth 3411/udp # BioLink Authenteon server +biolink-auth 3411/tcp # BioLink Authenteon server +# BioLink Support February 2002 +xmlblaster 3412/udp # xmlBlaster +xmlblaster 3412/tcp # xmlBlaster +# Marcel Ruff February 2002 +svnet 3413/udp # SpecView Networking +svnet 3413/tcp # SpecView Networking +# Richard Dickins February 2002 +wip-port 3414/udp # BroadCloud WIP Port +wip-port 3414/tcp # BroadCloud WIP Port +bcinameservice 3415/udp # BCI Name Service +bcinameservice 3415/tcp # BCI Name Service +# Dennis Parker February 2002 +commandport 3416/udp # AirMobile IS Command Port +commandport 3416/tcp # AirMobile IS Command Port +# Mike Klein February 2002 +csvr 3417/udp # ConServR file translation +csvr 3417/tcp # ConServR file translation +# Albert Leung February 2002 +rnmap 3418/udp # Remote nmap +rnmap 3418/tcp # Remote nmap +# Tuomo Makinen February 2002 +softaudit 3419/udp # ISogon SoftAudit +softaudit 3419/tcp # Isogon SoftAudit +# Per Hellberg February 2002 +ifcp-port 3420/udp # iFCP User Port +ifcp-port 3420/tcp # iFCP User Port +# Charles Monia +bmap 3421/udp # Bull Apprise portmapper +bmap 3421/tcp # Bull Apprise portmapper +# Jeremy Gilbert +rusb-sys-port 3422/udp # Remote USB System Port +rusb-sys-port 3422/tcp # Remote USB System Port +# Steven Klein February 2002 +xtrm 3423/udp # xTrade Reliable Messaging +xtrm 3423/tcp # xTrade Reliable Messaging +xtrms 3424/udp # xTrade over TLS/SSL +xtrms 3424/tcp # xTrade over TLS/SSL +# Mats Nilsson February 2002 +agps-port 3425/udp # AGPS Access Port +agps-port 3425/tcp # AGPS Access Port +# Kristoffer Nilsson +# February 2002 +arkivio 3426/udp # Arkivio Storage Protocol +arkivio 3426/tcp # Arkivio Storage Protocol +# Bruce Greenblatt February 2002 +websphere-snmp 3427/udp # WebSphere SNMP +websphere-snmp 3427/tcp # WebSphere SNMP +# Richard Mills February 2002 +twcss 3428/udp # 2Wire CSS +twcss 3428/tcp # 2Wire CSS +# 2Wire IANA Contact February 2002 +gcsp 3429/udp # GCSP user port +gcsp 3429/tcp # GCSP user port +# Anirban Majumder March 2002 +ssdispatch 3430/udp # Scott Studios Dispatch +ssdispatch 3430/tcp # Scott Studios Dispatch +# Michael Settles March 2002 +ndl-als 3431/udp # Active License Server Port +ndl-als 3431/tcp # Active License Server Port +# Quentin Brown March 2002 +osdcp 3432/udp # Secure Device Protocol +osdcp 3432/tcp # Secure Device Protocol +# Peter Fernandez March 2002 +alta-smp 3433/udp # Altaworks Service Management Platform +alta-smp 3433/tcp # Altaworks Service Management Platform +# Ted Macomber March 2002 +opencm 3434/udp # OpenCM Server +opencm 3434/tcp # OpenCM Server +# Jonathan S. Shapiro March 2002 +pacom 3435/udp # Pacom Security User Port +pacom 3435/tcp # Pacom Security User Port +# Steve Barton March 2002 +gc-config 3436/udp # GuardControl Exchange Protocol +gc-config 3436/tcp # GuardControl Exchange Protocol +# Andreas Schwarz March 2002 +autocueds 3437/udp # Autocue Directory Service +autocueds 3437/tcp # Autocue Directory Service +# Geoff Back March 2002 +spiral-admin 3438/udp # Spiralcraft Admin +spiral-admin 3438/tcp # Spiralcraft Admin +# Michael Toth March 2002 +hri-port 3439/udp # HRI Interface Port +hri-port 3439/tcp # HRI Interface Port +# John Fayos March 2002 +ans-console 3440/udp # Net Steward Mgmt Console +ans-console 3440/tcp # Net Steward Mgmt Console +# John Richmond March 2002 +connect-client 3441/udp # OC Connect Client +connect-client 3441/tcp # OC Connect Client +connect-server 3442/udp # OC Connect Server +connect-server 3442/tcp # OC Connect Server +# Mike Velten March 2002 +ov-nnm-websrv 3443/udp # OpenView Network Node Manager WEB Server +ov-nnm-websrv 3443/tcp # OpenView Network Node Manager WEB Server +# Anthony Walker March 2002 +denali-server 3444/udp # Denali Server +denali-server 3444/tcp # Denali Server +# Joe Devlin March 2002 +monp 3445/udp # Media Object Network +monp 3445/tcp # Media Object Network +# Ron Herardian March 2002 +3comfaxrpc 3446/udp # 3Com FAX RPC port +3comfaxrpc 3446/tcp # 3Com FAX RPC port +# Christopher Wells April 2002 +cddn 3447/udp # CompuDuo DirectNet +cddn 3447/tcp # CompuDuo DirectNet +# Gregory Richards April 2002 +dnc-port 3448/udp # Discovery and Net Config +dnc-port 3448/tcp # Discovery and Net Config +# Chi Chen April 2002 +hotu-chat 3449/udp # HotU Chat +hotu-chat 3449/tcp # HotU Chat +# Tim Burgess April 2002 +castorproxy 3450/udp # CAStorProxy +castorproxy 3450/tcp # CAStorProxy +# Raymond J. Young April 2002 +asam 3451/udp # ASAM Services +asam 3451/tcp # ASAM Services +# Mike Gossett April 2002 +sabp-signal 3452/udp # SABP-Signalling Protocol +sabp-signal 3452/tcp # SABP-Signalling Protocol +# Brendan McWilliams April 2002 +pscupd 3453/udp # PSC Update Port +pscupd 3453/tcp # PSC Update Port +# Reid B. Ligon +mira 3454/tcp # Apple Remote Access Protocol +# Mike Alexander +prsvp 3455/udp # RSVP Port +prsvp 3455/tcp # RSVP Port +# Bob Braden +vat 3456/udp # VAT default data +vat 3456/tcp # VAT default data +# Van Jacobson +vat-control 3457/udp # VAT default control +vat-control 3457/tcp # VAT default control +# Van Jacobson +d3winosfi 3458/udp # D3WinOSFI +d3winosfi 3458/tcp # D3WinOSFI +# Brad Hamilton +integral 3459/udp # TIP Integral +integral 3459/tcp # TIP Integral +# Olivier Mascia +edm-manager 3460/udp # EDM Manger +edm-manager 3460/tcp # EDM Manger +edm-stager 3461/udp # EDM Stager +edm-stager 3461/tcp # EDM Stager +edm-std-notify 3462/udp # EDM STD Notify +edm-std-notify 3462/tcp # EDM STD Notify +edm-adm-notify 3463/udp # EDM ADM Notify +edm-adm-notify 3463/tcp # EDM ADM Notify +edm-mgr-sync 3464/udp # EDM MGR Sync +edm-mgr-sync 3464/tcp # EDM MGR Sync +edm-mgr-cntrl 3465/udp # EDM MGR Cntrl +edm-mgr-cntrl 3465/tcp # EDM MGR Cntrl +# Tom Hennessy +workflow 3466/udp # WORKFLOW +workflow 3466/tcp # WORKFLOW +# Robert Hufsky +rcst 3467/udp # RCST +rcst 3467/tcp # RCST +# Kit Sturgeon +ttcmremotectrl 3468/udp # TTCM Remote Controll +ttcmremotectrl 3468/tcp # TTCM Remote Controll +# Yossi Cohen-Shahar +pluribus 3469/udp # Pluribus +pluribus 3469/tcp # Pluribus +# Mark Miller +jt400 3470/udp # jt400 +jt400 3470/tcp # jt400 +jt400-ssl 3471/udp # jt400-ssl +jt400-ssl 3471/tcp # jt400-ssl +# Clifton Nock +jaugsremotec-1 3472/udp # JAUGS N-G Remotec 1 +jaugsremotec-1 3472/tcp # JAUGS N-G Remotec 1 +jaugsremotec-2 3473/udp # JAUGS N-G Remotec 2 +jaugsremotec-2 3473/tcp # JAUGS N-G Remotec 2 +# Steven B. Cliff April 2002 +ttntspauto 3474/udp # TSP Automation +ttntspauto 3474/tcp # TSP Automation +# Arnie Koster April 2002 +genisar-port 3475/udp # Genisar Comm Port +genisar-port 3475/tcp # Genisar Comm Port +# Candace Niccolson April 2002 +nppmp 3476/udp # NVIDIA Mgmt Protocol +nppmp 3476/tcp # NVIDIA Mgmt Protocol +# Gilbert Yeung April 2002 +ecomm 3477/udp # eComm link port +ecomm 3477/tcp # eComm link port +# Thomas Soerensen April 2002 +nat-stun-port 3478/udp # Simple Traversal of UDP Through NAT (STUN) port +nat-stun-port 3478/tcp # Simple Traversal of UDP Through NAT (STUN) port +# Jonathan Rosenberg April 2002 +twrpc 3479/udp # 2Wire RPC +twrpc 3479/tcp # 2Wire RPC +# 2Wire IANA Contact April 2002 +plethora 3480/udp # Secure Virtual Workspace +plethora 3480/tcp # Secure Virtual Workspace +# Tim Simms April 2002 +cleanerliverc 3481/udp # CleanerLive remote ctrl +cleanerliverc 3481/tcp # CleanerLive remote ctrl +# David Mojdehi April 2002 +vulture 3482/udp # Vulture Monitoring System +vulture 3482/tcp # Vulture Monitoring System +# Jason Santos April 2002 +slim-devices 3483/udp # Slim Devices Protocol +slim-devices 3483/tcp # Slim Devices Protocol +# Sean Adams May 2002 +gbs-stp 3484/udp # GBS SnapTalk Protocol +gbs-stp 3484/tcp # GBS SnapTalk Protocol +# Eric Harris-Braun May 2002 +celatalk 3485/udp # CelaTalk +celatalk 3485/tcp # CelaTalk +# Carl Blundell May 2002 +ifsf-hb-port 3486/udp # IFSF Heartbeat Port +ifsf-hb-port 3486/tcp # IFSF Heartbeat Port +# IFSF Secretary May 2002 +ltcudp 3487/udp # LISA UDP Transfer Channel +ltctcp 3487/tcp # LISA TCP Transfer Channel +# Pit Vetterick May 2002 +fs-rh-srv 3488/udp # FS Remote Host Server +fs-rh-srv 3488/tcp # FS Remote Host Server +# Brian Nickles May 2002 +dtp-dia 3489/udp # DTP/DIA +dtp-dia 3489/tcp # DTP/DIA +# Alexei V. Soloviev May 2002 +colubris 3490/udp # Colubris Management Port +colubris 3490/tcp # Colubris Management Port +# Gilbert Moineau May 2002 +swr-port 3491/udp # SWR Port +swr-port 3491/tcp # SWR Port +# Ian Manning May 2002 +tvdumtray-port 3492/udp # TVDUM Tray Port +tvdumtray-port 3492/tcp # TVDUM Tray Port +# Peter Boers May 2002 +nut 3493/udp # Network UPS Tools +nut 3493/tcp # Network UPS Tools +# Russell Kroll May 2002 +ibm3494 3494/udp # IBM 3494 +ibm3494 3494/tcp # IBM 3494 +# Jeffrey Pilch +seclayer-tcp 3495/udp # securitylayer over tcp +seclayer-tcp 3495/tcp # securitylayer over tcp +seclayer-tls 3496/udp # securitylayer over tls +seclayer-tls 3496/tcp # securitylayer over tls +# Arno Hollosi March 2002 +ipether232port 3497/udp # ipEther232Port +ipether232port 3497/tcp # ipEther232Port +# Marcus Leufgen May 2002 +dashpas-port 3498/udp # DASHPAS user port +dashpas-port 3498/tcp # DASHPAS user port +# Albrecht Mayer May 2002 +sccip-media 3499/udp # SccIP Media +sccip-media 3499/tcp # SccIP Media +# David Yon May 2002 +rtmp-port 3500/udp # RTMP Port +rtmp-port 3500/tcp # RTMP Port +# Miriam Wohlgelernter +isoft-p2p 3501/udp # iSoft-P2P +isoft-p2p 3501/tcp # iSoft-P2P +# David Walling +avinstalldisc 3502/udp # Avocent Install Discovery +avinstalldisc 3502/tcp # Avocent Install Discovery +# Brian S. Stewart +lsp-ping 3503/udp # MPLS LSP-echo Port +lsp-ping 3503/tcp # MPLS LSP-echo Port +# Ping Pan +ironstorm 3504/udp # IronStorm game server +ironstorm 3504/tcp # IronStorm game server +# Arnaud Clermonte +ccmcomm 3505/udp # CCM communications port +ccmcomm 3505/tcp # CCM communications port +# Tom Bougan +apc-3506 3506/udp # APC 3506 +apc-3506 3506/tcp # APC 3506 +# American Power Conversion +nesh-broker 3507/udp # Nesh Broker Port +nesh-broker 3507/tcp # Nesh Broker Port +# Jeremy Maiden +interactionweb 3508/udp # Interaction Web +interactionweb 3508/tcp # Interaction Web +# Andy Niksch +vt-ssl 3509/udp # Virtual Token SSL Port +vt-ssl 3509/tcp # Virtual Token SSL Port +# Libor Sykora May 2002 +xss-port 3510/udp # XSS Port +xss-port 3510/tcp # XSS Port +# Joe Purcell May 2002 +webmail-2 3511/udp # WebMail/2 +webmail-2 3511/tcp # WebMail/2 +# Dimitris Michelinakis May 2002 +aztec 3512/udp # Aztec Distribution Port +aztec 3512/tcp # Aztec Distribution Port +# Alan Francis May 2002 +arcpd 3513/udp # Adaptec Remote Protocol +arcpd 3513/tcp # Adaptec Remote Protocol +# Hardy Doelfel May 2002 +must-p2p 3514/udp # MUST Peer to Peer +must-p2p 3514/tcp # MUST Peer to Peer +must-backplane 3515/udp # MUST Backplane +must-backplane 3515/tcp # MUST Backplane +# Rick Stefanik May 2002 +smartcard-port 3516/udp # Smartcard Port +smartcard-port 3516/tcp # Smartcard Port +# Scott Guthery May 2002 +802-11-iapp 3517/udp # IEEE 802.11 WLANs WG IAPP +802-11-iapp 3517/tcp # IEEE 802.11 WLANs WG IAPP +# Stuart J. Kerry (Chair IEEE 802.11 WG) +# May 2002 +artifact-msg 3518/udp # Artifact Message Server +artifact-msg 3518/tcp # Artifact Message Server +# Ron Capwell June 2002 +galileo 3519/udp # Netvion Galileo Port +nvmsgd 3519/tcp # Netvion Messenger Port +galileolog 3520/udp # Netvion Galileo Log Port +galileolog 3520/tcp # Netvion Galileo Log Port +# Ray Caruso June 2002 +mc3ss 3521/udp # Telequip Labs MC3SS +mc3ss 3521/tcp # Telequip Labs MC3SS +# Michael Sparks June 2002 +nssocketport 3522/udp # DO over NSSocketPort +nssocketport 3522/tcp # DO over NSSocketPort +# Douglas Davidson June 2002 +odeumservlink 3523/udp # Odeum Serverlink +odeumservlink 3523/tcp # Odeum Serverlink +# Mads Peter Back June 2002 +ecmport 3524/udp # ECM Server port +ecmport 3524/tcp # ECM Server port +eisport 3525/udp # EIS Server port +eisport 3525/tcp # EIS Server port +# Paul Kraus June 2002 +starquiz-port 3526/udp # starQuiz Port +starquiz-port 3526/tcp # starQuiz Port +# Adam Ernst June 2002 +beserver-msg-q 3527/udp # VERITAS Backup Exec Server +beserver-msg-q 3527/tcp # VERITAS Backup Exec Server +# Katherine Wattwood June 2002 +jboss-iiop 3528/udp # JBoss IIOP +jboss-iiop 3528/tcp # JBoss IIOP +jboss-iiop-ssl 3529/udp # JBoss IIOP/SSL +jboss-iiop-ssl 3529/tcp # JBoss IIOP/SSL +# Francisco Reverbel June 2002 +gf 3530/udp # Grid Friendly +gf 3530/tcp # Grid Friendly +# Daivd P. Chassin June 2002 +joltid 3531/udp # Joltid +joltid 3531/tcp # Joltid +# Ahti Heinla June 2002 +raven-rmp 3532/udp # Raven Remote Management Control +raven-rmp 3532/tcp # Raven Remote Management Control +raven-rdp 3533/udp # Raven Remote Management Data +raven-rdp 3533/tcp # Raven Remote Management Data +# Daniel Sorlov June 2002 +urld-port 3534/udp # URL Daemon Port +urld-port 3534/tcp # URL Daemon Port +# Jim Binkley June 2002 +ms-la 3535/udp # MS-LA +ms-la 3535/tcp # MS-LA +# Eric Ledoux +snac 3536/udp # SNAC +snac 3536/tcp # SNAC +# Tatsuya Igarashi July 2002 +ni-visa-remote 3537/udp # Remote NI-VISA port +ni-visa-remote 3537/tcp # Remote NI-VISA port +# Sinnadurai Dharshan July 2002 +ibm-diradm 3538/udp # IBM Directory Server +ibm-diradm 3538/tcp # IBM Directory Server +ibm-diradm-ssl 3539/udp # IBM Directory Server SSL +ibm-diradm-ssl 3539/tcp # IBM Directory Server SSL +# Mark Cavage July 2002 +pnrp-port 3540/udp # PNRP User Port +pnrp-port 3540/tcp # PNRP User Port +# Igor Kostic July 2002 +voispeed-port 3541/udp # VoiSpeed Port +voispeed-port 3541/tcp # VoiSpeed Port +# Virgilio Lattanzi July 2002 +hacl-monitor 3542/udp # HA cluster monitor +hacl-monitor 3542/tcp # HA cluster monitor +# Jason Ko July 2002 +qftest-lookup 3543/udp # qftest Lookup Port +qftest-lookup 3543/tcp # qftest Lookup Port +# Gregor Schmid July 2002 +teredo 3544/udp # Teredo Port +teredo 3544/tcp # Teredo Port +# Dave Thaler July 2002 +camac 3545/udp # CAMAC equipment +camac 3545/tcp # CAMAC equipment +# Eugene Zhiganov July 2002 +# 3546 Unassigned (removed September 2002) +symantec-sim 3547/udp # Symantec SIM +symantec-sim 3547/tcp # Symantec SIM +# George Dzieciol July 2002 +interworld 3548/udp # Interworld +interworld 3548/tcp # Interworld +# John Stephen July 2002 +tellumat-nms 3549/udp # Tellumat MDR NMS +tellumat-nms 3549/tcp # Tellumat MDR NMS +# Hennie van der Merwe July 2002 +ssmpp 3550/udp # Secure SMPP +ssmpp 3550/tcp # Secure SMPP +# Cormac Long July 2002 +apcupsd 3551/udp # Apcupsd Information Port +apcupsd 3551/tcp # Apcupsd Information Port +# Riccardo Facchetti July 2002 +taserver 3552/udp # TeamAgenda Server Port +taserver 3552/tcp # TeamAgenda Server Port +# Dany Ayotte July 2002 +rbr-discovery 3553/udp # Red Box Recorder ADP +rbr-discovery 3553/tcp # Red Box Recorder ADP +# Simon Jolly July 2002 +questnotify 3554/udp # Quest Notification Server +questnotify 3554/tcp # Quest Notification Server +# Rob Griffin July 2002 +razor 3555/udp # Vipul's Razor +razor 3555/tcp # Vipul's Razor +# Vipul Ved Prakash July 2002 +sky-transport 3556/udp # Sky Transport Protocol +sky-transport 3556/tcp # Sky Transport Protocol +# Michael Paddon July 2002 +personalos-001 3557/udp # PersonalOS Comm Port +personalos-001 3557/tcp # PersonalOS Comm Port +# Shane Roberts July 2002 +mcp-port 3558/udp # MCP user port +mcp-port 3558/tcp # MCP user port +# Professor Paul S. Wang July 2002 +cctv-port 3559/udp # CCTV control port +cctv-port 3559/tcp # CCTV control port +# Raymond Lyons July 2002 +iniserve-port 3560/udp # INIServe port +iniserve-port 3560/tcp # INIServe port +# Peter Moylan August 2002 +bmc-onekey 3561/udp # BMC-OneKey +bmc-onekey 3561/tcp # BMC-OneKey +# Alon Tam August 2002 +sdbproxy 3562/udp # SDBProxy +sdbproxy 3562/tcp # SDBProxy +# Eric Grange August 2002 +watcomdebug 3563/udp # Watcom Debug +watcomdebug 3563/tcp # Watcom Debug +# Dave Neudoerffer +esimport 3564/udp # Electromed SIM port +esimport 3564/tcp # Electromed SIM port +# Francois Marchand August 2002 +m2pa 3565/sctp # M2PA +m2pa 3565/tcp # M2PA +# Tom George May 2002 +quest-launcher 3566/udp # Quest Agent Manager +quest-launcher 3566/tcp # Quest Agent Manager +# Eyal Kalderon April 2002 +emware-oft 3567/udp # emWare OFT Services +emware-oft 3567/tcp # emWare OFT Services +# Bryant Eastham August 2002 +emware-epss 3568/udp # emWare EMIT/Secure +emware-epss 3568/tcp # emWare EMIT/Secure +# Bryant Eastham January 2003 +mbg-ctrl 3569/udp # Meinberg Control Service +mbg-ctrl 3569/tcp # Meinberg Control Service +# Martin Burnicki August 2002 +mccwebsvr-port 3570/udp # MCC Web Server Port +mccwebsvr-port 3570/tcp # MCC Web Server Port +megardsvr-port 3571/udp # MegaRAID Server Port +megardsvr-port 3571/tcp # MegaRAID Server Port +megaregsvrport 3572/udp # Registration Server Port +megaregsvrport 3572/tcp # Registration Server Port +# Sreenivas Bagalkote August 2002 +tag-ups-1 3573/udp # Advantage Group UPS Suite +tag-ups-1 3573/tcp # Advantage Group UPS Suite +# James Goddard August 2002 +dmaf-caster 3574/udp # DMAF Caster +dmaf-server 3574/tcp # DMAF Server +# Ramakrishna Nadendla August 2002 +ccm-port 3575/udp # Coalsere CCM Port +ccm-port 3575/tcp # Coalsere CCM Port +cmc-port 3576/udp # Coalsere CMC Port +cmc-port 3576/tcp # Coalsere CMC Port +# Chris Hawkinson August 2002 +config-port 3577/udp # Configuration Port +config-port 3577/tcp # Configuration Port +data-port 3578/udp # Data Port +data-port 3578/tcp # Data Port +# Anupam Bharali August 2002 +ttat3lb 3579/udp # Tarantella Load Balancing +ttat3lb 3579/tcp # Tarantella Load Balancing +# Jim Musgrave August 2002 +nati-svrloc 3580/udp # NATI-ServiceLocator +nati-svrloc 3580/tcp # NATI-ServiceLocator +# Jason Case August 2002 +kfxaclicensing 3581/udp # Ascent Capture Licensing +kfxaclicensing 3581/tcp # Ascent Capture Licensing +# Brad Hamilton August 2002 +press 3582/udp # PEG PRESS Server +press 3582/tcp # PEG PRESS Server +# Jim DeLisle August 2002 +canex-watch 3583/udp # CANEX Watch System +canex-watch 3583/tcp # CANEX Watch System +# Peter Kollath August 2002 +u-dbap 3584/udp # U-DBase Access Protocol +u-dbap 3584/tcp # U-DBase Access Protocol +# Bodo Rueskamp August 2002 +emprise-lls 3585/udp # Emprise License Server +emprise-lls 3585/tcp # Emprise License Server +emprise-lsc 3586/udp # License Server Console +emprise-lsc 3586/tcp # License Server Console +# James J. Diaz August 2002 +p2pgroup 3587/udp # Peer to Peer Grouping +p2pgroup 3587/tcp # Peer to Peer Grouping +# Igor Kostic August 2002 +sentinel 3588/udp # Sentinel Server +sentinel 3588/tcp # Sentinel Server +# Ian Gordon August 2002 +isomair 3589/udp # isomair +isomair 3589/tcp # isomair +# Richard Fleming August 2002 +wv-csp-sms 3590/udp # WV CSP SMS Binding +wv-csp-sms 3590/tcp # WV CSP SMS Binding +# Matti Salmi August 2002 +gtrack-server 3591/udp # LOCANIS G-TRACK Server +gtrack-server 3591/tcp # LOCANIS G-TRACK Server +gtrack-ne 3592/udp # LOCANIS G-TRACK NE Port +gtrack-ne 3592/tcp # LOCANIS G-TRACK NE Port +# Juergen.Edelhaeuser August 2002 +bpmd 3593/udp # BP Model Debugger +bpmd 3593/tcp # BP Model Debugger +# Keith Fligg September 2002 +mediaspace 3594/udp # MediaSpace +mediaspace 3594/tcp # MediaSpace +shareapp 3595/udp # ShareApp +shareapp 3595/tcp # ShareApp +# Jeff King September 2002 +iw-mmogame 3596/udp # Illusion Wireless MMOG +iw-mmogame 3596/tcp # Illusion Wireless MMOG +# Jan Vrsinsky September 2002 +a14 3597/udp # A14 (AN-to-SC/MM) +a14 3597/tcp # A14 (AN-to-SC/MM) +a15 3598/udp # A15 (AN-to-AN) +a15 3598/tcp # A15 (AN-to-AN) +# David Ott September 2002 +quasar-server 3599/udp # Quasar Accounting Server +quasar-server 3599/tcp # Quasar Accounting Server +# Brad Pepers September 2002 +trap-daemon 3600/udp # text relay-answer +trap-daemon 3600/tcp # text relay-answer +# John Willis September 2002 +visinet-gui 3601/udp # Visinet Gui +visinet-gui 3601/tcp # Visinet Gui +# Jeff Douglass September 2002 +infiniswitchcl 3602/udp # InfiniSwitch Mgr Client +infiniswitchcl 3602/tcp # InfiniSwitch Mgr Client +# Lee VanTine September 2002 +int-rcv-cntrl 3603/udp # Integrated Rcvr Control +int-rcv-cntrl 3603/tcp # Integrated Rcvr Control +# Dave Stone September 2002 +bmc-jmx-port 3604/udp # BMC JMX Port +bmc-jmx-port 3604/tcp # BMC JMX Port +# Mike Behne September 2002 +comcam-io 3605/udp # ComCam IO Port +comcam-io 3605/tcp # ComCam IO Port +# Don Gilbreath September 2002 +splitlock 3606/udp # Splitlock Server +splitlock 3606/tcp # Splitlock Server +# Andrew Tune September 2002 +precise-i3 3607/udp # Precise I3 +precise-i3 3607/tcp # Precise I3 +# Tomer Shain September 2002 +trendchip-dcp 3608/udp # Trendchip control protocol +trendchip-dcp 3608/tcp # Trendchip control protocol +# Ming-Jen Chen September 2002 +cpdi-pidas-cm 3609/udp # CPDI PIDAS Connection Mon +cpdi-pidas-cm 3609/tcp # CPDI PIDAS Connection Mon +# Tony Splaver September 2002 +echonet 3610/udp # ECHONET +echonet 3610/tcp # ECHONET +# Takeshi Saito September 2002 +six-degrees 3611/udp # Six Degrees Port +six-degrees 3611/tcp # Six Degrees Port +# Dan Hansen September 2002 +hp-dataprotect 3612/udp # HP Data Protector +hp-dataprotect 3612/tcp # HP Data Protector +# Stephen Gold September 2002 +alaris-disc 3613/udp # Alaris Device Discovery +alaris-disc 3613/tcp # Alaris Device Discovery +# Chris McAllen October 2002 +sigma-port 3614/udp # Invensys Sigma Port +sigma-port 3614/tcp # Invensys Sigma Port +# Dr. Sajed Husein October 2002 +start-network 3615/udp # Start Messaging Network +start-network 3615/tcp # Start Messaging Network +# Peter Rocca October 2002 +cd3o-protocol 3616/udp # cd3o Control Protocol +cd3o-protocol 3616/tcp # cd3o Control Protocol +# Chris Wilcox October 2002 +sharp-server 3617/udp # ATI SHARP Logic Engine +sharp-server 3617/tcp # ATI SHARP Logic Engine +# Bill Reveile +aairnet-1 3618/udp # AAIR-Network 1 +aairnet-1 3618/tcp # AAIR-Network 1 +aairnet-2 3619/udp # AAIR-Network 2 +aairnet-2 3619/tcp # AAIR-Network 2 +# James Mealey October 2002 +ep-pcp 3620/udp # EPSON Projector Control Port +ep-pcp 3620/tcp # EPSON Projector Control Port +ep-nsp 3621/udp # EPSON Network Screen Port +ep-nsp 3621/tcp # EPSON Network Screen Port +# SEIKO EPSON October 2002 +ff-lr-port 3622/udp # FF LAN Redundancy Port +ff-lr-port 3622/tcp # FF LAN Redundancy Port +# Fieldbus Foundation October 2002 +haipe-discover 3623/udp # HAIPIS Dynamic Discovery +haipe-discover 3623/tcp # HAIPIS Dynamic Discovery +# Mike Irani October 2002 +dist-upgrade 3624/udp # Distributed Upgrade Port +dist-upgrade 3624/tcp # Distributed Upgrade Port +# Jason Schoon October 2002 +volley 3625/udp # Volley +volley 3625/tcp # Volley +# David Catmull October 2002 +bvcdaemon-port 3626/udp # bvControl Daemon +bvcdaemon-port 3626/tcp # bvControl Daemon +# Ravi Gokhale October 2002 +jamserverport 3627/udp # Jam Server Port +jamserverport 3627/tcp # Jam Server Port +# Art Pope October 2002 +ept-machine 3628/udp # EPT Machine Interface +ept-machine 3628/tcp # EPT Machine Interface +# Victor H. Farrace October 2002 +escvpnet 3629/udp # ESC/VP.net +escvpnet 3629/tcp # ESC/VP.net +# Hiroyuki Hashimoto October 2002 +cs-remote-db 3630/udp # C&S Remote Database Port +cs-remote-db 3630/tcp # C&S Remote Database Port +cs-services 3631/udp # C&S Web Services Port +cs-services 3631/tcp # C&S Web Services Port +# Computer Software GmbH October 2002 +distcc 3632/udp # distributed complier +distcc 3632/tcp # distributed compiler +# Martin Pool November 2002 +wacp 3633/udp # Wyrnix AIS port +wacp 3633/tcp # Wyrnix AIS port +# Harry T. Vennik November 2002 +hlibmgr 3634/udp # hNTSP Library Manager +hlibmgr 3634/tcp # hNTSP Library Manager +# Kenji Tetsuyama November 2002 +sdo 3635/udp # Simple Distributed Objects +sdo 3635/tcp # Simple Distributed Objects +# Alexander Philippou November 2002 +opscenter 3636/udp # OpsCenter +opscenter 3636/tcp # OpsCenter +# Ralph Campbell November 2002 +scservp 3637/udp # Customer Service Port +scservp 3637/tcp # Customer Service Port +# Jonathan A. Zdziarski November 2002 +ehp-backup 3638/udp # EHP Backup Protocol +ehp-backup 3638/tcp # EHP Backup Protocol +# Ed Fair November 2002 +xap-ha 3639/udp # Extensible Automation +xap-ha 3639/tcp # Extensible Automation +# Mark Harrison November 2002 +netplay-port1 3640/udp # Netplay Port 1 +netplay-port1 3640/tcp # Netplay Port 1 +netplay-port2 3641/udp # Netplay Port 2 +netplay-port2 3641/tcp # Netplay Port 2 +# Predrag Filipovic November 2002 +juxml-port 3642/udp # Juxml Replication port +juxml-port 3642/tcp # Juxml Replication port +# Colin Reid November 2002 +audiojuggler 3643/udp # AudioJuggler +audiojuggler 3643/tcp # AudioJuggler +# Morten Mertner November 2002 +ssowatch 3644/udp # ssowatch +ssowatch 3644/tcp # ssowatch +# Stephane Vinsot November 2002 +cyc 3645/udp # Cyc +cyc 3645/tcp # Cyc +# Stephen Reed January 2003 +xss-srv-port 3646/udp # XSS Server Port +xss-srv-port 3646/tcp # XSS Server Port +# Joe Purcell January 2003 +splitlock-gw 3647/udp # Splitlock Gateway +splitlock-gw 3647/tcp # Splitlock Gateway +# Andrew Tune January 2003 +fjcp 3648/udp # Fujitsu Cooperation Port +fjcp 3648/tcp # Fujitsu Cooperation Port +# Kouji Sugisawa January 2003 +nmmp 3649/udp # Nishioka Miyuki Msg Protocol +nmmp 3649/tcp # Nishioka Miyuki Msg Protocol +# TAKEDA Hiroyuki January 2003 +prismiq-plugin 3650/udp # PRISMIQ VOD plug-in +prismiq-plugin 3650/tcp # PRISMIQ VOD plug-in +# Richard Hodges January 2003 +xrpc-registry 3651/udp # XRPC Registry +xrpc-registry 3651/tcp # XRPC Registry +# Slava Monich January 2003 +vxcrnbuport 3652/udp # VxCR NBU Default Port +vxcrnbuport 3652/tcp # VxCR NBU Default Port +# Boris Star January 2003 +tsp 3653/udp # Tunnel Setup Protocol +tsp 3653/tcp # Tunnel Setup Protocol +# Marc Blanchet January 2003 +vaprtm 3654/udp # VAP RealTime Messenger +vaprtm 3654/tcp # VAP RealTime Messenger +# Boris Polevoy January 2003 +abatemgr 3655/udp # ActiveBatch Exec Agent +abatemgr 3655/tcp # ActiveBatch Exec Agent +abatjss 3656/udp # ActiveBatch Job Scheduler +abatjss 3656/tcp # ActiveBatch Job Scheduler +# Ben Rosenberg January 2003 +immedianet-bcn 3657/udp # ImmediaNet Beacon +immedianet-bcn 3657/tcp # ImmediaNet Beacon +# Bill Homan January 2003 +ps-ams 3658/udp # PlayStation AMS (Secure) +ps-ams 3658/tcp # PlayStation AMS (Secure) +# Edgar Alan Tu January 2003 +apple-sasl 3659/udp # Apple SASL +apple-sasl 3659/tcp # Apple SASL +# David M. O'Rourke January 2003 +can-nds-ssl 3660/udp # Candle Directory Services using SSL +can-nds-ssl 3660/tcp # Candle Directory Services using SSL +can-ferret-ssl 3661/udp # Candle Directory Services using SSL +can-ferret-ssl 3661/tcp # Candle Directory Services using SSL +# Nic Catrambone January 2003 +pserver 3662/udp # pserver +pserver 3662/tcp # pserver +# Patrick Furlong January 2003 +dtp 3663/udp # DIRECWAY Tunnel Protocol +dtp 3663/tcp # DIRECWAY Tunnel Protocol +# Greg Gee January 2003 +ups-engine 3664/udp # UPS Engine Port +ups-engine 3664/tcp # UPS Engine Port +ent-engine 3665/udp # Enterprise Engine Port +ent-engine 3665/tcp # Enterprise Engine Port +# Mike Delgrosso January 2003 +eserver-pap 3666/udp # IBM EServer PAP +eserver-pap 3666/tcp # IBM eServer PAP +# Dave Gimpl January 2003 +infoexch 3667/udp # IBM Information Exchange +infoexch 3667/tcp # IBM Information Exchange +# Paul Ford-Hutchinson January 2003 +dell-rm-port 3668/udp # Dell Remote Management +dell-rm-port 3668/tcp # Dell Remote Management +# Bradley Bransom January 2003 +casanswmgmt 3669/udp # CA SAN Switch Management +casanswmgmt 3669/tcp # CA SAN Switch Management +# Emre Tunar January 2003 +smile 3670/udp # SMILE TCP/UDP Interface +smile 3670/tcp # SMILE TCP/UDP Interface +# Andre Petras January 2003 +efcp 3671/udp # e Field Control (EIBnet) +efcp 3671/tcp # e Field Control (EIBnet) +# Marc Goossens January 2003 +lispworks-orb 3672/udp # LispWorks ORB +lispworks-orb 3672/tcp # LispWorks ORB +# Lisp Support +mediavault-gui 3673/udp # Openview Media Vault GUI +mediavault-gui 3673/tcp # Openview Media Vault GUI +# Stephen Gold January 2003 +wininstall-ipc 3674/udp # WinINSTALL IPC Port +wininstall-ipc 3674/tcp # WinINSTALL IPC Port +# Bill Somerville January 2003 +calltrax 3675/udp # CallTrax Data Port +calltrax 3675/tcp # CallTrax Data Port +# Oliver Bailey January 2003 +va-pacbase 3676/udp # VisualAge Pacbase server +va-pacbase 3676/tcp # VisualAge Pacbase server +# Dominique Lelievre January 2003 +roverlog 3677/udp # RoverLog IPC +roverlog 3677/tcp # RoverLog IPC +# Tom Mayo January 2003 +ipr-dglt 3678/udp # DataGuardianLT +ipr-dglt 3678/tcp # DataGuardianLT +# Bruce Carlson January 2003 +newton-dock 3679/udp # Newton Dock +newton-dock 3679/tcp # Newton Dock +npds-tracker 3680/udp # NPDS Tracker +npds-tracker 3680/tcp # NPDS Tracker +# Paul Guyot January 2003 +bts-x73 3681/udp # BTS X73 Port +bts-x73 3681/tcp # BTS X73 Port +# Todd Cooper January 2003 +cas-mapi 3682/udp # EMC SmartPackets-MAPI +cas-mapi 3682/tcp # EMC SmartPackets-MAPI +# Koen Schoofs January 2003 +bmc-ea 3683/udp # BMC EDV/EA +bmc-ea 3683/tcp # BMC EDV/EA +# Jeffrey Glanz January 2003 +faxstfx-port 3684/udp # FAXstfX +faxstfx-port 3684/tcp # FAXstfX +# Alec Carlson January 2003 +dsx-agent 3685/udp # DS Expert Agent +dsx-agent 3685/tcp # DS Expert Agent +# NetPro Computing January 2003 +tnmpv2 3686/udp # Trivial Network Management +tnmpv2 3686/tcp # Trivial Network Management +# Andrea Premoli January 2003 +simple-push 3687/udp # simple-push +simple-push 3687/tcp # simple-push +simple-push-s 3688/udp # simple-push Secure +simple-push-s 3688/tcp # simple-push Secure +# C. Enrique Ortiz January 2003 +daap 3689/udp # Digital Audio Access Protocol +daap 3689/tcp # Digital Audio Access Protocol +# Amandeep Jawa January 2003 +svn 3690/udp # Subversion +svn 3690/tcp # Subversion +# Greg Hudson January 2003 +magaya-network 3691/udp # Magaya Network Port +magaya-network 3691/tcp # Magaya Network Port +# Jesus David Rodriguez February 2003 +intelsync 3692/udp # Brimstone IntelSync +intelsync 3692/tcp # Brimstone IntelSync +# Davey Taylor February 2003 +gttp 3693/udp # GTTP +gttp 3693/tcp # GTTP +vpncpp 3694/udp # VPN Cookie Prop Protocol +vpncpp 3694/tcp # VPN Cookie Prop Protocol +# Rondald P. Bonica February 2003 +bmc-data-coll 3695/udp # BMC Data Collection +bmc-data-coll 3695/tcp # BMC Data Collection +# Randall De Weerd February 2003 +telnetcpcd 3696/udp # Telnet Com Port Control +telnetcpcd 3696/tcp # Telnet Com Port Control +# Thomas J. Pinkl February 2003 +nw-license 3697/udp # NavisWorks Licnese System +nw-license 3697/tcp # NavisWorks License System +# Tim Wiegand February 2003 +sagectlpanel 3698/udp # SAGECTLPANEL +sagectlpanel 3698/tcp # SAGECTLPANEL +# Mark Gamble February 2003 +kpn-icw 3699/udp # Internet Call Waiting +kpn-icw 3699/tcp # Internet Call Waiting +# B.J. Kortekaas February 2003 +lrs-paging 3700/udp # LRS NetPage +lrs-paging 3700/tcp # LRS NetPage +# Geoffrey Wossum February 2003 +netcelera 3701/udp # NetCelera +netcelera 3701/tcp # NetCelera +# Tarek Nabhan February 2003 +upnp-discovery 3702/udp # UPNP v2 Discovery +upnp-discovery 3702/tcp # UPNP v2 Discovery +# Christian Huitema February 2003 +adobeserver-3 3703/udp # Adobe Server 3 +adobeserver-3 3703/tcp # Adobe Server 3 +adobeserver-4 3704/udp # Adobe Server 4 +adobeserver-4 3704/tcp # Adobe Server 4 +adobeserver-5 3705/udp # Adobe Server 5 +adobeserver-5 3705/tcp # Adobe Server 5 +# Frank Soetebeer January 2003 +rt-event 3706/udp # Real-Time Event Port +rt-event 3706/tcp # Real-Time Event Port +rt-event-s 3707/udp # Real-Time Event Secure Port +rt-event-s 3707/tcp # Real-Time Event Secure Port +# Terry Gin February 2003 +sun-as-iiops 3708/tcp # Sun App Svr - Naming +sun-as-iiops 3708/udp # Sun App Svr - Naming +# 3709 Unassigned +ca-idms 3709/udp # CA-IDMS Server +ca-idms 3709/tcp # CA-IDMS Server +# Dave Ross +portgate-auth 3710/udp # PortGate Authentication +portgate-auth 3710/tcp # PortGate Authentication +# Scott Harris February 2003 +edb-server2 3711/udp # EBD Server 2 +edb-server2 3711/tcp # EBD Server 2 +# Carlos Portela February 2003 +sentinel-ent 3712/udp # Sentinel Enterprise +sentinel-ent 3712/tcp # Sentinel Enterprise +# Ian Gordon March 2003 +tftps 3713/udp # TFTP over TLS +tftps 3713/tcp # TFTP over TLS +# Mark mayernick March 2003 +delos-dms 3714/udp # DELOS Direct Messaging +delos-dms 3714/tcp # DELOS Direct Messaging +# Ekkehard Morgenstern March 2003 +anoto-rendezv 3715/udp # Anoto Rendezvous Port +anoto-rendezv 3715/tcp # Anoto Rendezvous Port +# Ola Sandstrom March 2003 +wv-csp-sms-cir 3716/udp # WV CSP SMS CIR Channel +wv-csp-sms-cir 3716/tcp # WV CSP SMS CIR Channel +wv-csp-udp-cir 3717/udp # WV CSP UDP/IP CIR Channel +wv-csp-udp-cir 3717/tcp # WV CSP UDP/IP CIR Channel +# Jon Ingi Ingimundarson March 2003 +opus-services 3718/udp # OPUS Server Port +opus-services 3718/tcp # OPUS Server Port +# Detlef Stoever March 2003 +itelserverport 3719/udp # iTel Server Port +itelserverport 3719/tcp # iTel Server Port +# Mark Hendricks March 2003 +ufastro-instr 3720/udp # UF Astro. Instr. Services +ufastro-instr 3720/tcp # UF Astro. Instr. Services +# David B. Hon March 2003 +xsync 3721/udp # Xsync +xsync 3721/tcp # Xsync +xserveraid 3722/udp # Xserver RAID +xserveraid 3722/tcp # Xserver RAID +# Bob Bradley March 2003 +sychrond 3723/udp # Sychron Service Daemon +sychrond 3723/tcp # Sychron Service Daemon +# Robert Marinelli March 2003 +battlenet 3724/udp # Blizzard Battlenet +battlenet 3724/tcp # Blizzard Battlenet +# Adrian Luff March 2003 +na-er-tip 3725/udp # Netia NA-ER Port +na-er-tip 3725/tcp # Netia NA-ER Port +# Jean-Pierre Garcia April 2003 +array-manager 3726/udp # Xyartex Array Manager +array-manager 3726/tcp # Xyratex Array Manager +# David A. Lethe April 2003 +e-mdu 3727/udp # Ericsson Mobile Data Unit +e-mdu 3727/tcp # Ericsson Mobile Data Unit +e-woa 3728/udp # Ericsson Web on Air +e-woa 3728/tcp # Ericsson Web on Air +# Marco Casole April 2003 +fksp-audit 3729/udp # Fireking Audit Port +fksp-audit 3729/tcp # Fireking Audit Port +# Richard Thurman April 2003 +client-ctrl 3730/udp # Client Control +client-ctrl 3730/tcp # Client Control +# Lawrence W. Dunn April 2003 +smap 3731/udp # Service Manager +smap 3731/tcp # Service Manager +m-wnn 3732/udp # Mobile Wnn +m-wnn 3732/tcp # Mobile Wnn +# Yasunari Yamashita April 2003 +multip-msg 3733/udp # Multipuesto Msg Port +multip-msg 3733/tcp # Multipuesto Msg Port +# Felisa Ares April 2003 +synel-data 3734/udp # Synel Data Collection Port +synel-data 3734/tcp # Synel Data Collection Port +# David Ashkenazi April 2003 +pwdis 3735/udp # Password Distribution +pwdis 3735/tcp # Password Distribution +# Robert Erl April 2003 +rs-rmi 3736/udp # RealSpace RMI +rs-rmi 3736/tcp # RealSpace RMI +# Barry McDarby April 2003 +# 3737 Unassigned (Removed 2003-02-26) +versatalk 3738/udp # versaTalk Server Port +versatalk 3738/tcp # versaTalk Server Port +# Dr. Kingsley C. Nwosu April 2003 +launchbird-lm 3739/udp # Launchbird LicenseManager +launchbird-lm 3739/tcp # Launchbird LicenseManager +# Tom Hawkins April 2003 +heartbeat 3740/udp # Heartbeat Protocol +heartbeat 3740/tcp # Heartbeat Protocol +# Jeroen Massar April 2003 +wysdma 3741/udp # WysDM Agent +wysdma 3741/tcp # WysDM Agent +# Jim McDonald April 2003 +cst-port 3742/udp # CST - Configuration & Service Tracker +cst-port 3742/tcp # CST - Configuration & Service Tracker +# Hai Ou-Yang April 2003 +ipcs-command 3743/udp # IP Control Systems Ltd. +ipcs-command 3743/tcp # IP Control Systems Ltd. +# Paul Anderson April 2003 +sasg 3744/udp # SASG +sasg 3744/tcp # SASG +# Cristian Petculescu April 2003 +gw-call-port 3745/udp # GWRTC Call Port +gw-call-port 3745/tcp # GWRTC Call Port +# Felisa Ares April 2003 +linktest 3746/udp # LXPRO.COM LinkTest +linktest 3746/tcp # LXPRO.COM LinkTest +linktest-s 3747/udp # LXPRO.COM LinkTest SSL +linktest-s 3747/tcp # LXPRO.COM LinkTest SSL +# Greg Bailey April 2003 +webdata 3748/udp # webData +webdata 3748/tcp # webData +# Michael Whiteley April 2003 +cimtrak 3749/udp # CimTrak +cimtrak 3749/tcp # CimTrak +cbos-ip-port 3750/udp # CBOS/IP ncapsalatoin port +cbos-ip-port 3750/tcp # CBOS/IP ncapsalation port +# Thomas Dannemiller April 2003 +gprs-cube 3751/udp # CommLinx GPRS Cube +gprs-cube 3751/tcp # CommLinx GPRS Cube +# Peter Johnson April 2003 +vipremoteagent 3752/udp # Vigil-IP RemoteAgent +vipremoteagent 3752/tcp # Vigil-IP RemoteAgent +# Bryan Alvord April 2003 +nattyserver 3753/udp # NattyServer Port +nattyserver 3753/tcp # NattyServer Port +# Akira Saito April 2003 +timestenbroker 3754/udp # TimesTen Broker Port +timestenbroker 3754/tcp # TimesTen Broker Port +# David Aspinwall April 2003 +sas-remote-hlp 3755/udp # SAS Remote Help Server +sas-remote-hlp 3755/tcp # SAS Remote Help Server +# Gary T. Ciampa April 2003 +canon-capt 3756/udp # Canon CAPT Port +canon-capt 3756/tcp # Canon CAPT Port +# Takashi Okazawa April 2003 +grf-port 3757/udp # GRF Server Port +grf-port 3757/tcp # GRF Server Port +# Robert Banfill April 2003 +apw-registry 3758/udp # apw RMI registry +apw-registry 3758/tcp # apw RMI registry +# Dan Davis April 2003 +exapt-lmgr 3759/udp # Exapt License Manager +exapt-lmgr 3759/tcp # Exapt License Manager +# Christoph Kukulies April 2003 +adtempusclient 3760/udp # adTEmpus Client +adtempusclient 3760/tcp # adTempus Client +# Bill Wingate May 2003 +gsakmp 3761/udp # gsakmp port +gsakmp 3761/tcp # gsakmp port +# Uri Meth June 2003 +gbs-smp 3762/udp # GBS SnapMail Protocol +gbs-smp 3762/tcp # GBS SnapMail Protocol +# Eric Harris-Braun June 2003 +xo-wave 3763/udp # XO Wave Control Port +xo-wave 3763/tcp # XO Wave Control Port +# Bjorn Dittmer-Roche June 2003 +mni-prot-rout 3764/udp # MNI Protected Routing +mni-prot-rout 3764/tcp # MNI Protected Routing +# Tim Behne June 2003 +rtraceroute 3765/udp # Remote Traceroute +rtraceroute 3765/tcp # Remote Traceroute +# A. Blake Cooper June 2003 +listmgr-port 3767/udp # ListMGR Port +listmgr-port 3767/tcp # ListMGR Port +# Takashi Kubota June 2003 +rblcheckd 3768/udp # rblcheckd server daemon +rblcheckd 3768/tcp # rblcheckd server daemon +# Sabri Berisha June 2003 +haipe-otnk 3769/udp # HAIPE Network Keying +haipe-otnk 3769/tcp # HAIPE Network Keying +# Mike Irani June 2003 +cindycollab 3770/udp # Cinderella Collaboration +cindycollab 3770/tcp # Cinderella Collaboration +# Ulrich Kortenkamp June 2003 +paging-port 3771/udp # RTP Paging Port +paging-port 3771/tcp # RTP Paging Port +# Patrick Ferriter June 2003 +ctp 3772/udp # Chantry Tunnel Protocol +ctp 3772/tcp # Chantry Tunnel Protocol +# Inderpreet Singh June 2003 +ctdhercules 3773/udp # ctdhercules +ctdhercules 3773/tcp # ctdhercules +# Carl Banzhof June 2003 +zicom 3774/udp # ZICOM +zicom 3774/tcp # ZICOM +# Sabu Das June 2003 +ispmmgr 3775/udp # ISPM Manager Port +ispmmgr 3775/tcp # ISPM Manager Port +# Eric Anderson June 2003 +dvcprov-port 3776/tcp # Device Provisioning Port +dvcprov-port 3776/udp # Device Provisioning Port +# 3777 Unassigned +jibe-eb 3777/udp # Jibe EdgeBurst +jibe-eb 3777/tcp # Jibe EdgeBurst +# Chap Tippin June 2003 +c-h-it-port 3778/udp # Cutler-Hammer IT Port +c-h-it-port 3778/tcp # Cutler-Hammer IT Port +# Thomas Ruchti June 2003 +cognima 3779/udp # Cognima Replication +cognima 3779/tcp # Cognima Replication +# Raplh Grenwell June 2003 +nnp 3780/udp # Nuzzler Network Protocol +nnp 3780/tcp # Nuzzler Network Protocol +# Andreas Schwarz June 2003 +abcvoice-port 3781/udp # ABCvoice server port +abcvoice-port 3781/tcp # ABCvoice server port +# Carlos Gonzalez-Roman Ferrer June 2003 +iso-tp0s 3782/udp # Secure ISO TP0 port +iso-tp0s 3782/tcp # Secure ISO TP0 port +# Herbert Falk June 2003 +bim-pem 3783/tcp # Impact Mgr./PEM Gateway +bim-pem 3783/udp # Impact Mgr./PEM Gateway +bfd-control 3784/tcp # BFD Control Protocol +bfd-control 3784/udp # BFD Control Protocol +bfd-echo 3785/tcp # BFD Echo Protocol +bfd-echo 3785/udp # BFD Echo Protocol +upstriggervsw 3786/tcp # VSW Upstrigger port +upstriggervsw 3786/udp # VSW Upstrigger port +fintrx 3787/tcp # Fintrx +fintrx 3787/udp # Fintrx +isrp-port 3788/tcp # SPACEWAY Routing port +isrp-port 3788/udp # SPACEWAY Routing port +remotedeploy 3789/tcp # RemoteDeploy Administration Port +remotedeploy 3789/udp # RemoteDeploy Administration Port +quickbooksrds 3790/tcp # QuickBooks RDS +quickbooksrds 3790/udp # QuickBooks RDS +tvnetworkvideo 3791/tcp # TV NetworkVideo Data port +tvnetworkvideo 3791/udp # TV NetworkVideo Data port +sitewatch 3792/tcp # e-Watch Corporation SiteWatch +sitewatch 3792/udp # e-Watch Corporation SiteWatch +dcsoftware 3793/tcp # DataCore Software +dcsoftware 3793/udp # DataCore Software +jaus 3794/tcp # JAUS Robots +jaus 3794/udp # JAUS Robots +myblast 3795/tcp # myBLAST Mekentosj port +myblast 3795/udp # myBLAST Mekentosj port +spw-dialer 3796/tcp # Spaceway Dialer +spw-dialer 3796/udp # Spaceway Dialer +idps 3797/tcp # idps +idps 3797/udp # idps +minilock 3798/tcp # Minilock +minilock 3798/udp # Minilock +radius-dynauth 3799/tcp # RADIUS Dynamic Authorization +radius-dynauth 3799/udp # RADIUS Dynamic Authorization +# 3800 Unassigned +pwgpsi 3800/udp # Print Services Interface +pwgpsi 3800/tcp # Print Services Interface +# Harry Lewis May 2003 +ibm-mgr 3801/tcp # ibm manager service +ibm-mgr 3801/udp # ibm manager service +# 3802 Unassigned +vhd 3802/udp # VHD +vhd 3802/tcp # VHD +# Chris Duncombe +soniqsync 3803/tcp # SoniqSync +soniqsync 3803/udp # SoniqSync +iqnet-port 3804/tcp # Harman IQNet Port +iqnet-port 3804/udp # Harman IQNet Port +tcpdataserver 3805/tcp # ThorGuard Server Port +tcpdataserver 3805/udp # ThorGuard Server Port +wsmlb 3806/tcp # Remote System Manager +wsmlb 3806/udp # Remote System Manager +spugna 3807/tcp # SpuGNA Communication Port +spugna 3807/udp # SpuGNA Communication Port +sun-as-iiops-ca 3808/tcp # Sun App Svr-IIOPClntAuth +sun-as-iiops-ca 3808/udp # Sun App Svr-IIOPClntAuth +apocd 3809/tcp # Java Desktop System Configuration Agent +apocd 3809/udp # Java Desktop System Configuration Agent +wlanauth 3810/tcp # WLAN AS server +wlanauth 3810/udp # WLAN AS server +amp 3811/tcp # AMP +amp 3811/udp # AMP +neto-wol-server 3812/tcp # netO WOL Server +neto-wol-server 3812/udp # netO WOL Server +rap-ip 3813/tcp # Rhapsody Interface Protocol +rap-ip 3813/udp # Rhapsody Interface Protocol +neto-dcs 3814/tcp # netO DCS +neto-dcs 3814/udp # netO DCS +lansurveyorxml 3815/tcp # LANsurveyor XML +lansurveyorxml 3815/udp # LANsurveyor XML +sunlps-http 3816/tcp # Sun Local Patch Server +sunlps-http 3816/udp # Sun Local Patch Server +tapeware 3817/tcp # Yosemite Tech Tapeware +tapeware 3817/udp # Yosemite Tech Tapeware +crinis-hb 3818/tcp # Crinis Heartbeat +crinis-hb 3818/udp # Crinis Heartbeat +epl-slp 3819/tcp # EPL Sequ Layer Protocol +epl-slp 3819/udp # EPL Sequ Layer Protocol +scp 3820/tcp # Siemens AuD SCP +scp 3820/udp # Siemens AuD SCP +pmcp 3821/tcp # ATSC PMCP Standard +pmcp 3821/udp # ATSC PMCP Standard +acp-discovery 3822/tcp # Compute Pool Discovery +acp-discovery 3822/udp # Compute Pool Discovery +acp-conduit 3823/tcp # Compute Pool Conduit +acp-conduit 3823/udp # Compute Pool Conduit +acp-policy 3824/tcp # Compute Pool Policy +acp-policy 3824/udp # Compute Pool Policy +# 3825-3830 Unassigned +dvapps 3831/tcp # Docsvault Application Service +dvapps 3831/udp # Docsvault Application Service +xxnetserver 3832/tcp # xxNETserver +xxnetserver 3832/udp # xxNETserver +aipn-auth 3833/tcp # AIPN LS Authentication +aipn-auth 3833/udp # AIPN LS Authentication +spectardata 3834/tcp # Spectar Data Stream Service +spectardata 3834/udp # Spectar Data Stream Service +spectardb 3835/tcp # Spectar Database Rights Service +spectardb 3835/udp # Spectar Database Rights Service +markem-dcp 3836/tcp # MARKEM NEXTGEN DCP +markem-dcp 3836/udp # MARKEM NEXTGEN DCP +mkm-discovery 3837/tcp # MARKEM Auto-Discovery +mkm-discovery 3837/udp # MARKEM Auto-Discovery +sos 3838/tcp # Scito Object Server +sos 3838/udp # Scito Object Server +amx-rms 3839/tcp # AMX Resource Management Suite +amx-rms 3839/udp # AMX Resource Management Suite +flirtmitmir 3840/tcp # www.FlirtMitMir.de +flirtmitmir 3840/udp # www.FlirtMitMir.de +zfirm-shiprush3 3841/tcp # Z-Firm ShipRush v3 +zfirm-shiprush3 3841/udp # Z-Firm ShipRush v3 +nhci 3842/tcp # NHCI status port +nhci 3842/udp # NHCI status port +quest-agent 3843/tcp # Quest Common Agent +quest-agent 3843/udp # Quest Common Agent +rnm 3844/tcp # RNM +rnm 3844/udp # RNM +# 3845 Unassigned +v-one-spp 3845/udp # V-ONE Single Port Proxy +v-one-spp 3845/tcp # V-ONE Single Port Proxy +# Daniel Becker +an-pcp 3846/tcp # Astare Network PCP +an-pcp 3846/udp # Astare Network PCP +msfw-control 3847/tcp # MS Firewall Control +msfw-control 3847/udp # MS Firewall Control +item 3848/tcp # IT Environmental Monitor +item 3848/udp # IT Environmental Monitor +spw-dnspreload 3849/tcp # SPACEWAY DNS Preload +spw-dnspreload 3849/udp # SPACEWAY DNS Prelaod +qtms-bootstrap 3850/tcp # QTMS Bootstrap Protocol +qtms-bootstrap 3850/udp # QTMS Bootstrap Protocol +spectraport 3851/tcp # SpectraTalk Port +spectraport 3851/udp # SpectraTalk Port +sse-app-config 3852/tcp # SSE App Configuration +sse-app-config 3852/udp # SSE App Configuration +sscan 3853/tcp # SONY scanning protocol +sscan 3853/udp # SONY scanning protocol +stryker-com 3854/tcp # Stryker Comm Port +stryker-com 3854/udp # Stryker Comm Port +opentrac 3855/tcp # OpenTRAC +opentrac 3855/udp # OpenTRAC +informer 3856/tcp # INFORMER +informer 3856/udp # INFORMER +trap-port 3857/tcp # Trap Port +trap-port 3857/udp # Trap Port +trap-port-mom 3858/tcp # Trap Port MOM +trap-port-mom 3858/udp # Trap Port MOM +nav-port 3859/tcp # Navini Port +nav-port 3859/udp # Navini Port +sasp 3860/tcp # Server/Application State Protocol (SASP) +sasp 3860/udp # Server/Application State Protocol (SASP) +# 3861 Unassigned +winshadow-hd 3861/udp # winShadow Host Discovery +winshadow-hd 3861/tcp # winShadow Host Discovery +# Shu-Wei Tan March 2003 +giga-pocket 3862/udp # GIGA-POCKET +giga-pocket 3862/tcp # GIGA-POCKET +# Yoshikazu Watanabe +asap-tcp 3863/tcp # asap tcp port +asap-udp 3863/udp # asap udp port +asap-tcp-tls 3864/tcp # asap/tls tcp port +xpl 3865/tcp # xpl automation protocol +xpl 3865/udp # xpl automation protocol +dzdaemon 3866/tcp # Sun SDViz DZDAEMON Port +dzdaemon 3866/udp # Sun SDViz DZDAEMON Port +dzoglserver 3867/tcp # Sun SDViz DZOGLSERVER Port +dzoglserver 3867/udp # Sun SDViz DZOGLSERVER Port +diameter 3868/tcp # DIAMETER +# RFC-ietf-aaa-diameter-17.txt +ovsam-mgmt 3869/tcp # hp OVSAM MgmtServer Disco +ovsam-mgmt 3869/udp # hp OVSAM MgmtServer Disco +ovsam-d-agent 3870/tcp # hp OVSAM HostAgent Disco +ovsam-d-agent 3870/udp # hp OVSAM HostAgent Disco +avocent-adsap 3871/tcp # Avocent DS Authorization +avocent-adsap 3871/udp # Avocent DS Authorization +oem-agent 3872/tcp # OEM Agent +oem-agent 3872/udp # OEM Agent +fagordnc 3873/tcp # fagordnc +fagordnc 3873/udp # fagordnc +sixxsconfig 3874/tcp # SixXS Configuration +sixxsconfig 3874/udp # SixXS Configuration +# 3875 Unassigned +pnbscada 3875/udp # PNBSCADA +pnbscada 3875/tcp # PNBSCADA +# Philip N. Bergstresser +dl_agent 3876/tcp # DirectoryLockdown Agent +dl_agent 3876/udp # DirectoryLockdown Agent +xmpcr-interface 3877/tcp # XMPCR Interface Port +xmpcr-interface 3877/udp # XMPCR Interface Port +fotogcad 3878/tcp # FotoG CAD interface +fotogcad 3878/udp # FotoG CAD interface +appss-lm 3879/tcp # appss license manager +appss-lm 3879/udp # appss license manager +igrs 3880/tcp # IGRS +igrs 3880/udp # IGRS +idac 3881/tcp # Data Acquisition and Control +idac 3881/udp # Data Acquisition and Control +msdts1 3882/tcp # DTS Service Port +msdts1 3882/udp # DTS Service Port +vrpn 3883/tcp # VR Peripheral Network +vrpn 3883/udp # VR Peripheral Network +softrack-meter 3884/tcp # SofTrack Metering +softrack-meter 3884/udp # SofTrack Metering +# 3885 Unassigned +topflow-ssl 3885/udp # TopFlow SSL +topflow-ssl 3885/tcp # TopFlow SSL +# Ken Nelson +nei-management 3886/tcp # NEI management port +nei-management 3886/udp # NEI management port +ciphire-data 3887/tcp # Ciphire Data Transport +ciphire-data 3887/udp # Ciphire Data Transport +ciphire-serv 3888/tcp # Ciphire Services +ciphire-serv 3888/udp # Ciphire Services +dandv-tester 3889/tcp # D and V Tester Control Port +dandv-tester 3889/udp # D and V Tester Control Port +ndsconnect 3890/tcp # Niche Data Server Connect +ndsconnect 3890/udp # Niche Data Server Connect +rtc-pm-port 3891/tcp # Oracle RTC-PM port +rtc-pm-port 3891/udp # Oracle RTC-PM port +pcc-image-port 3892/tcp # PCC-image-port +pcc-image-port 3892/udp # PCC-image-port +cgi-starapi 3893/tcp # CGI StarAPI Server +cgi-starapi 3893/udp # CGI StarAPI Server +syam-agent 3894/tcp # SyAM Agent Port +syam-agent 3894/udp # SyAM Agent Port +syam-smc 3895/tcp # SyAm SMC Service Port +syam-smc 3895/udp # SyAm SMC Service Port +sdo-tls 3896/tcp # Simple Distributed Objects over TLS +sdo-tls 3896/udp # Simple Distributed Objects over TLS +sdo-ssh 3897/tcp # Simple Distributed Objects over SSH +sdo-ssh 3897/udp # Simple Distributed Objects over SSH +senip 3898/tcp # IAS, Inc. SmartEye NET Internet Protocol +senip 3898/udp # IAS, Inc. SmartEye NET Internet Protocol +itv-control 3899/tcp # ITV Port +itv-control 3899/udp # ITV Port +# 3900 Unassigned +udt_os 3900/udp # Unidata UDT OS +udt_os 3900/tcp # Unidata UDT OS +# James Powell +nimsh 3901/tcp # NIM Service Handler +nimsh 3901/udp # NIM Service Handler +nimaux 3902/tcp # NIMsh Auxiliary Port +nimaux 3902/udp # NIMsh Auxiliary Port +charsetmgr 3903/tcp # CharsetMGR +charsetmgr 3903/udp # CharsetMGR +omnilink-port 3904/tcp # Arnet Omnilink Port +omnilink-port 3904/udp # Arnet Omnilink Port +mupdate 3905/tcp # Mailbox Update (MUPDATE) protocol +mupdate 3905/udp # Mailbox Update (MUPDATE) protocol +topovista-data 3906/tcp # TopoVista elevation data +topovista-data 3906/udp # TopoVista elevation data +imoguia-port 3907/tcp # Imoguia Port +imoguia-port 3907/udp # Imoguia Port +hppronetman 3908/tcp # HP Procurve NetManagement +hppronetman 3908/udp # HP Procurve NetManagement +surfcontrolcpa 3909/tcp # SurfControl CPA +surfcontrolcpa 3909/udp # SurfControl CPA +prnrequest 3910/tcp # Printer Request Port +prnrequest 3910/udp # Printer Request Port +prnstatus 3911/tcp # Printer Status Port +prnstatus 3911/udp # Printer Status Port +gbmt-stars 3912/tcp # Global Maintech Stars +gbmt-stars 3912/udp # Global Maintech Stars +listcrt-port 3913/tcp # ListCREATOR Port +listcrt-port 3913/udp # ListCREATOR Port +listcrt-port-2 3914/tcp # ListCREATOR Port 2 +listcrt-port-2 3914/udp # ListCREATOR Port 2 +agcat 3915/tcp # Auto-Graphics Cataloging +agcat 3915/udp # Auto-Graphics Cataloging +wysdmc 3916/tcp # WysDM Controller +wysdmc 3916/udp # WysDM Controller +aftmux 3917/tcp # AFT multiplex port +aftmux 3917/udp # AFT multiples port +pktcablemmcops 3918/tcp # PacketCableMultimediaCOPS +pktcablemmcops 3918/udp # PacketCableMultimediaCOPS +hyperip 3919/tcp # HyperIP +hyperip 3919/udp # HyperIP +exasoftport1 3920/tcp # Exasoft IP Port +exasoftport1 3920/udp # Exasoft IP Port +herodotus-net 3921/tcp # Herodotus Net +herodotus-net 3921/udp # Herodotus Net +sor-update 3922/tcp # Soronti Update Port +sor-update 3922/udp # Soronti Update Port +symb-sb-port 3923/tcp # Symbian Service Broker +symb-sb-port 3923/udp # Symbian Service Broker +mpl-gprs-port 3924/tcp # MPL_GPRS_PORT +mpl-gprs-port 3924/udp # MPL_GPRS_Port +zmp 3925/tcp # Zoran Media Port +zmp 3925/udp # Zoran Media Port +winport 3926/tcp # WINPort +winport 3926/udp # WINPort +natdataservice 3927/tcp # ScsTsr +natdataservice 3927/udp # ScsTsr +netboot-pxe 3928/tcp # PXE NetBoot Manager +netboot-pxe 3928/udp # PXE NetBoot Manager +smauth-port 3929/tcp # AMS Port +smauth-port 3929/udp # AMS Port +syam-webserver 3930/tcp # Syam Web Server Port +syam-webserver 3930/udp # Syam Web Server Port +msr-plugin-port 3931/tcp # MSR Plugin Port +msr-plugin-port 3931/udp # MSR Plugin Port +dyn-site 3932/tcp # Dynamic Site System +dyn-site 3932/udp # Dynamic Site System +plbserve-port 3933/tcp # PL/B App Server User Port +plbserve-port 3933/udp # PL/B App Server User Port +sunfm-port 3934/tcp # PL/B File Manager Port +sunfm-port 3934/udp # PL/B File Manager Port +sdp-portmapper 3935/tcp # SDP Port Mapper Protocol +sdp-portmapper 3935/udp # SDP Port Mapper Protocol +mailprox 3936/tcp # Mailprox +mailprox 3936/udp # Mailprox +dvbservdscport 3937/tcp # DVB Service Disc Port +dvbservdscport 3937/udp # DVB Service Disc Port +dbcontrol_agent 3938/tcp # Oracle dbControl Agent po +dbcontrol_agent 3938/udp # Oracel dbControl Agent po +# 3939 Unassigned +aamp 3939/udp # Anti-virus Application Management Port +aamp 3939/tcp # Anti-virus Application Management Port +# In-sik Choi February 2002 +xecp-node 3940/tcp # XeCP Node Service +xecp-node 3940/udp # XeCP Node Service +homeportal-web 3941/tcp # Home Portal Web Server +homeportal-web 3941/udp # Home Portal Web Server +srdp 3942/tcp # satellite distribution +srdp 3942/udp # satellite distribution +tig 3943/tcp # TetraNode Ip Gateway +tig 3943/udp # TetraNode Ip Gateway +sops 3944/tcp # S-Ops Management +sops 3944/udp # S-Ops Management +emcads 3945/tcp # EMCADS Server Port +emcads 3945/udp # EMCADS Server Port +backupedge 3946/tcp # BackupEDGE Server +backupedge 3946/udp # BackupEDGE Server +ccp 3947/tcp # Connect and Control Protocol for Consumer, Commercial, and Industrial Electronic Devices +ccp 3947/udp # Connect and Control Protocol for Consumer, Commercial, and Industrial Electronic Devices +apdap 3948/tcp # Anton Paar Device Administration Protocol +apdap 3948/udp # Anton Paar Device Administration Protocol +drip 3949/tcp # Dynamic Routing Information Protocol +drip 3949/udp # Dynamic Routing Information Protocol +namemunge 3950/tcp # Name Munging +namemunge 3950/udp # Name Munging +pwgippfax 3951/tcp # PWG IPP Facsimile +pwgippfax 3951/udp # PWG IPP Facsimile +i3-sessionmgr 3952/tcp # I3 Session Manager +i3-sessionmgr 3952/udp # I3 Session Manager +xmlink-connect 3953/tcp # Eydeas XMLink Connect +xmlink-connect 3953/udp # Eydeas XMLink Connect +adrep 3954/tcp # AD Replication RPC +adrep 3954/udp # AD Replication RPC +p2pcommunity 3955/tcp # p2pCommunity +p2pcommunity 3955/udp # p2pCommunity +gvcp 3956/tcp # GigE Vision Control +gvcp 3956/udp # GigE Vision Control +mqe-broker 3957/tcp # MQEnterprise Broker +mqe-broker 3957/udp # MQEnterprise Broker +mqe-agent 3958/tcp # MQEnterprise Agent +mqe-agent 3958/udp # MQEnterprise Agent +treehopper 3959/tcp # Tree Hopper Networking +treehopper 3959/udp # Tree Hopper Networking +bess 3960/tcp # Bess Peer Assessment +bess 3960/udp # Bess Peer Assessment +proaxess 3961/tcp # ProAxess Server +proaxess 3961/udp # ProAxess Server +sbi-agent 3962/tcp # SBI Agent Protocol +sbi-agent 3962/udp # SBI Agent Protocol +thrp 3963/tcp # Teran Hybrid Routing Protocol +thrp 3963/udp # Teran Hybrid Routing Protocol +sasggprs 3964/tcp # SASG GPRS +sasggprs 3964/udp # SASG GPRS +ati-ip-to-ncpe 3965/tcp # Avanti IP to NCPE API +ati-ip-to-ncpe 3965/udp # Avanti IP to NCPE API +bflckmgr 3966/tcp # BuildForge Lock Manager +bflckmgr 3966/udp # BuildForge Lock Manager +ppsms 3967/tcp # PPS Message Service +ppsms 3967/udp # PPS Message Service +ianywhere-dbns 3968/tcp # iAnywhere DBNS +ianywhere-dbns 3968/udp # iAnywhere DBNS +landmarks 3969/tcp # Landmark Messages +landmarks 3969/udp # Landmark Messages +lanrevagent 3970/tcp # LANrev Agent +lanrevagent 3970/udp # LANrev Agent +lanrevserver 3971/tcp # LANrev Server +lanrevserver 3971/udp # LANrev Server +iconp 3972/tcp # ict-control Protocol +iconp 3972/udp # ict-control Protocol +progistics 3973/tcp # ConnectShip Progistics +progistics 3973/udp # ConnectShip Progistics +citysearch 3974/tcp # Remote Applicant Tracking Service +citysearch 3974/udp # Remote Applicant Tracking Service +airshot 3975/tcp # Air Shot +airshot 3975/udp # Air Shot +opswagent 3976/tcp # Opsware Agent +opswagent 3976/udp # Opsware Agent +opswmanager 3977/tcp # Opsware Manager +opswmanager 3977/udp # Opsware Manager +secure-cfg-svr 3978/tcp # Secured Configuration Server +secure-cfg-svr 3978/udp # Secured Configuration Server +smwan 3979/tcp # Smith Micro Wide Area Network Service +smwan 3979/udp # Smith Micro Wide Area Network Service +acms 3980/tcp # Aircraft Cabin Management System +acms 3980/udp # Aircraft Cabin Management System +starfish 3981/tcp # Starfish System Admin +starfish 3981/udp # Starfish System Admin +eis 3982/tcp # ESRI Image Server +eis 3982/udp # ESRI Image Server +eisp 3983/tcp # ESRI Image Service +eisp 3983/udp # ESRI Image Service +# 3984 Unassigned +mapper-nodemgr 3984/udp # MAPPER network node manager +mapper-nodemgr 3984/tcp # MAPPER network node manager +mapper-mapethd 3985/udp # MAPPER TCP/IP server +mapper-mapethd 3985/tcp # MAPPER TCP/IP server +mapper-ws_ethd 3986/udp # MAPPER workstation server +mapper-ws_ethd 3986/tcp # MAPPER workstation server +# John C. Horton +centerline 3987/udp # Centerline +centerline 3987/tcp # Centerline +# Mark Simpson +dcs-config 3988/tcp # DCS Configuration Port +dcs-config 3988/udp # DCS Configuration Port +bv-queryengine 3989/tcp # BindView-Query Engine +bv-queryengine 3989/udp # BindView-Query Engine +bv-is 3990/tcp # BindView-IS +bv-is 3990/udp # BindView-IS +bv-smcsrv 3991/tcp # BindView-SMCServer +bv-smcsrv 3991/udp # BindView-SMCServer +bv-ds 3992/tcp # BindView-DirectoryServer +bv-ds 3992/udp # BindView-DirectoryServer +bv-agent 3993/tcp # BindView-Agent +bv-agent 3993/udp # BindView-Agent +objserver 3994/tcp # Objectika Administrator Server +objserver 3994/udp # Objectika Administrator Server +iss-mgmt-ssl 3995/tcp # ISS Management Svcs SSL +iss-mgmt-ssl 3995/udp # ISS Management Svcs SSL +abcsoftware 3996/tcp # abcsoftware-01 +abscoftware 3996/udp # abcsoftware-01 +agentsease-db 3997/tcp # aes_db +agentsease-db 3997/udp # aes_db +# 3998-3999 Unassigned +terabase 4000/udp # Terabase +terabase 4000/tcp # Terabase +# Thor Olson +####### Potential Conflict of ports ################################ +####### PORT 4000 also used by ICQ ################### +newoak 4001/udp # NewOak +newoak 4001/tcp # NewOak +# Jim Philippou +pxc-spvr-ft 4002/udp # pxc-spvr-ft +pxc-spvr-ft 4002/tcp # pxc-spvr-ft +pxc-splr-ft 4003/udp # pxc-splr-ft +pxc-splr-ft 4003/tcp # pxc-splr-ft +pxc-roid 4004/udp # pxc-roid +pxc-roid 4004/tcp # pxc-roid +pxc-pin 4005/udp # pxc-pin +pxc-pin 4005/tcp # pxc-pin +pxc-spvr 4006/udp # pxc-spvr +pxc-spvr 4006/tcp # pxc-spvr +pxc-splr 4007/udp # pxc-splr +pxc-splr 4007/tcp # pxc-splr +# Dave Nesbitt +netcheque 4008/udp # NetCheque accounting +netcheque 4008/tcp # NetCheque accounting +# B. Clifford Neuman +chimera-hwm 4009/udp # Chimera HWM +chimera-hwm 4009/tcp # Chimera HWM +# Ken Anderson +samsung-unidex 4010/udp # Samsung Unidex +samsung-unidex 4010/tcp # Samsung Unidex +# Konstantin V. Vyaznikov +altserviceboot 4011/udp # Alternate Service Boot +altserviceboot 4011/tcp # Alternate Service Boot +# Eric Dittert +pda-gate 4012/udp # PDA Gate +pda-gate 4012/tcp # PDA Gate +# Masakuni Okada +acl-manager 4013/udp # ACL Manager +acl-manager 4013/tcp # ACL Manager +# Toru Murai +taiclock 4014/udp # TAICLOCK +taiclock 4014/tcp # TAICLOCK +# Dan Bernstein +talarian-mcast1 4015/udp # Talarian Mcast +talarian-mcast1 4015/tcp # Talarian Mcast +talarian-mcast2 4016/udp # Talarian Mcast +talarian-mcast2 4016/tcp # Talarian Mcast +talarian-mcast3 4017/udp # Talarian Mcast +talarian-mcast3 4017/tcp # Talarian Mcast +talarian-mcast4 4018/udp # Talarian Mcast +talarian-mcast4 4018/tcp # Talarian Mcast +talarian-mcast5 4019/udp # Talarian Mcast +talarian-mcast5 4019/tcp # Talarian Mcast +# Geoff Mendal +trap 4020/udp # TRAP Port +trap 4020/tcp # TRAP Port +# Jeffrey C. Byrd +nexus-portal 4021/udp # Nexus Portal +nexus-portal 4021/tcp # Nexus Portal +# Damian Tarnawsky +dnox 4022/udp # DNOX +dnox 4022/tcp # DNOX +# Leo Rathnayake +esnm-zoning 4023/udp # ESNM Zoning Port +esnm-zoning 4023/tcp # ESNM Zoning Port +# Yong Cai +tnp1-port 4024/udp # TNP1 User Port +tnp1-port 4024/tcp # TNP1 User Port +# Tony Gibbs +partimage 4025/udp # Partition Image Port +partimage 4025/tcp # Partition Image Port +# Franck Ladurelle +as-debug 4026/udp # Graphical Debug Server +as-debug 4026/tcp # Graphical Debug Server +# Steve Halverson +bxp 4027/udp # bitxpress +bxp 4027/tcp # bitxpress +# Morgan Doyle +dtserver-port 4028/udp # DTServer Port +dtserver-port 4028/tcp # DTServer Port +# Stephen Aikins +ip-qsig 4029/udp # IP Q signaling protocol +ip-qsig 4029/tcp # IP Q signaling protocol +# Toru Tachibana +jdmn-port 4030/udp # Accell/JSP Daemon Port +jdmn-port 4030/tcp # Accell/JSP Daemon Port +# Art Grand +suucp 4031/udp # UUCP over SSL +suucp 4031/tcp # UUCP over SSL +# Harald Welte +vrts-auth-port 4032/udp # VERITAS Authorization Service +vrts-auth-port 4032/tcp # VERITAS Authorization Service +# Stefan Winkel +sanavigator 4033/udp # SANavigator Peer Port +sanavigator 4033/tcp # SANavigator Peer Port +# Robert J. Chansler +ubxd 4034/udp # Ubiquinox Daemon +ubxd 4034/tcp # Ubiquinox Daemon +# Kit Smithers +wap-push-http 4035/udp # WAP Push OTA-HTTP port +wap-push-http 4035/tcp # WAP Push OTA-HTTP port +wap-push-https 4036/udp # WAP Push OTA-HTTP secure +wap-push-https 4036/tcp # WAP Push OTA-HTTP secure +# Matthieu Lachance +# +ravehd 4037/tcp # RaveHD network control +ravehd 4037/udp # RaveHD network control +fazzt-ptp 4038/tcp # Fazzt Point-To-Point +fazzt-ptp 4038/udp # Fazzt Point-To-Point +fazzt-admin 4039/tcp # Fazzt Administration +fazzt-admin 4039/udp # Fazzt Administration +# 4040 Unassigned +yo-main 4040/udp # Yo.net main service +yo-main 4040/tcp # Yo.net main service +# John Tintor +houston 4041/udp # Rocketeer-Houston +houston 4041/tcp # Rocketeer-Houston +# Johnny C. Norris II +ldxp 4042/udp # LDXP +ldxp 4042/tcp # LDXP +# Craig Calef +nirp 4043/tcp # Neighbour Identity Resolution +nirp 4043/udp # Neighbour Identity Resolution +ltp 4044/tcp # Location Tracking Protocol +ltp 4044/udp # Location Tracking Protocol +npp 4045/tcp # Network Paging Protocol +npp 4045/udp # Network Paging Protocol +acp-proto 4046/tcp # Accounting Protocol +acp-proto 4046/udp # Accounting Protocol +ctp-state 4047/tcp # Context Transfer Protocol +ctp-state 4047/udp # Context Transfer Protocol +objadmin 4048/tcp # Objectika Administrator Agent +objadmin 4048/udp # Objectika Administrator Agent +wafs 4049/tcp # Wide Area File Services +wafs 4049/udp # Wide Area File Services +cisco-wafs 4050/tcp # Wide Area File Services +cisco-wafs 4050/udp # Wide Area File Services +cppdp 4051/tcp # Cisco Peer to Peer Distribution Protocol +cppdp 4051/udp # Cisco Peer to Peer Distribution Protocol +interact 4052/tcp # VoiceConnect Interact +interact 4052/udp # VoiceConnect Interact +ccu-comm-1 4053/tcp # CosmoCall Universe Communications Port 1 +ccu-comm-1 4053/udp # CosmoCall Universe Communications Port 1 +ccu-comm-2 4054/tcp # CosmoCall Universe Communications Port 2 +ccu-comm-2 4054/udp # CosmoCall Universe Communications Port 2 +ccu-comm-3 4055/tcp # CosmoCall Universe Communications Port 3 +ccu-comm-3 4055/udp # CosmoCall Universe Communications Port 3 +lms 4056/tcp # Location Message Service +lms 4056/udp # Location Message Service +wfm 4057/tcp # Servigistics WFM server +wfm 4057/udp # Servigistics WFM server +kingfisher 4058/tcp # Kingfisher protocol +kingfisher 4058/udp # Kingfisher protocol +dlms-cosem 4059/tcp # DLMS/COSEM +dlms-cosem 4059/udp # DLMS/COSEM +dsmeter_iatc 4060/tcp # DSMETER Inter-Agent Transfer Channel +dsmeter_iatc 4060/udp # DSMETER Inter-Agent Transfer Channel +ice-location 4061/tcp # Ice Location Service (TCP) +ice-location 4061/udp # Ice Location Service (TCP) +ice-slocation 4062/tcp # Ice Location Service (SSL) +ice-slocation 4062/udp # Ice Location Service (SSL) +ice-router 4063/tcp # Ice Firewall Traversal Service (TCP) +ice-router 4063/udp # Ice Firewall Traversal Service (TCP) +ice-srouter 4064/tcp # Ice Firewall Traversal Service (SSL) +ice-srouter 4064/udp # Ice Firewall Traversal Service (SSL) +# 4065-4088 Unassigned +opencore 4089/tcp # OpenCORE Remote Control Service +opencore 4089/udp # OpenCORE Remote Control Service +omasgport 4090/tcp # OMA BCAST Service Guide +omasgport 4090/udp # OMA BCAST Service Guide +ewinstaller 4091/tcp # EminentWare Installer +ewinstaller 4091/udp # EminentWare Installer +ewdgs 4092/tcp # EminentWare DGS +ewdgs 4092/udp # EminentWare DGS +pvxpluscs 4093/tcp # Pvx Plus CS Host +pvxpluscs 4093/udp # Pvx Plus CS Host +sysrqd 4094/tcp # sysrq daemon +sysrqd 4094/udp # sysrq daemon +xtgui 4095/tcp # xtgui information service +xtgui 4095/udp # xtgui information service +# 4096 Unassigned +bre 4096/udp # BRE (Bridge Relay Element) +bre 4096/tcp # BRE (Bridge Relay Element) +# Stephen Egbert +patrolview 4097/udp # Patrol View +patrolview 4097/tcp # Patrol View +# Vincent Chin +drmsfsd 4098/udp # drmsfsd +drmsfsd 4098/tcp # drmsfsd +# Masao Iwai +dpcp 4099/udp # DPCP +dpcp 4099/tcp # DPCP +# John Croft +igo-incognito 4100/udp # IGo Incognito Data Port +igo-incognito 4100/tcp # IGo Incognito Data Port +# Paul Reddy February 2002 +brlp-0 4101/tcp # Braille protocol +brlp-0 4101/udp # Braille protocol +brlp-1 4102/tcp # Braille protocol +brlp-1 4102/udp # Braille protocol +brlp-2 4103/tcp # Braille protocol +brlp-2 4103/udp # Braille protocol +brlp-3 4104/tcp # Braille protocol +brlp-3 4104/udp # Braille protocol +shofarplayer 4105/tcp # ShofarPlayer +shofarplayer 4105/udp # ShofarPlayer +synchronite 4106/tcp # Synchronite +synchronite 4106/udp # Synchronite +j-ac 4107/tcp # JDL Accounting LAN Service +j-ac 4107/udp # JDL Accounting LAN Service +accel 4108/tcp # ACCEL +accel 4108/udp # ACCEL +# 4109-4110 Unassigned +xgrid 4111/tcp # Xgrid +xgrid 4111/udp # Xgrid +apple-vpns-rp 4112/tcp # Apple VPN Server Reporting Protocol +apple-vpns-rp 4112/udp # Apple VPN Server Reporting Protocol +aipn-reg 4113/tcp # AIPN LS Registration +aipn-reg 4113/udp # AIPN LS Registration +# 4114 Unassigned +jomamqmonitor 4114/udp # JomaMQMonitor +jomamqmonitor 4114/tcp # JomaMQMonitor +# Marcel Hofstetter January 2003 +cds 4115/tcp # CDS Transfer Agent +cds 4115/udp # CDS Transfer Agent +smartcard-tls 4116/tcp # smartcard-TLS +smartcard-tls 4116/udp # smartcard-TLS +xmlivestream 4117/tcp # xmLive Streaming Service +xmlivestream 4117/udp # xmLive Streaming Service +netscript 4118/tcp # Netadmin Systems NETscript service +netscript 4118/udp # Netadmin Systems NETscript service +assuria-slm 4119/tcp # Assuria Log Manager +assuria-slm 4119/udp # Assuria Log Manager +xtreamx 4120/tcp # XtreamX hybrid peer-to-peer message +xtreamx 4120/udp # XtreamX hybrid peer-to-peer message +e-builder 4121/tcp # e-Builder Application Communication +e-builder 4121/udp # e-Builder Application Communication +fprams 4122/tcp # Fiber Patrol Alarm Service +fprams 4122/udp # Fiber Patrol Alarm Service +# 4123-4131 Unassigned +nuts_dem 4132/udp # NUTS Daemon +nuts_dem 4132/tcp # NUTS Daemon +nuts_bootp 4133/udp # NUTS Bootp Server +nuts_bootp 4133/tcp # NUTS Bootp Server +# Martin Freiss +nifty-hmi 4134/udp # NIFTY-Serve HMI protocol +nifty-hmi 4134/tcp # NIFTY-Serve HMI protocol +# Ryuichi Suzuki +cl-db-attach 4135/tcp # Classic Line Database Server Attach +cl-db-attach 4135/udp # Classic Line Database Server Attach +cl-db-request 4136/tcp # Classic Line Database Server Request +cl-db-request 4136/udp # Classic Line Database Server Request +cl-db-remote 4137/tcp # Classic Line Database Server Remote +cl-db-remote 4137/udp # Classic Line Database Server Remote +# 4138 Unassigned +nettest 4138/udp # nettest +nettest 4138/tcp # nettest +# David Borman March 2003 +thrtx 4139/tcp # Imperfect Networks Server +thrtx 4139/udp # Imperfect Networks Server +cedros_fds 4140/tcp # Cedros Fraud Detection System +cedros_fds 4140/udp # Cedros Fraud Detection System +# 4141 Unassigned +oirtgsvc 4141/udp # Workflow Server +oirtgsvc 4141/tcp # Workflow Server +oidocsvc 4142/udp # Document Server +oidocsvc 4142/tcp # Document Server +oidsr 4143/udp # Document Replication +oidsr 4143/tcp # Document Replication +# Norman Brie +########## Compuserve (unoffically) is using port 4144 ######### +# 4144 Unassigned +vvr-control 4145/udp # VVR Control +vvr-control 4145/tcp # VVR Control +# Ming Xu +tgcconnect 4146/tcp # TGCConnect Beacon +tgcconnect 4146/udp # TGCConnect Beacon +vrxpservman 4147/tcp # Multum Service Manager +vrxpservman 4147/udp # Multum Service Manager +# 4148-4153 Unassigned +atlinks 4154/udp # atlinks device discovery +atlinks 4154/tcp # atlinks device discovery +# Scott Griepentrog October 2002 +# 4155-4159 Unassigned +nss 4159/tcp # Network Security Service +nss 4159/udp # Network Security Service +# 4160 Unassigned +jini-discovery 4160/udp # Jini Discovery +jini-discovery 4160/tcp # Jini Discovery +# Mark Hodapp +omscontact 4161/tcp # OMS Contact +omscontact 4161/udp # OMS Contact +omstopology 4162/tcp # OMS Topology +omstopology 4162/udp # OMS Topology +sieve 4190/tcp # ManageSieve Protocol +eims-admin 4199/udp # EIMS ADMIN +eims-admin 4199/tcp # EIMS ADMIN +# Glenn Anderson +# Mitra +corelccam 4300/udp # Corel CCam +corelccam 4300/tcp # Corel CCam +# Jason Aiken +d-data 4301/tcp # Diagnostic Data +d-data 4301/udp # Diagnostic Data +d-data-control 4302/tcp # Diagnostic Data Control +d-data-control 4302/udp # Diagnostic Data Control +# 4303-4319 Unassigned +fdt-rcatp 4320/tcp # FDT Remote Categorization Protocol +fdt-rcatp 4320/udp # FDT Remote Categorization Protocol +# 4321 Unassigned +rwhois 4321/udp # Remote Who Is +rwhois 4321/tcp # Remote Who Is +# Mark Kosters +geognosisman 4325/tcp # Cadcorp GeognoSIS Manager Service +geognosisman 4325/udp # Cadcorp GeognoSIS Manager Service +geognosis 4326/tcp # Cadcorp GeognoSIS Service +geognosis 4326/udp # Cadcorp GeognoSIS Service +# 4327-4342 Unassigned +unicall 4343/udp # UNICALL +unicall 4343/tcp # UNICALL +# James Powell +vinainstall 4344/udp # VinaInstall +vinainstall 4344/tcp # VinaInstall +# Jay Slupesky +m4-network-as 4345/udp # Macro 4 Network AS +m4-network-as 4345/tcp # Macro 4 Network AS +# Paul Wren +elanlm 4346/udp # ELAN LM +elanlm 4346/tcp # ELAN LM +# Paul Ballew +lansurveyor 4347/udp # LAN Surveyor +lansurveyor 4347/tcp # LAN Surveyor +# Michael Swan +itose 4348/udp # ITOSE +itose 4348/tcp # ITOSE +# Michael Haeuptle +fsportmap 4349/udp # File System Port Map +fsportmap 4349/tcp # File System Port Map +# Ron Minnich +net-device 4350/udp # Net Device +net-device 4350/tcp # Net Device +# Glenn Peterson +plcy-net-svcs 4351/udp # PLCY Net Services +plcy-net-svcs 4351/tcp # PLCY Net Services +# J.J. Ekstrom +pjlink 4352/tcp # Projector Link +pjlink 4352/udp # Projector Link +# 4353 Unassigned +f5-iquery 4353/udp # F5 iQuery +f5-iquery 4353/tcp # F5 iQuery +# Tom Kee +qsnet-trans 4354/udp # QSNet Transmitter +qsnet-trans 4354/tcp # QSNet Transmitter +qsnet-workst 4355/udp # QSNet Workstation +qsnet-workst 4355/tcp # QSNet Workstation +qsnet-assist 4356/udp # QSNet Assistant +qsnet-assist 4356/tcp # QSNet Assistant +qsnet-cond 4357/udp # QSNet Conductor +qsnet-cond 4357/tcp # QSNet Conductor +qsnet-nucl 4358/udp # QSNet Nucleus +qsnet-nucl 4358/tcp # QSNet Nucleus +# Neer Kleinman +# 4359-4441 Unassigned +wxbrief 4368/tcp # WeatherBrief Direct +wxbrief 4368/udp # WeatherBrief Direct +epmd 4369/tcp # Erlang Port Mapper Daemon +epmd 4369/udp # Erlang Port Mapper Daemon +# 4370-4399 Unassigned +ds-srv 4400/tcp # ASIGRA Services +ds-srv 4400/udp # ASIGRA Services +ds-srvr 4401/tcp # ASIGRA Televaulting DS-System Service +ds-srvr 4401/udp # ASIGRA Televaulting DS-System Service +ds-clnt 4402/tcp # ASIGRA Televaulting DS-Client Service +ds-clnt 4402/udp # ASIGRA Televaulting DS-Client Service +ds-user 4403/tcp # ASIGRA Televaulting DS-Client Monitoring/Management +ds-user 4403/udp # ASIGRA Televaulting DS-Client Monitoring/Management +ds-admin 4404/tcp # ASIGRA Televaulting DS-System Monitoring/Management +ds-admin 4404/udp # ASIGRA Televaulting DS-System Monitoring/Management +ds-mail 4405/tcp # ASIGRA Televaulting Message Level Restore service +ds-mail 4405/udp # ASIGRA Televaulting Message Level Restore service +ds-slp 4406/tcp # ASIGRA Televaulting DS-Sleeper Service +ds-slp 4406/udp # ASIGRA Televaulting DS-Sleeper Service +# 4407-4425 Unassigned +beacon-port-2 4426/tcp # SMARTS Beacon Port +beacon-port-2 4426/udp # SMARTS Beacon Port +# 4427-4441 Unassigned +saris 4442/udp # Saris +saris 4442/tcp # Saris +pharos 4443/udp # Pharos +pharos 4443/tcp # Pharos +# TeleConsult GmbH, 76275 Ettlingen, Germany +# +krb524 4444/udp # KRB524 +krb524 4444/tcp # KRB524 +# B. Clifford Neuman +# PROBLEM krb524 assigned the port, +# PROBLEM nv used it without an assignment +nv-video 4444/udp # NV Video default +nv-video 4444/tcp # NV Video default +# Ron Frederick +upnotifyp 4445/udp # UPNOTIFYP +upnotifyp 4445/tcp # UPNOTIFYP +# Mark Fox +n1-fwp 4446/udp # N1-FWP +n1-fwp 4446/tcp # N1-FWP +n1-rmgmt 4447/udp # N1-RMGMT +n1-rmgmt 4447/tcp # N1-RMGMT +# Lori Tassin +asc-slmd 4448/udp # ASC Licence Manager +asc-slmd 4448/tcp # ASC Licence Manager +# Casper Stoel +privatewire 4449/udp # PrivateWire +privatewire 4449/tcp # PrivateWire +# Uri Resnitzky +camp 4450/udp # Camp +camp 4450/tcp # Camp +ctisystemmsg 4451/udp # CTI System Msg +ctisystemmsg 4451/tcp # CTI System Msg +ctiprogramload 4452/udp # CTI Program Load +ctiprogramload 4452/tcp # CTI Program Load +# Steven Cliff +nssalertmgr 4453/udp # NSS Alert Manager +nssalertmgr 4453/tcp # NSS Alert Manager +nssagentmgr 4454/udp # NSS Agent Manager +nssagentmgr 4454/tcp # NSS Agent Manager +# Jim Hill +prchat-user 4455/udp # PR Chat User +prchat-user 4455/tcp # PR Chat User +prchat-server 4456/udp # PR Chat Server +prchat-server 4456/tcp # PR Chat Server +prRegister 4457/udp # PR Register +prRegister 4457/tcp # PR Register +# Donny Gilor +mcp 4458/tcp # Matrix Configuration Protocol +mcp 4458/udp # Matrix Configuration Protocol +# 4459-4483 Unassigned +hpssmgmt 4484/tcp # hpssmgmt service +hpssmgmt 4484/udp # hpssmgmt service +# 4485-4499 Unassigned +ipsec-msft 4500/udp # Microsoft IPsec NAT-T +ipsec-msft 4500/tcp # Microsoft IPsec NAT-T +# Christian Huitema March 2002 +# 4501 De-registered (08 June 2001) +# IANA +# 4502-4544 Unassigned +ehs 4535/tcp # Event Heap Server +ehs 4535/udp # Event Heap Server +ehs-ssl 4536/tcp # Event Heap Server SSL +ehs-ssl 4536/udp # Event Heap Server SSL +wssauthsvc 4537/tcp # WSS Security Service +wssauthsvc 4537/udp # WSS Security Service +isigate 4538/tcp # isigate +isigate 4538/udp # isigate +# 4539-4544 Unassigned +worldscores 4545/udp # WorldScores +worldscores 4545/tcp # WorldScores +# Steve Davis +sf-lm 4546/udp # SF License Manager (Sentinel) +sf-lm 4546/tcp # SF License Manager (Sentinel) +# Thomas Koell +lanner-lm 4547/udp # Lanner License Manager +lanner-lm 4547/tcp # Lanner License Manager +# Les Enstone +synchromesh 4548/tcp # Synchromesh +synchromesh 4548/udp # Synchromesh +aegate 4549/tcp # Aegate PMR Service +aegate 4549/udp # Aegate PMR Service +gds-adppiw-db 4550/tcp # Perman I Interbase Server +gds-adppiw-db 4550/udp # Perman I Interbase Server +# 4551-4553 Unassigned +msfrs 4554/tcp # MS FRS Replication +msfrs 4554/udp # MS FRS Replication +# 4555 Unassigned +rsip 4555/udp # RSIP Port +rsip 4555/tcp # RSIP Port +# RFC 3103 +dtn-bundle-tcp 4556/tcp # DTN Bundle TCP CL Protocol +dtn-bundle-udp 4556/udp # DTN Bundle UDP CL Protocol +# 4557-4558 Unassigned +hylafax 4559/udp # HylaFAX +hylafax 4559/tcp # HylaFAX +# Lee Howard March 2002 +# 4560-4566 Unassigned +kwtc 4566/tcp # Kids Watch Time Control Service +kwtc 4566/udp # Kids Watch Time Control Service +# 4567 Unassigned +tram 4567/udp # TRAM +tram 4567/tcp # TRAM +# Joe Wesley +bmc-reporting 4568/udp # BMC Reporting +bmc-reporting 4568/tcp # BMC Reporting +# Randall De Weerd +iax 4569/tcp # Inter-Asterisk eXchange +iax 4569/udp # Inter-Asterisk eXchange +# 4570-4596 Unassigned +a21-an-1xbs 4597/tcp # A21 (AN-1xBS) +a21-an-1xbs 4597/udp # A21 (AN-1xBS) +a16-an-an 4598/tcp # A16 (AN-AN) +a16-an-an 4598/udp # A16 (AN-AN) +a17-an-an 4599/tcp # A17 (AN-AN) +a17-an-an 4599/udp # A17 (AN-AN) +# 4600 Unassigned +piranha1 4600/udp # Piranha1 +piranha1 4600/tcp # Piranha1 +piranha2 4601/udp # Piranha2 +piranha2 4601/tcp # Piranha2 +# Primark Corporation +# 4602-4659 Unassigned +playsta2-app 4658/tcp # PlayStation2 App Port +playsta2-app 4658/udp # PlayStation2 App Port +playsta2-lob 4659/tcp # PlayStation2 Lobby Port +playsta2-lob 4659/udp # PlayStation2 Lobby Port +# 4660 Unassigned +smaclmgr 4660/udp # smaclmgr +smaclmgr 4660/tcp # smaclmgr +# Hiromi Taki +kar2ouche 4661/udp # Kar2ouche Peer location service +kar2ouche 4661/tcp # Kar2ouche Peer location service +# Andy Krouwel +oms 4662/tcp # OrbitNet Message Service +oms 4662/udp # OrbitNet Message Service +noteit 4663/tcp # Note It! Message Service +noteit 4663/udp # Note It! Message Service +ems 4664/tcp # Rimage Messaging Server +ems 4664/udp # Rimage Messaging Server +contclientms 4665/tcp # Container Client Message Service +contclientms 4665/udp # Container Client Message Service +eportcomm 4666/tcp # E-Port Message Service +eportcomm 4666/udp # E-Port Message Service +mmacomm 4667/tcp # MMA Comm Services +mmacomm 4667/udp # MMA Comm Services +mmaeds 4668/tcp # MMA EDS Service +mmaeds 4668/udp # MMA EDS Service +eportcommdata 4669/tcp # E-Port Data Service +eportcommdata 4669/udp # E-Port Data Service +light 4670/tcp # Light packets transfer protocol +light 4670/udp # Light packets transfer protocol +acter 4671/tcp # Bull RSF action server +acter 4671/udp # Bull RSF action server +# 4672 Unassigned +rfa 4672/udp # remote file access server +rfa 4672/tcp # remote file access server +cxws 4673/tcp # CXWS Operations +cxws 4673/udp # CXWS Operations +appiq-mgmt 4674/tcp # AppIQ Agent Management +appiq-mgmt 4674/udp # AppIQ Agent Management +dhct-status 4675/tcp # BIAP Device Status +dhct-status 4675/udp # BIAP Device Status +dhct-alerts 4676/tcp # BIAP Generic Alert +dhct-alerts 4676/udp # BIAP Generic Alert +bcs 4677/tcp # Business Continuity Servi +bcs 4677/udp # Business Continuity Servi +traversal 4678/tcp # boundary traversal +traversal 4678/udp # boundary traversal +mgesupervision 4679/tcp # MGE UPS Supervision +mgesupervision 4679/udp # MGE UPS Supervision +mgemanagement 4680/tcp # MGE UPS Management +mgemanagement 4680/udp # MGE UPS Management +parliant 4681/tcp # Parliant Telephony System +parliant 4681/udp # Parliant Telephony System +finisar 4682/tcp # finisar +finisar 4682/udp # finisar +spike 4683/tcp # Spike Clipboard Service +spike 4683/udp # Spike Clipboard Service +rfid-rp1 4684/tcp # RFID Reader Protocol 1.0 +rfid-rp1 4684/udp # RFID Reader Protocol 1.0 +autopac 4685/tcp # Autopac Protocol +autopac 4685/udp # Autopac Protocol +msp-os 4686/tcp # Manina Service Protocol +msp-os 4686/udp # Manina Service Protocol +nst 4687/tcp # Network Scanner Tool FTP +nst 4687/udp # Network Scanner Tool FTP +mobile-p2p 4688/tcp # Mobile P2P Service +mobile-p2p 4688/udp # Mobile P2P Service +altovacentral 4689/tcp # Altova DatabaseCentral +altovacentral 4689/udp # Altova DatabaseCentral +prelude 4690/tcp # Prelude IDS message proto +prelude 4690/udp # Prelude IDS message proto +monotone 4691/tcp # Monotone Network Protocol +monotone 4691/udp # Monotone Network Protocol +conspiracy 4692/tcp # Conspiracy messaging +conspiracy 4692/udp # Conspiracy messaging +# 4693-4699 Unassigned +netxms-agent 4700/tcp # NetXMS Agent +netxms-agent 4700/udp # NetXMS Agent +netxms-mgmt 4701/tcp # NetXMS Management +netxms-mgmt 4701/udp # NetXMS Management +netxms-sync 4702/tcp # NetXMS Server Synchronization +netxms-sync 4702/udp # NetXMS Server Synchronization +# 4703-4727 Unassigned +capmux 4728/tcp # CA Port Multiplexer +capmux 4728/udp # CA Port Multiplexer +# 4729-4736 Unassigned +ipdr-sp 4737/tcp # IPDR/SP +ipdr-sp 4737/udp # IPDR/SP +solera-lpn 4738/tcp # SoleraTec Locator +solera-lpn 4738/udp # SoleraTec Locator +ipfix 4739/tcp # IP Flow Info Export +ipfix 4739/udp # IP Flow Info Export +ipfixs 4740/tcp # ipfix protocol over TLS +ipfixs 4740/udp # ipfix protocol over DTLS +# 4741 Unassigned +sicct 4742/tcp # SICCT +sicct-sdp 4742/udp # SICCT Service Discovery Protocol +openhpid 4743/tcp # openhpi HPI service +openhpid 4743/udp # openhpi HPI service +# 4744-4748 Unassigned +profilemac 4749/tcp # Profile for Mac +profilemac 4749/udp # Profile for Mac +ssad 4750/tcp # Simple Service Auto Discovery +ssad 4750/udp # Simple Service Auto Discovery +spocp 4751/tcp # Simple Policy Control Protocol +spocp 4751/udp # Simple Policy Control Protocol +# 4752 Unassigned +snap 4752/udp # Simple Network Audio Protocol +snap 4752/tcp # Simple Network Audio Protocol +# Dameon Wagner February 2002 +# 4753-4799 Unassigned +bfd-multi-ctl 4784/tcp # BFD Multihop Control +bfd-multi-ctl 4784/udp # BFD Multihop Control +# 4785-4799 Unassigned +iims 4800/udp # Icona Instant Messenging System +iims 4800/tcp # Icona Instant Messenging System +iwec 4801/udp # Icona Web Embedded Chat +iwec 4801/tcp # Icona Web Embedded Chat +ilss 4802/udp # Icona License System Server +ilss 4802/tcp # Icona License System Server +# Paul Stephen Borlie +# 4803-4826 Unassigned +htcp 4827/udp # HTCP +htcp 4827/tcp # HTCP +# Paul Vixie +# 4828-4836 Unassigned +varadero-0 4837/udp # Varadero-0 +varadero-0 4837/tcp # Varadero-0 +varadero-1 4838/udp # Varadero-1 +varadero-1 4838/tcp # Varadero-1 +varadero-2 4839/udp # Varadero-2 +varadero-2 4839/tcp # Varadero-2 +# Carlos Arteaga +opcua-tcp 4840/tcp # OPC UA TCP Protocol +opcua-udp 4840/udp # OPC UA TCP Protocol +quosa 4841/tcp # QUOSA Virtual Library Service +quosa 4841/udp # QUOSA Virtual Library Service +gw-asv 4842/tcp # nCode ICE-flow Library AppServer +gw-asv 4842/udp # nCode ICE-flow Library AppServer +opcua-tls 4843/tcp # OPC UA TCP Protocol over TLS/SSL +opcua-tls 4843/udp # OPC UA TCP Protocol over TLS/SSL +gw-log 4844/tcp # nCode ICE-flow Library LogServer +gw-log 4844/udp # nCode ICE-flow Library LogServer +# 4845-4847 Unassigned +appserv-http 4848/udp # App Server - Admin HTTP +appserv-http 4848/tcp # App Server - Admin HTTP +appserv-https 4849/udp # App Server - Admin HTTPS +appserv-https 4849/tcp # App Server - Admin HTTPS +# Sreeram Duvvuru April 2002 +sun-as-nodeagt 4850/tcp # Sun App Server - NA +sun-as-nodeagt 4850/udp # Sun App Server - NA +# 4851-4866 Unassigned +unify-debug 4867/tcp # Unify Debugger +unify-debug 4867/udp # Unify Debugger +# 4868 Unassigned +phrelay 4868/udp # Photon Relay +phrelay 4868/tcp # Photon Relay +phrelaydbg 4869/udp # Photon Relay Debug +phrelaydbg 4869/tcp # Photon Relay Debug +# Michael Hunter +cc-tracking 4870/tcp # Citcom Tracking Service +cc-tracking 4870/udp # Citcom Tracking Service +wired 4871/tcp # Wired +wired 4871/udp # Wired +# 4872-4884 Unassigned +abbs 4885/udp # ABBS +abbs 4885/tcp # ABBS +# Ryan Rubley +# 4886-4893 Unassigned +lyskom 4894/udp # LysKOM Protocol A +lyskom 4894/tcp # LysKOM Protocol A +# Per Cederqvist +# 4895-4898 Unassigned +radmin-port 4899/udp # RAdmin Port +radmin-port 4899/tcp # RAdmin Port +# Dmitri Znosko March 2003 +hfcs 4900/tcp # Hyper File Client/Server Database Engine +hfcs 4900/udp # Hyper File Client/Server Database Engine +# 4901-4948 Unassigned +munin 4949/tcp # Munin Graphing Framework +munin 4949/udp # Munin Graphing Framework +# 4950 Unassigned +pwgwims 4951/tcp # PWG WIMS +pwgwims 4951/udp # PWG WIMS +sagxtsds 4952/tcp # SAG Directory Server +sagxtsds 4952/udp # SAG Directory Server +# 4953-4968 Unassigned +ccss-qmm 4969/tcp # CCSS QMessageMonitor +ccss-qmm 4969/udp # CCSS QMessageMonitor +ccss-qsm 4970/tcp # CCSS QSystemMonitor +ccss-qsm 4970/udp # CCSS QSystemMonitor +# 4971-4982 Unassigned +att-intercom 4983/udp # AT&T Intercom +att-intercom 4983/tcp # AT&T Intercom +# Tony Hansen +# 4984-4986 Unassigned +mrip 4986/tcp # Model Railway Interface Program +mrip 4986/udp # Model Railway Interface Program +# 4987 Unassigned +smar-se-port1 4987/udp # SMAR Ethernet Port 1 +smar-se-port1 4987/tcp # SMAR Ethernet Port 1 +smar-se-port2 4988/udp # SMAR Ethernet Port 2 +smar-se-port2 4988/tcp # SMAR Ethernet Port 2 +# Delcio Prizon +parallel 4989/udp # Parallel for GAUSS (tm) +parallel 4989/tcp # Parallel for GAUSS (tm) +# Matthew Ford March 2003 +# 4990-4999 Unassigned +hfcs-manager 4999/tcp # Hyper File Client/Server Database Engine Manager +hfcs-manager 4999/udp # Hyper File Client/Server Database Engine Manager +# 5000 Unassigned +commplex-main 5000/udp # +commplex-main 5000/tcp # +commplex-link 5001/udp # +commplex-link 5001/tcp # +rfe 5002/udp # radio free ethernet +rfe 5002/tcp # radio free ethernet +fmpro-internal 5003/udp # FileMaker, Inc. - Proprietary name binding +fmpro-internal 5003/tcp # FileMaker, Inc. - Proprietary transport +# Clay Maeckel +avt-profile-1 5004/udp # avt-profile-1 +avt-profile-1 5004/tcp # avt-profile-1 +avt-profile-2 5005/udp # avt-profile-2 +avt-profile-2 5005/tcp # avt-profile-2 +# Henning Schulzrinne +wsm-server 5006/udp # wsm server +wsm-server 5006/tcp # wsm server +wsm-server-ssl 5007/udp # wsm server ssl +wsm-server-ssl 5007/tcp # wsm server ssl +# Adam Berk +synapsis-edge 5008/udp # Synapsis EDGE +synapsis-edge 5008/tcp # Synapsis EDGE +# Paul Schilling +winfs 5009/tcp # Microsoft Windows Filesystem +winfs 5009/udp # Microsoft Windows Filesystem +# 5010 Unassigned +telelpathstart 5010/udp # TelepathStart +telelpathstart 5010/tcp # TelepathStart +telelpathattack 5011/udp # TelepathAttack +telelpathattack 5011/tcp # TelepathAttack +# Helmuth Breitenfellner +# 5012-5019 Unassigned +zenginkyo-1 5020/udp # zenginkyo-1 +zenginkyo-1 5020/tcp # zenginkyo-1 +zenginkyo-2 5021/udp # zenginkyo-2 +zenginkyo-2 5021/tcp # zenginkyo-2 +# Masashi Suzaki +mice 5022/udp # mice server +mice 5022/tcp # mice server +# Alan Clifford +htuilsrv 5023/udp # Htuil Server for PLD2 +htuilsrv 5023/tcp # Htuil Server for PLD2 +# Dennis Reinhardt +scpi-telnet 5024/udp # SCPI-TELNET +scpi-telnet 5024/tcp # SCPI-TELNET +scpi-raw 5025/udp # SCPI-RAW +scpi-raw 5025/tcp # SCPI-RAW +# Ryan Columbus October 2002 +strexec-d 5026/tcp # Storix I/O daemon (data) +strexec-d 5026/udp # Storix I/O daemon (data) +strexec-s 5027/tcp # Storix I/O daemon (stat) +strexec-s 5027/udp # Storix I/O daemon (stat) +# 5028-5029 Unassigned +surfpass 5030/tcp # SurfPass +surfpass 5030/udp # SurfPass +# 5031-5041 Unassigned +asnaacceler8db 5042/udp # asnaacceler8db +asnaacceler8db 5042/tcp # asnaacceler8db +# Walter Goodwin +swxadmin 5043/tcp # ShopWorX Administration +swxadmin 5043/udp # ShopWorX Administration +lxi-evntsvc 5044/tcp # LXI Event Service +lxi-evntsvc 5044/udp # LXI Event Service +# 5045-5048 Unassigned +ivocalize 5049/tcp # iVocalize Web Conference +ivocalize 5049/udp # iVocalize Web Conference +# 5050 Unassigned +mmcc 5050/udp # multimedia conference control tool +mmcc 5050/tcp # multimedia conference control tool +# Steve Casner +ita-agent 5051/udp # ITA Agent +ita-agent 5051/tcp # ITA Agent +ita-manager 5052/udp # ITA Manager +ita-manager 5052/tcp # ITA Manager +# Don Merrell +# 5053-5054 Unassigned +unot 5055/udp # UNOT +unot 5055/tcp # UNOT +# Gordon Mohr +intecom-ps1 5056/udp # Intecom PS 1 +intecom-ps1 5056/tcp # Intecom PS 1 +intecom-ps2 5057/udp # Intecom PS 2 +intecom-ps2 5057/tcp # Intecom PS 2 +# David Meermans +# 5058-5059 Unassigned +sds 5059/tcp # SIP Directory Services +sds 5059/udp # SIP Directory Services +# 5060 Unassigned +sip 5060/udp # SIP +sip 5060/tcp # SIP +sip-tls 5061/udp # SIP-TLS +sip-tls 5061/tcp # SIP-TLS +# Henning Schulzrinne +# 5062-5063 Unassigned +ca-1 5064/udp # Channel Access 1 +ca-1 5064/tcp # Channel Access 1 +ca-2 5065/udp # Channel Access 2 +ca-2 5065/tcp # Channel Access 2 +# Jeffrey Hill August 2002 +# 5066-5067 Unassigned +stanag-5066 5066/udp # STANAG-5066-SUBNET-INTF +stanag-5066 5066/tcp # STANAG-5066-SUBNET-INTF +# Donald G. Kallgren +# +# 5062-5068 Unassigned +authentx 5067/tcp # Authentx Service +authentx 5067/udp # Authentx Service +# 5068 Unassigned +i-net-2000-npr 5069/udp # I/Net 2000-NPR +i-net-2000-npr 5069/tcp # I/Net 2000-NPR +# Kenny Garrison +vtsas 5070/tcp # VersaTrans Server Agent Service +vtsas 5070/udp # VersaTrans Server Agent Service +# 5071 Unassigned +powerschool 5071/udp # PowerSchool +powerschool 5071/tcp # PowerSchool +# Greg Porter +ayiya 5072/tcp # Anything In Anything +ayiya 5072/udp # Anything In Anything +tag-pm 5073/tcp # Advantage Group Port Mgr +tag-pm 5073/udp # Advantage Group Port Mgr +alesquery 5074/tcp # ALES Query +alesquery 5074/udp # ALES Query +# 5075-5080 Unassigned +sdl-ets 5081/udp # SDL - Ent Trans Server +sdl-ets 5081/tcp # SDL - Ent Trans Server +# Marc Morin April 2002 +# 5082-5092 Unassigned +llrp 5084/tcp # EPCglobal Low-Level Reader Protocol +llrp 5084/udp # EPCglobal Low-Level Reader Protocol +encrypted-llrp 5085/tcp # EPCglobal Encrypted LLRP +encrypted-llrp 5085/udp # EPCglobal Encrypted LLRP +# 5086-5092 Unassigned +sentinel-lm 5093/udp # Sentinel LM +sentinel-lm 5093/tcp # Sentinel LM +# Derick Snyder +# 5094-5098 Unassigned +sentlm-srv2srv 5099/udp # SentLM Srv2Srv +sentlm-srv2srv 5099/tcp # SentLM Srv2Srv +# Derick Snyder +socalia 5100/tcp # Socalia service mux +socalia 5100/udp # Socalia service mux +# 5101 Unassigned +talarian-udp 5101/udp # Talarian_UDP +talarian-tcp 5101/tcp # Talarian_TCP +# Leo Martins +oms-nonsecure 5102/tcp # Oracle OMS non-secure +oms-nonsecure 5102/udp # Oracle OMS non-secure +# 5103-5111 Unassigned +pm-cmdsvr 5112/tcp # PeerMe Msg Cmd Service +pm-cmdsvr 5112/udp # PeerMe Msg Cmd Service +# 5113-5132 Unassigned +nbt-pc 5133/tcp # Policy Commander +nbt-pc 5133/udp # Policy Commander +# 5134-5136 Unassigned +ctsd 5137/udp # MyCTS server port +ctsd 5137/tcp # MyCTS server port +# Jilles Oldenbeuving June 2002 +# 5138-5144 Unassigned +rmonitor_secure 5145/udp # RMONITOR SECURE +rmonitor_secure 5145/tcp # RMONITOR SECURE +# Kory Hamzeh +# 5146-5149 Unassigned +atmp 5150/udp # Ascend Tunnel Management Protocol +atmp 5150/tcp # Ascend Tunnel Management Protocol +# Kory Hamzeh +esri_sde 5151/udp # ESRI SDE Remote Start +esri_sde 5151/tcp # ESRI SDE Instance +sde-discovery 5152/udp # ESRI SDE Instance Discovery +sde-discovery 5152/tcp # ESRI SDE Instance Discovery +# Peter Aronson +# 5153-5164 Unassigned +bzflag 5154/tcp # BZFlag game server +bzflag 5154/udp # BZFlag game server +asctrl-agent 5155/tcp # Oracle asControl Agent +asctrl-agent 5155/udp # Oracle asControl Agent +# 5156-5164 Unassigned +ife_icorp 5165/udp # ife_1corp +ife_icorp 5165/tcp # ife_1corp +# Paul Annala +winpcs 5166/tcp # WinPCS Service Connection +winpcs 5166/udp # WinPCS Service Connection +scte104 5167/tcp # SCTE104 Connection +scte104 5167/udp # SCTE104 Connection +scte30 5168/tcp # SCTE30 Connection +scte30 5168/udp # SCTE30 Connection +# 5169-5189 Unassigned +aol 5190/udp # America-Online +aol 5190/tcp # America-Online +# Marty Lyons +aol-1 5191/udp # AmericaOnline1 +aol-1 5191/tcp # AmericaOnline1 +aol-2 5192/udp # AmericaOnline2 +aol-2 5192/tcp # AmericaOnline2 +aol-3 5193/udp # AmericaOnline3 +aol-3 5193/tcp # AmericaOnline3 +# Bruce Mackey +# 5194-5199 Unassigned +targus-getdata 5200/udp # TARGUS GetData +targus-getdata 5200/tcp # TARGUS GetData +targus-getdata1 5201/udp # TARGUS GetData 1 +targus-getdata1 5201/tcp # TARGUS GetData 1 +targus-getdata2 5202/udp # TARGUS GetData 2 +targus-getdata2 5202/tcp # TARGUS GetData 2 +targus-getdata3 5203/udp # TARGUS GetData 3 +targus-getdata3 5203/tcp # TARGUS GetData 3 +# John Keaveney +# 5204-5221 Unassigned +jabber-client 5222/udp # Jabber Client Connection +jabber-client 5222/tcp # Jabber Client Connection +# David Waite February 2002 +# 5223-5224 Unassigned +hp-server 5225/udp # HP Server +hp-server 5225/tcp # HP Server +hp-status 5226/udp # HP Status +hp-status 5226/tcp # HP Status +# Brett Green +# 5227-5235 Unassigned +eenet 5234/tcp # EEnet communications +eenet 5234/udp # EEnet communications +# 5235 Unassigned +padl2sim 5236/udp # +padl2sim 5236/tcp # +# 5237-5249 Unassigned +igateway 5250/udp # iGateway +igateway 5250/tcp # iGateway +# Greg Bodine February 2002 +caevms 5251/tcp # CA eTrust VM Service +caevms 5251/udp # CA eTrust VM Service +movaz-ssc 5252/tcp # Movaz SSC +movaz-ssc 5252/udp # Movaz SSC +# 5253-5263 Unassigned +3com-njack-1 5264/udp # 3Com Network Jack Port 1 +3com-njack-1 5264/tcp # 3Com Network Jack Port 1 +3com-njack-2 5265/udp # 3Com Network Jack Port 2 +3com-njack-2 5265/tcp # 3Com Network Jack Port 2 +# Abhay Rajaram March 2003 +# 5266-5268 Unassigned +jabber-server 5269/udp # Jabber Server Connection +jabber-server 5269/tcp # Jabber Server Connection +# David Waite February 2002 +# 5270-5271 Unassigned +pk 5272/udp # PK +pk 5272/tcp # PK +# Patrick Kara +# 5273-5281 Unassigned +transmit-port 5282/udp # Marimba Transmitter Port +transmit-port 5282/tcp # Marimba Transmitter Port +# Johan Eriksson April 2002 +# 5283-5299 Unassigned +hacl-hb 5300/udp # # HA cluster heartbeat +hacl-hb 5300/tcp # # HA cluster heartbeat +hacl-gs 5301/udp # # HA cluster general services +hacl-gs 5301/tcp # # HA cluster general services +hacl-cfg 5302/udp # # HA cluster configuration +hacl-cfg 5302/tcp # # HA cluster configuration +hacl-probe 5303/udp # # HA cluster probing +hacl-probe 5303/tcp # # HA cluster probing +hacl-local 5304/udp # +hacl-local 5304/tcp # # HA Cluster Commands +hacl-test 5305/udp # +hacl-test 5305/tcp # # HA Cluster Test +# Eric Soderberg +# Edward Yim +sun-mc-grp 5306/udp # Sun MC Group +sun-mc-grp 5306/tcp # Sun MC Group +# Michael DeMoney +sco-aip 5307/udp # SCO AIP +sco-aip 5307/tcp # SCO AIP +# Barrie Cooper +cfengine 5308/udp # CFengine +cfengine 5308/tcp # CFengine +# Mark Burgess +jprinter 5309/udp # J Printer +jprinter 5309/tcp # J Printer +# Ken Blackwell +outlaws 5310/udp # Outlaws +outlaws 5310/tcp # Outlaws +# Richard Fife +permabit-cs 5312/tcp # Permabit Client-Server +permabit-cs 5312/udp # Permabit Client-Server +rrdp 5313/tcp # Real-time & Reliable Data +rrdp 5313/udp # Real-time & Reliable Data +# 5314 Unassigned +opalis-rbt-ipc 5314/udp # opalis-rbt-ipc +opalis-rbt-ipc 5314/tcp # opalis-rbt-ipc +# Laurent Domenech +hacl-poll 5315/udp # HA Cluster UDP Polling +hacl-poll 5315/tcp # HA Cluster UDP Polling +# Hoa Nguyen +# 5316-5352 Unassigned +kfserver 5343/tcp # Sculptor Database Server +kfserver 5343/udp # Sculptor Database Server +xkotodrcp 5344/tcp # xkoto DRCP +xkotodrcp 5344/udp # xkoto DRCP +# 5345-5350 Unassigned +nat-pmp 5351/tcp # NAT Port Mapping Protocol +nat-pmp 5351/udp # NAT Port Mapping Protocol +dns-llq 5352/tcp # DNS Long-Lived Queries +dns-llq 5352/udp # DNS Long-Lived Queries +# 5353 Unassigned +mdns 5353/udp # Multicast DNS +mdns 5353/tcp # Multicast DNS +# Stuart Cheshire +mdnsresponder 5354/tcp # Multicast DNS Responder IPC +mdnsresponder 5354/udp # Multicast DNS Responder IPC +llmnr 5355/tcp # LLMNR +llmnr 5355/udp # LLMNR +ms-smlbiz 5356/tcp # Microsoft Small Business +ms-smlbiz 5356/udp # Microsoft Small Business +wsdapi 5357/tcp # Web Services for Devices +wsdapi 5357/udp # Web Services for Devices +wsdapi-s 5358/tcp # WS for Devices Secured +wsdapi-s 5358/udp # WS for Devices Secured +# 5359-5396 Unassigned +stresstester 5397/tcp # StressTester(tm) Injector +stresstester 5397/udp # StressTester(tm) Injector +elektron-admin 5398/tcp # Elektron Administration +elektron-admin 5398/udp # Elektron Administration +securitychase 5399/tcp # SecurityChase +securitychase 5399/udp # SecurityChase +# 5400 Unassigned +excerpt 5400/udp # Excerpt Search +excerpt 5400/tcp # Excerpt Search +excerpts 5401/udp # Excerpt Search Secure +excerpts 5401/tcp # Excerpt Search Secure +# John Hinsdale +mftp 5402/udp # MFTP +mftp 5402/tcp # MFTP +# Alan Rosenberg +hpoms-ci-lstn 5403/udp # HPOMS-CI-LSTN +hpoms-ci-lstn 5403/tcp # HPOMS-CI-LSTN +hpoms-dps-lstn 5404/udp # HPOMS-DPS-LSTN +hpoms-dps-lstn 5404/tcp # HPOMS-DPS-LSTN +# Harold Froehling +netsupport 5405/udp # NetSupport +netsupport 5405/tcp # NetSupport +# Paul Sanders +systemics-sox 5406/udp # Systemics Sox +systemics-sox 5406/tcp # Systemics Sox +# Gary Howland +foresyte-clear 5407/udp # Foresyte-Clear +foresyte-clear 5407/tcp # Foresyte-Clear +foresyte-sec 5408/udp # Foresyte-Sec +foresyte-sec 5408/tcp # Foresyte-Sec +# Jorge Aldana +salient-dtasrv 5409/udp # Salient Data Server +salient-dtasrv 5409/tcp # Salient Data Server +salient-usrmgr 5410/udp # Salient User Manager +salient-usrmgr 5410/tcp # Salient User Manager +# Richard Farnham +actnet 5411/udp # ActNet +actnet 5411/tcp # ActNet +# Simon Robillard +continuus 5412/udp # Continuus +continuus 5412/tcp # Continuus +# Steven Holtsberg +wwiotalk 5413/udp # WWIOTALK +wwiotalk 5413/tcp # WWIOTALK +# Roger Knobbe +statusd 5414/udp # StatusD +statusd 5414/tcp # StatusD +# Stephen Misel +ns-server 5415/udp # NS Server +ns-server 5415/tcp # NS Server +# Jeffrey Chiao +sns-gateway 5416/udp # SNS Gateway +sns-gateway 5416/tcp # SNS Gateway +sns-agent 5417/udp # SNS Agent +sns-agent 5417/tcp # SNS Agent +# Mary Holstage +mcntp 5418/udp # MCNTP +mcntp 5418/tcp # MCNTP +# Heiko Rupp +dj-ice 5419/udp # DJ-ICE +dj-ice 5419/tcp # DJ-ICE +# Don Tyson +cylink-c 5420/udp # Cylink-C +cylink-c 5420/tcp # Cylink-C +# John Jobe +netsupport2 5421/udp # Net Support 2 +netsupport2 5421/tcp # Net Support 2 +# Paul Sanders +salient-mux 5422/udp # Salient MUX +salient-mux 5422/tcp # Salient MUX +# Richard Farnham +virtualuser 5423/udp # VIRTUALUSER +virtualuser 5423/tcp # VIRTUALUSER +# Chad Williams +beyond-remote 5424/tcp # Beyond Remote +beyond-remote 5424/udp # Beyond Remote +br-channel 5425/tcp # Beyond Remote Command Channel +br-channel 5425/udp # Beyond Remote Command Channel +# 5426 Unassigned +devbasic 5426/udp # DEVBASIC +devbasic 5426/tcp # DEVBASIC +# Curtis Smith +sco-peer-tta 5427/udp # SCO-PEER-TTA +sco-peer-tta 5427/tcp # SCO-PEER-TTA +# Andrew Shire +telaconsole 5428/udp # TELACONSOLE +telaconsole 5428/tcp # TELACONSOLE +# Joseph M. Newcomer +base 5429/udp # Billing and Accounting System Exchange +base 5429/tcp # Billing and Accounting System Exchange +# Odo Maletzki +radec-corp 5430/udp # RADEC CORP +radec-corp 5430/tcp # RADEC CORP +# David Chell +park-agent 5431/udp # PARK AGENT +park-agent 5431/tcp # PARK AGENT +# John Clifford +postgresql 5432/udp # PostgreSQL Database +postgresql 5432/tcp # PostgreSQL Database +# Tom Lane +pyrrho 5433/tcp # Pyrrho DBMS +pyrrho 5433/udp # Pyrrho DBMS +sgi-arrayd 5434/tcp # SGI Array Services Daemon +sgi-arrayd 5434/udp # SGI Array Services Daemon +# 5435 Unassigned +dttl 5435/udp # Data Tunneling Transceiver Linking (DTTL) +dttl 5435/tcp # Data Tunneling Transceiver Linking (DTTL) +# Richard Olsen +# 5436-5453 Unassigned +surebox 5453/tcp # SureBox +surebox 5453/udp # SureBox +# 5454 Unassigned +apc-5454 5454/udp # APC 5454 +apc-5454 5454/tcp # APC 5454 +apc-5455 5455/udp # APC 5455 +apc-5455 5455/tcp # APC 5455 +apc-5456 5456/udp # APC 5456 +apc-5456 5456/tcp # APC 5456 +# American Power Conversion +# 5457-5460 Unassigned +silkmeter 5461/udp # SILKMETER +silkmeter 5461/tcp # SILKMETER +# Alexander Kotopoulis +ttl-publisher 5462/udp # TTL Publisher +ttl-publisher 5462/tcp # TTL Publisher +# Peter Jacobs +ttlpriceproxy 5463/udp # TTL Price Proxy +ttlpriceproxy 5463/tcp # TTL Price Proxy +# Peter Jacobs +quailnet 5464/tcp # Quail Networks Object Broker +quailnet 5464/udp # Quail Networks Object Broker +# 5465 Unassigned +netops-broker 5465/udp # NETOPS-BROKER +netops-broker 5465/tcp # NETOPS-BROKER +# John R. Deuel +# 5466-5499 Unassigned +fcp-addr-srvr1 5500/udp # fcp-addr-srvr1 +fcp-addr-srvr1 5500/tcp # fcp-addr-srvr1 +fcp-addr-srvr2 5501/udp # fcp-addr-srvr2 +fcp-addr-srvr2 5501/tcp # fcp-addr-srvr2 +fcp-srvr-inst1 5502/udp # fcp-srvr-inst1 +fcp-srvr-inst1 5502/tcp # fcp-srvr-inst1 +fcp-srvr-inst2 5503/udp # fcp-srvr-inst2 +fcp-srvr-inst2 5503/tcp # fcp-srvr-inst2 +fcp-cics-gw1 5504/udp # fcp-cics-gw1 +fcp-cics-gw1 5504/tcp # fcp-cics-gw1 +# Mark Zeiss +# 5505-5552 Unassigned +sgi-eventmond 5553/udp # SGI Eventmond Port +sgi-eventmond 5553/tcp # SGI Eventmond Port +# Andrei Vilkotski June 2003 +sgi-esphttp 5554/udp # SGI ESP HTTP +sgi-esphttp 5554/tcp # SGI ESP HTTP +# Vladimir Legalov +############Port 5555 also used by HP Omniback##################### +personal-agent 5555/udp # Personal Agent +personal-agent 5555/tcp # Personal Agent +# Jackie Wu +################################################################### +freeciv 5556/tcp # Freeciv gameplay +freeciv 5556/udp # Freeciv gameplay +# 5557-5565 Unassigned +udpplus 5566/udp # UDPPlus +udpplus 5566/tcp # UDPPlus +# Cody Gibson +m-oap 5567/tcp # Multicast Object Access Protocol +m-oap 5567/udp # Multicast Object Access Protocol +sdt 5568/tcp # Session Data Transport Multicast +sdt 5568/udp # Session Data Transport Multicast +# 5569-5579 Unassigned +tmosms0 5580/tcp # T-Mobile SMS Protocol Message 0 +tmosms0 5580/udp # T-Mobile SMS Protocol Message 0 +tmosms1 5581/tcp # T-Mobile SMS Protocol Message 1 +tmosms1 5581/udp # T-Mobile SMS Protocol Message 1 +# 5582-5583 Unassigned +bis-web 5584/tcp # BeInSync-Web +bis-web 5584/udp # BeInSync-Web +bis-sync 5585/tcp # BeInSync-sync +bis-sync 5585/udp # BeInSync-sync +# 5586-5596 Unassigned +ininmessaging 5597/tcp # inin secure messaging +ininmessaging 5597/udp # inin secure messaging +mctfeed 5598/tcp # MCT Market Data Feed +mctfeed 5598/udp # MCT Market Data Feed +# 5599 Unassigned +esinstall 5599/udp # Enterprise Security Remote Install +esinstall 5599/tcp # Enterprise Security Remote Install +esmmanager 5600/udp # Enterprise Security Manager +esmmanager 5600/tcp # Enterprise Security Manager +esmagent 5601/udp # Enterprise Security Agent +esmagent 5601/tcp # Enterprise Security Agent +# Kimberly Gibbs +a1-msc 5602/udp # A1-MSC +a1-msc 5602/tcp # A1-MSC +a1-bs 5603/udp # A1-BS +a1-bs 5603/tcp # A1-BS +a3-sdunode 5604/udp # A3-SDUNode +a3-sdunode 5604/tcp # A3-SDUNode +a4-sdunode 5605/udp # A4-SDUNode +a4-sdunode 5605/tcp # A4-SDUNode +# Mike Dolan +# 5606-5630 Unassigned +ninaf 5627/tcp # Node Initiated Network Association Forma +ninaf 5627/udp # Node Initiated Network Association Forma +# 5628 Unassigned +symantec-sfdb 5629/tcp # Symantec Storage Foundation for Database +symantec-sfdb 5629/udp # Symantec Storage Foundation for Database +precise-comm 5630/tcp # PreciseCommunication +precise-comm 5630/udp # PreciseCommunication +# 5631 Unassigned +pcanywheredata 5631/udp # pcANYWHEREdata +pcanywheredata 5631/tcp # pcANYWHEREdata +pcanywherestat 5632/udp # pcANYWHEREstat +pcanywherestat 5632/tcp # pcANYWHEREstat +# Jon Rosarky +beorl 5633/tcp # BE Operations Request Listener +beorl 5633/udp # BE Operations Request Listener +# 5634-5671 Unassigned +amqp 5672/tcp # AMQP +amqp 5672/udp # AMQP +# 5673 Unassigned +jms 5673/udp # JACL Message Server +jms 5673/tcp # JACL Message Server +# Stuart Allen February 2002 +hyperscsi-port 5674/udp # HyperSCSI Port +hyperscsi-port 5674/tcp # HyperSCSI Port +# Data Storage Institute, Singapore +# February 2002 +v5ua 5675/udp # V5UA application port +v5ua 5675/tcp # V5UA application port +# Sanjay Rao February 2002 +raadmin 5676/udp # RA Administration +raadmin 5676/tcp # RA Administration +# Sergei Zjaikin February 2002 +questdb2-lnchr 5677/udp # Quest Central DB2 Launchr +questdb2-lnchr 5677/tcp # Quest Central DB2 Launchr +# Robert M. Mackowiak February 2002 +rrac 5678/udp # Remote Replication Agent Connection +rrac 5678/tcp # Remote Replication Agent Connection +dccm 5679/udp # Direct Cable Connect Manager +dccm 5679/tcp # Direct Cable Connect Manager +# Mark Miller +auriga-router 5680/tcp # Auriga Router Service +auriga-router 5680/udp # Auriga Router Service +ncxcp 5681/tcp # Net-coneX Control Protocol +ncxcp 5681/udp # Net-coneX Control Protocol +# 5682-5687 Unassigned +ggz 5688/udp # GGZ Gaming Zone +ggz 5688/tcp # GGZ Gaming Zone +# Josef Spillner January 2003 +qmvideo 5689/tcp # QM video network management protocol +qmvideo 5689/udp # QM video network management protocol +# 5690-5712 Unassigned +proshareaudio 5713/udp # proshare conf audio +proshareaudio 5713/tcp # proshare conf audio +prosharevideo 5714/udp # proshare conf video +prosharevideo 5714/tcp # proshare conf video +prosharedata 5715/udp # proshare conf data +prosharedata 5715/tcp # proshare conf data +prosharerequest 5716/udp # proshare conf request +prosharerequest 5716/tcp # proshare conf request +prosharenotify 5717/udp # proshare conf notify +prosharenotify 5717/tcp # proshare conf notify +# +dpm 5718/tcp # DPM Communication Server +dpm 5718/udp # DPM Communication Server +dpm-agent 5719/tcp # DPM Agent Coordinator +dpm-agent 5719/udp # DPM Agent Coordinator +# 5720 Unassigned +ms-licensing 5720/udp # MS-Licensing +ms-licensing 5720/tcp # MS-Licensing +# Thomas Lindeman November 2002 +dtpt 5721/tcp # Desktop Passthru Service +dtpt 5721/udp # Desktop Passthru Service +msdfsr 5722/tcp # Microsoft DFS Replication Service +msdfsr 5722/udp # Microsoft DFS Replication Service +omhs 5723/tcp # Operations Manager - Health Service +omhs 5723/udp # Operations Manager - Health Service +omsdk 5724/tcp # Operations Manager - SDK Service +omsdk 5724/udp # Operations Manager - SDK Service +# 5725-5728 Unassigned +openmail 5729/udp # Openmail User Agent Layer +openmail 5729/tcp # Openmail User Agent Layer +# OpenMail Encyclopedia +# Don Loughry +unieng 5730/udp # Steltor's calendar access +unieng 5730/tcp # Steltor's calendar access +# Bernard Desruisseaux +# 5731-5740 Unassigned +ida-discover1 5741/udp # IDA Discover Port 1 +ida-discover1 5741/tcp # IDA Discover Port 1 +ida-discover2 5742/udp # IDA Discover Port 2 +ida-discover2 5742/tcp # IDA Discover Port 2 +# MPITech Support +watchdoc-pod 5743/tcp # Watchdoc NetPOD Protocol +watchdoc-pod 5743/udp # Watchdoc NetPOD Protocol +watchdoc 5744/tcp # Watchdoc Server +watchdoc 5744/udp # Watchdoc Server +# 5745 Unassigned +fcopy-server 5745/udp # fcopy-server +fcopy-server 5745/tcp # fcopy-server +fcopys-server 5746/udp # fcopys-server +fcopys-server 5746/tcp # fcopys-server +# Moshe Leibovitch opencyc@hpopd.pwd.hp.com> +# Don Loughry +spramsca 5769/tcp # x509solutions Internal CA +spramsca 5769/udp # x509solutions Internal CA +spramsd 5770/tcp # x509solutions Secure Data +spramsd 5770/udp # x509solutions Secure Data +# 5771 Unassigned +netagent 5771/udp # NetAgent +netagent 5771/tcp # NetAgent +# Bradley Birnbaum +# 5772-5812 Unassigned +dali-port 5777/tcp # DALI Port +dali-port 5777/udp # DALI Port +# 5778-5812 Unassigned +icmpd 5813/udp # ICMPD +icmpd 5813/tcp # ICMPD +# Shane O'Donnell +spt-automation 5814/tcp # Support Automation +spt-automation 5814/udp # Support Automation +# 5815-5858 Unassigned +wherehoo 5859/udp # WHEREHOO +wherehoo 5859/tcp # WHEREHOO +# Jim Youll +# 5860-5967 Unassigned +ppsuitemsg 5863/tcp # PlanetPress Suite Messeng +ppsuitemsg 5863/udp # PlanetPress Suite Messeng +# 5864-5899 Unassigned +rfb 5900/tcp vnc-server # VNC Server +rfb 5900/udp vnc-server # VNC Server +# 5901-5962 Unassigned +indy 5963/tcp # Indy Application Server +indy 5963/udp # Indy Application Server +# 5964-5967 Unassigned +mppolicy-v5 5968/udp # mppolicy-v5 +mppolicy-v5 5968/tcp # mppolicy-v5 +mppolicy-mgr 5969/udp # mppolicy-mgr +mppolicy-mgr 5969/tcp # mppolicy-mgr +# Yutaka Ono +# 5970-5986 Unassigned +wsman 5985/tcp # WBEM WS-Management HTTP +wsman 5985/udp # WBEM WS-Management HTTP +wsmans 5986/tcp # WBEM WS-Management HTTP over TLS/SSL +wsmans 5986/udp # WBEM WS-Management HTTP over TLS/SSL +# 5987 Unassigned +wbem-rmi 5987/udp # WBEM RMI +wbem-rmi 5987/tcp # WBEM RMI +wbem-http 5988/udp # WBEM HTTP +wbem-http 5988/tcp # WBEM HTTP +# Jim Davis +wbem-https 5989/udp # WBEM HTTPS +wbem-https 5989/tcp # WBEM HTTPS +# Jim Davis +wbem-exp-https 5990/tcp # WBEM Export HTTPS +wbem-exp-https 5990/udp # WBEM Export HTTPS +# 5991 Unassigned +nuxsl 5991/udp # NUXSL +nuxsl 5991/tcp # NUXSL +# Kai Kretschmann March 2002 +consul-insight 5992/tcp # Consul InSight Security +consul-insight 5992/udp # Consul InSight Security +# 5993-5998 Unassigned +cvsup 5999/udp # CVSup +cvsup 5999/tcp # CVSup +# Randall Atkinson +# Stephen Gildea +ndl-ahp-svc 6064/udp # NDL-AHP-SVC +ndl-ahp-svc 6064/tcp # NDL-AHP-SVC +# John Richmond +winpharaoh 6065/udp # WinPharaoh +winpharaoh 6065/tcp # WinPharaoh +# Basil Lee +ewctsp 6066/udp # EWCTSP +ewctsp 6066/tcp # EWCTSP +# Mark Bailon +srb 6067/udp # SRB +srb 6067/tcp # SRB +# Heinz Naef +gsmp 6068/udp # GSMP +gsmp 6068/tcp # GSMP +# Avri Doria +trip 6069/udp # TRIP +trip 6069/tcp # TRIP +# Hussein F. Salama +messageasap 6070/udp # Messageasap +messageasap 6070/tcp # Messageasap +# Murray Freeman +ssdtp 6071/udp # SSDTP +ssdtp 6071/tcp # SSDTP +# Michael Shearson +diagnose-proc 6072/udp # DIAGNOSE-PROC +diagnose-proc 6072/tcp # DIAGNOSE-PROC +# Allan Miller +directplay8 6073/udp # DirectPlay8 +directplay8 6073/tcp # DirectPlay8 +# John Kane +max 6074/tcp # Microsoft Max +max 6074/udp # Microsoft Max +# 6075-6084 Unassigned +konspire2b 6085/udp # konspire2b p2p network +konspire2b 6085/tcp # konspire2b p2p network +# Jason Rohrer October 2002 +pdtp 6086/tcp # PDTP P2P +pdtp 6086/udp # PDTP P2P +ldss 6087/tcp # Local Download Sharing Service +ldss 6087/udp # Local Download Sharing Service +# 6088-6099 Unassigned +synchronet-db 6100/udp # SynchroNet-db +synchronet-db 6100/tcp # SynchroNet-db +synchronet-rtc 6101/udp # SynchroNet-rtc +synchronet-rtc 6101/tcp # SynchroNet-rtc +synchronet-upd 6102/udp # SynchroNet-upd +synchronet-upd 6102/tcp # SynchroNet-upd +# Arne Haugland +rets 6103/udp # RETS +rets 6103/tcp # RETS +# Bruce Toback +dbdb 6104/udp # DBDB +dbdb 6104/tcp # DBDB +# Aaron Brick +primaserver 6105/udp # Prima Server +primaserver 6105/tcp # Prima Server +mpsserver 6106/udp # MPS Server +mpsserver 6106/tcp # MPS Server +# Prima Designs Systems Ltd. +etc-control 6107/udp # ETC Control +etc-control 6107/tcp # ETC Control +# Steve Polishinski +sercomm-scadmin 6108/udp # Sercomm-SCAdmin +sercomm-scadmin 6108/tcp # Sercomm-SCAdmin +# Melinda Tsao +globecast-id 6109/udp # GLOBECAST-ID +globecast-id 6109/tcp # GLOBECAST-ID +# Piers Scannell +softcm 6110/udp # HP SoftBench CM +softcm 6110/tcp # HP SoftBench CM +spc 6111/udp # HP SoftBench Sub-Process Control +spc 6111/tcp # HP SoftBench Sub-Process Control +# Scott A. Kramer +dtspcd 6112/udp # dtspcd +dtspcd 6112/tcp # dtspcd +# Doug Royer +# 6113-6122 Unassigned +bex-webadmin 6122/tcp # Backup Express Web Server +bex-webadmin 6122/udp # Backup Express Web Server +# 6123 Unassigned +backup-express 6123/udp # Backup Express +backup-express 6123/tcp # Backup Express +# Chi Shih Chang +# 6124-6140 Unassigned +nbt-wol 6133/tcp # New Boundary Tech WOL +nbt-wol 6133/udp # New Boundary Tech WOL +# 6134-6140 Unassigned +meta-corp 6141/udp # Meta Corporation License Manager +meta-corp 6141/tcp # Meta Corporation License Manager +# Osamu Masuda <--none---> +aspentec-lm 6142/udp # Aspen Technology License Manager +aspentec-lm 6142/tcp # Aspen Technology License Manager +# Kevin Massey +watershed-lm 6143/udp # Watershed License Manager +watershed-lm 6143/tcp # Watershed License Manager +# David Ferrero +statsci1-lm 6144/udp # StatSci License Manager - 1 +statsci1-lm 6144/tcp # StatSci License Manager - 1 +statsci2-lm 6145/udp # StatSci License Manager - 2 +statsci2-lm 6145/tcp # StatSci License Manager - 2 +# Scott Blachowicz +lonewolf-lm 6146/udp # Lone Wolf Systems License Manager +lonewolf-lm 6146/tcp # Lone Wolf Systems License Manager +# Dan Klein +montage-lm 6147/udp # Montage License Manager +montage-lm 6147/tcp # Montage License Manager +# Michael Ubell +ricardo-lm 6148/udp # Ricardo North America License Manager +ricardo-lm 6148/tcp # Ricardo North America License Manager +# M Flemming +tal-pod 6149/udp # tal-pod +tal-pod 6149/tcp # tal-pod +# Steven Loomis +# 6150-6252 Unassigned +patrol-ism 6161/tcp # PATROL Internet Srv Mgr +patrol-ism 6161/udp # PATROL Internet Srv Mgr +patrol-coll 6162/tcp # PATROL Collector +patrol-coll 6162/udp # PATROL Collector +pscribe 6163/tcp # Precision Scribe Cnx Port +pscribe 6163/udp # Precision Scribe Cnx Port +# 6164-6199 Unassigned +lm-x 6200/tcp # LM-X License Manager by X-Formation +lm-x 6200/udp # LM-X License Manager by X-Formation +# 6201-6221 Unassigned +radmind 6222/tcp # Radmind Access Protocol +radmind 6222/udp # Radmind Access Protocol +# 6223-6252 Unassigned +crip 6253/udp # CRIP +crip 6253/tcp # CRIP +# Mike Rodbell +# 6254-6299 Unassigned +grid 6268/tcp # Grid Authentication +grid 6268/udp # Grid Authentication +grid-alt 6269/tcp # Grid Authentication Alt +grid-alt 6269/udp # Grid Authentication Alt +# 6270-6299 Unassigned +bmc-grx 6300/udp # BMC GRX +bmc-grx 6300/tcp # BMC GRX +# Ed Penak +bmc_ctd_ldap 6301/tcp # BMC CONTROL-D LDAP SERVER +bmc_ctd_ldap 6301/udp # BMC CONTROL-D LDAP SERVER +# 6302-6319 Unassigned +repsvc 6320/tcp # Double-Take Replication Service +repsvc 6320/udp # Double-Take Replication Service +# 6321 Unassigned +emp-server1 6321/udp # Empress Software Connectivity Server 1 +emp-server1 6321/tcp # Empress Software Connectivity Server 1 +emp-server2 6322/udp # Empress Software Connectivity Server 2 +emp-server2 6322/tcp # Empress Software Connectivity Server 2 +# Srdjan Holovac +# 6323-6342 Unassigned +sflow 6343/udp # sFlow traffic monitoring +sflow 6343/tcp # sFlow traffic monitoring +# Peter Phaal June 2003 +# 6344-6345 Unassigned +gnutella-svc 6346/udp # gnutella-svc +gnutella-svc 6346/tcp # gnutella-svc +gnutella-rtr 6347/udp # gnutella-rtr +gnutella-rtr 6347/tcp # gnutella-rtr +# Serguei Osokine +# 6348-6381 Unassigned +metatude-mds 6382/udp # Metatude Dialogue Server +metatude-mds 6382/tcp # Metatude Dialogue Server +# Menno Zweistra +# 6383-6388 Unassigned +clariion-evr01 6389/udp # clariion-evr01 +clariion-evr01 6389/tcp # clariion-evr01 +# Dave DesRoches +# 6390-6399 Unassigned +# The following blocks are in use by Seagate Software 6400-6410 # +# The previous ports are in use by Seagate Software 6400-6410 # +# Contact for these ports is Wade Richards +# 6411-6454 Unassigned +faxcomservice 6417/tcp # Faxcom Message Service +faxcomservice 6417/udp # Faxcom Message Service +# 6418-6419 Unassigned +nim-vdrshell 6420/tcp # NIM_VDRShell +nim-vdrshell 6420/udp # NIM_VDRShell +nim-wan 6421/tcp # NIM_WAN +nim-wan 6421/udp # NIM_WAN +# 6422-6442 Unassigned +sun-sr-https 6443/tcp # Service Registry Default HTTPS Domain +sun-sr-https 6443/udp # Service Registry Default HTTPS Domain +sge_qmaster 6444/tcp # Grid Engine Qmaster Service +sge_qmaster 6444/udp # Grid Engine Qmaster Service +sge_execd 6445/tcp # Grid Engine Execution Service +sge_execd 6445/udp # Grid Engine Execution Service +# 6446-6454 Unassigned +skip-cert-recv 6455/tcp # SKIP Certificate Receive +skip-cert-send 6456/tcp # SKIP Certificate Send +# Tom Markson +# 6457-6470 Unassigned +skip-cert-send 6456/udp # SKIP Certificate Send +# 6457-6470 Unassigned +lvision-lm 6471/udp # LVision License Manager +lvision-lm 6471/tcp # LVision License Manager +# Brian McKinnon +# 6472-6499 Unassigned +sun-sr-http 6480/tcp # Service Registry Default HTTP Domain +sun-sr-http 6480/udp # Service Registry Default HTTP Domain +# 6481-6483 Unassigned +sun-sr-jms 6484/tcp # Service Registry Default JMS Domain +sun-sr-jms 6484/udp # Service Registry Default JMS Domain +sun-sr-iiop 6485/tcp # Service Registry Default IIOP Domain +sun-sr-iiop 6485/udp # Service Registry Default IIOP Domain +sun-sr-iiops 6486/tcp # Service Registry Default IIOPS Domain +sun-sr-iiops 6486/udp # Service Registry Default IIOPS Domain +sun-sr-iiop-aut 6487/tcp # Service Registry Default IIOPAuth Domain +sun-sr-iiop-aut 6487/udp # Service Registry Default IIOPAuth Domain +sun-sr-jmx 6488/tcp # Service Registry Default JMX Domain +sun-sr-jmx 6488/udp # Service Registry Default JMX Domain +sun-sr-admin 6489/tcp # Service Registry Default Admin Domain +sun-sr-admin 6489/udp # Service Registry Default Admin Domain +# 6490-6499 Unassigned +boks 6500/udp # BoKS Master +boks 6500/tcp # BoKS Master +boks_servc 6501/udp # BoKS Servc +boks_servc 6501/tcp # BoKS Servc +boks_servm 6502/udp # BoKS Servm +boks_servm 6502/tcp # BoKS Servm +boks_clntd 6503/udp # BoKS Clntd +boks_clntd 6503/tcp # BoKS Clntd +# Magnus Nystrom +# 6504 Unassigned +badm_priv 6505/udp # BoKS Admin Private Port +badm_priv 6505/tcp # BoKS Admin Private Port +badm_pub 6506/udp # BoKS Admin Public Port +badm_pub 6506/tcp # BoKS Admin Public Port +bdir_priv 6507/udp # BoKS Dir Server, Private Port +bdir_priv 6507/tcp # BoKS Dir Server, Private Port +bdir_pub 6508/udp # BoKS Dir Server, Public Port +bdir_pub 6508/tcp # BoKS Dir Server, Public Port +# Magnus Nystrom +mgcs-mfp-port 6509/udp # MGCS-MFP Port +mgcs-mfp-port 6509/tcp # MGCS-MFP Port +# Minoru Ozaki +mcer-port 6510/udp # MCER Port +mcer-port 6510/tcp # MCER Port +# Ade Adebayo +# 6511-6542 Unassigned +lds-distrib 6543/udp # lds_distrib +lds-distrib 6543/tcp # lds_distrib +# Jack Baker June 2003 +lds-dump 6544/tcp # LDS Dump Service +lds-dump 6544/udp # LDS Dump Service +# 6545-6546 Unassigned +apc-6547 6547/udp # APC 6547 +apc-6547 6547/tcp # APC 6547 +apc-6548 6548/udp # APC 6548 +apc-6548 6548/tcp # APC 6548 +apc-6549 6549/udp # APC 6549 +apc-6549 6549/tcp # APC 6549 +# American Power Conversion +fg-sysupdate 6550/udp # fg-sysupdate +fg-sysupdate 6550/tcp # fg-sysupdate +# Mark Beyer +# 6551-6557 Unassigned +xdsxdm 6558/udp # +xdsxdm 6558/tcp # +# Brian Tackett possible contact +# 6559-6565 Unassigned +sane-port 6566/udp # SANE Control Port +sane-port 6566/tcp # SANE Control Port +# Henning Meier-Geinitz October 2002 +# 6567-6579 Unassigned +affiliate 6579/tcp # Affiliate +affiliate 6579/udp # Affiliate +# 6580 Unassigned +parsec-master 6580/udp # Parsec Masterserver +parsec-master 6580/tcp # Parsec Masterserver +parsec-peer 6581/udp # Parsec Peer-to-Peer +parsec-peer 6581/tcp # Parsec Peer-to-Peer +parsec-game 6582/udp # Parsec Gameserver +parsec-game 6582/tcp # Parsec Gameserver +# Andreas Varga +# 6588 Unassigned +####Unofficial use of port 6588 by AnalogX and Microsoft#### +# 6589-6627 Unassigned +joaJewelSuite 6583/tcp # JOA Jewel Suite +joaJewelSuite 6583/udp # JOA Jewel Suite +# 6584-6618 Unassigned +odette-ftps 6619/tcp # ODETTE-FTP over TLS/SSL +odette-ftps 6619/udp # ODETTE-FTP over TLS/SSL +kftp-data 6620/tcp # Kerberos V5 FTP Data +kftp-data 6620/udp # Kerberos V5 FTP Data +kftp 6621/tcp # Kerberos V5 FTP Control +kftp 6621/udp # Kerberos V5 FTP Control +mcftp 6622/tcp # Multicast FTP +mcftp 6622/udp # Multicast FTP +ktelnet 6623/tcp # Kerberos V5 Telnet +ktelnet 6623/udp # Kerberos V5 Telnet +# 6624-6625 Unassigned +wago-service 6626/tcp # WAGO Service and Update +wago-service 6626/udp # WAGO Service and Update +nexgen 6627/tcp # Allied Electronics NeXGen +nexgen 6627/udp # Allied Electronics NeXGen +# 6628 Unassigned +afesc-mc 6628/udp # AFE Stock Channel M/C +afesc-mc 6628/tcp # AFE Stock Channel M/C +# Timothy Tam March 2003 +# 6629-6630 Unassigned +mach 6631/udp # Mitchell telecom host +mach 6631/tcp # Mitchell telecom host +# Mark Derail March 2003 +# 6632-6664 Unassigned +# Brian Tackett +vocaltec-gold 6670/udp # Vocaltec Global Online Directory +vocaltec-gold 6670/tcp # Vocaltec Global Online Directory +# Scott Petrack +# 6671 Unassigned +vision_server 6672/udp # vision_server +vision_server 6672/tcp # vision_server +vision_elmd 6673/udp # vision_elmd +vision_elmd 6673/tcp # vision_elmd +# Chris Kramer +# 6674-6700 Unassigned +kti-icad-srvr 6701/udp # KTI/ICAD Nameserver +kti-icad-srvr 6701/tcp # KTI/ICAD Nameserver +# Stanley Knutson +e-design-net 6702/tcp # e-Design network +e-design-net 6702/udp # e-Design network +e-design-web 6703/tcp # e-Design web +e-design-web 6703/udp # e-Design web +# 6704-6713 Unassigned +ibprotocol 6714/udp # Internet Backplane Protocol +ibprotocol 6714/tcp # Internet Backplane Protocol +# Alessandro Bassi +fibotrader-com 6715/tcp # Fibotrader Communications +fibotrader-com 6715/udp # Fibotrader Communications +# 6716-6766 Unassigned +bmc-perf-agent 6767/udp # BMC PERFORM AGENT +bmc-perf-agent 6767/tcp # BMC PERFORM AGENT +bmc-perf-mgrd 6768/udp # BMC PERFORM MGRD +bmc-perf-mgrd 6768/tcp # BMC PERFORM MGRD +# Dima Seliverstov +adi-gxp-srvprt 6769/tcp # ADInstruments GxP Server +adi-gxp-srvprt 6769/udp # ADInstruments GxP Server +plysrv-http 6770/tcp # PolyServe http +plysrv-http 6770/udp # PolyServe http +plysrv-https 6771/tcp # PolyServe https +plysrv-https 6771/udp # PolyServe https +# 6772-6784 Unassigned +dgpf-exchg 6785/tcp # DGPF Individual Exchange +dgpf-exchg 6785/udp # DGPF Individual Exchange +smc-jmx 6786/tcp # Sun Java Web Console JMX +smc-jmx 6786/udp # Sun Java Web Console JMX +smc-admin 6787/tcp # Sun Web Console Admin +smc-admin 6787/udp # Sun Web Console Admin +# 6788 Unassigned +smc-http 6788/udp # SMC-HTTP +smc-http 6788/tcp # SMC-HTTP +# Ratnadeep Bhattacharjee November 2002 +smc-https 6789/udp # SMC-HTTPS +smc-https 6789/tcp # SMC-HTTPS +# Ratnadeep Bhattacharjee August 2002 +hnmp 6790/udp # HNMP +hnmp 6790/tcp # HNMP +# Jude George +hnm 6791/tcp # Halcyon Network Manager +hnm 6791/udp # Halcyon Network Manager +# 6792-6830 Unassigned +ambit-lm 6831/udp # ambit-lm +ambit-lm 6831/tcp # ambit-lm +# Don Hejna +# 6832-6840 Unassigned +netmo-default 6841/udp # Netmo Default +netmo-default 6841/tcp # Netmo Default +netmo-http 6842/udp # Netmo HTTP +netmo-http 6842/tcp # Netmo HTTP +# Urs Bertschinger +# 6843-6849 Unassigned +iccrushmore 6850/udp # ICCRUSHMORE +iccrushmore 6850/tcp # ICCRUSHMORE +# Dave Hubbard +# 6851-6887 Unassigned +muse 6888/udp # MUSE +muse 6888/tcp # MUSE +# Muse Communications Corporation +# +# 6889-6960 Unassigned +xsmsvc 6936/tcp # XenSource Management Service +xsmsvc 6936/udp # XenSource Management Service +# 6937-6945 Unassigned +bioserver 6946/tcp # Biometrics Server +bioserver 6946/udp # Biometrics Server +# 6947-6950 Unassigned +otlp 6951/tcp # OTLP +otlp 6951/udp # OTLP +# 6952-6960 Unassigned +jmact3 6961/udp # JMACT3 +jmact3 6961/tcp # JMACT3 +jmevt2 6962/udp # jmevt2 +jmevt2 6962/tcp # jmevt2 +swismgr1 6963/udp # swismgr1 +swismgr1 6963/tcp # swismgr1 +swismgr2 6964/udp # swismgr2 +swismgr2 6964/tcp # swismgr2 +swistrap 6965/udp # swistrap +swistrap 6965/tcp # swistrap +swispol 6966/udp # swispol +swispol 6966/tcp # swispol +# Yutaka Ono +# 6967-6968 Unassigned +acmsoda 6969/udp # acmsoda +acmsoda 6969/tcp # acmsoda +# Daniel Simms +# 6970-6997 Unassigned +iatp-highpri 6998/udp # IATP-highPri +iatp-highpri 6998/tcp # IATP-highPri +iatp-normalpri 6999/udp # IATP-normalPri +iatp-normalpri 6999/tcp # IATP-normalPri +# John Murphy +afs3-fileserver 7000/udp # file server itself +afs3-fileserver 7000/tcp # file server itself +afs3-callback 7001/udp # callbacks to cache managers +afs3-callback 7001/tcp # callbacks to cache managers +afs3-prserver 7002/udp # users & groups database +afs3-prserver 7002/tcp # users & groups database +afs3-vlserver 7003/udp # volume location database +afs3-vlserver 7003/tcp # volume location database +afs3-kaserver 7004/udp # AFS/Kerberos authentication service +afs3-kaserver 7004/tcp # AFS/Kerberos authentication service +afs3-volser 7005/udp # volume managment server +afs3-volser 7005/tcp # volume managment server +afs3-errors 7006/udp # error interpretation service +afs3-errors 7006/tcp # error interpretation service +afs3-bos 7007/udp # basic overseer process +afs3-bos 7007/tcp # basic overseer process +afs3-update 7008/udp # server-to-server updater +afs3-update 7008/tcp # server-to-server updater +afs3-rmtsys 7009/udp # remote cache manager service +afs3-rmtsys 7009/tcp # remote cache manager service +# +ups-onlinet 7010/udp # onlinet uninterruptable power supplies +ups-onlinet 7010/tcp # onlinet uninterruptable power supplies +# Brian Hammill +talon-disc 7011/udp # Talon Discovery Port +talon-disc 7011/tcp # Talon Discovery Port +talon-engine 7012/udp # Talon Engine +talon-engine 7012/tcp # Talon Engine +microtalon-dis 7013/udp # Microtalon Discovery +microtalon-dis 7013/tcp # Microtalon Discovery +microtalon-com 7014/udp # Microtalon Communications +microtalon-com 7014/tcp # Microtalon Communications +talon-webserver 7015/udp # Talon Webserver +talon-webserver 7015/tcp # Talon Webserver +# Jack Curtin +# 7016-7019 Unassigned +dpserve 7020/udp # DP Serve +dpserve 7020/tcp # DP Serve +dpserveadmin 7021/udp # DP Serve Admin +dpserveadmin 7021/tcp # DP Serve Admin +# Allan Stanley +ctdp 7022/tcp # CT Discovery Protocol +ctdp 7022/udp # CT Discovery Protocol +ct2nmcs 7023/tcp # Comtech T2 NMCS +ct2nmcs 7023/udp # Comtech T2 NMCS +vmsvc 7024/tcp # Vormetric service +vmsvc 7024/udp # Vormetric service +vmsvc-2 7025/tcp # Vormetric Service II +vmsvc-2 7025/udp # Vormetric Service II +# 7026-7029 Unassigned +op-probe 7030/udp # ObjectPlanet probe +op-probe 7030/tcp # ObjectPlanet probe +# Bjorn Jarle Kvande April 2002 +# 7031-7069 Unassigned +arcp 7070/udp # ARCP +arcp 7070/tcp # ARCP +# Jude George +# 7071-7098 Unassigned +lazy-ptop 7099/udp # lazy-ptop +lazy-ptop 7099/tcp # lazy-ptop +# Guy Keren +font-service 7100/udp # X Font Service +font-service 7100/tcp # X Font Service +# Stephen Gildea +# 7101-7120 Unassigned +virprot-lm 7121/udp # Virtual Prototypes License Manager +virprot-lm 7121/tcp # Virtual Prototypes License Manager +# Victor Galis +# 7122-7173 Unassigned +scenidm 7128/tcp # intelligent data manager +scenidm 7128/udp # intelligent data manager +scenccs 7129/tcp # Catalog Content Search +scenccs 7129/udp # Catalog Content Search +# 7130-7160 Unassigned +cabsm-comm 7161/tcp # CA BSM Comm +cabsm-comm 7161/udp # CA BSM Comm +caistoragemgr 7162/tcp # CA Storage Manager +caistoragemgr 7162/udp # CA Storage Manager +cacsambroker 7163/tcp # CA Connection Broker +cacsambroker 7163/udp # CA Connection Broker +# 7164-7173 Unassigned +clutild 7174/udp # Clutild +clutild 7174/tcp # Clutild +# Cheryl Stoutenburg +# 7175-7199 Unassigned +fodms 7200/udp # FODMS FLIP +fodms 7200/tcp # FODMS FLIP +# David Anthony +dlip 7201/udp # DLIP +dlip 7201/tcp # DLIP +# Albert Manfredi +# 7202-7279 Unassigned +ramp 7227/tcp # Registry A & M Protocol +ramp 7227/udp # Registry A $ M Protocol +# 7228-7271 Unassigned +watchme-7272 7272/tcp # WatchMe Monitoring 7272 +watchme-7272 7272/udp # WatchMe Monitoring 7272 +oma-rlp 7273/tcp # OMA Roaming Location +oma-rlp 7273/udp # OMA Roaming Location +oma-rlp-s 7274/tcp # OMA Roaming Location SEC +oma-rlp-s 7274/udp # OMA Roaming Location SEC +oma-ulp 7275/tcp # OMA UserPlane Location +oma-ulp 7275/udp # OMA UserPlane Location +# 7276-7279 Unassigned +itactionserver1 7280/udp # ITACTIONSERVER 1 +itactionserver1 7280/tcp # ITACTIONSERVER 1 +itactionserver2 7281/udp # ITACTIONSERVER 2 +itactionserver2 7281/tcp # ITACTIONSERVER 2 +# Brian Taylor +# 7282-7299 Unassigned +# Edgar Blum +lcm-server 7365/tcp # LifeKeeper Communications +lcm-server 7365/udp # LifeKeeper Communications +# 7366-7390 Unassigned +mindfilesys 7391/udp # mind-file system server +mindfilesys 7391/tcp # mind-file system server +mrssrendezvous 7392/udp # mrss-rendezvous server +mrssrendezvous 7392/tcp # mrss-rendezvous server +# Dave Porter +nfoldman 7393/tcp # nFoldMan Remote Publish +nfoldman 7393/udp # nFoldMan Remote Publish +fse 7394/tcp # File system export of backup images +fse 7394/udp # File system export of backup images +# 7395 Unassigned +winqedit 7395/udp # winqedit +winqedit 7395/tcp # winqedit +# David Greer +# 7396-7425 Unassigned +hexarc 7397/tcp # Hexarc Command Language +hexarc 7397/udp # Hexarc Command Language +# 7398-7399 Unassigned +rtps-discovery 7400/tcp # RTPS Discovery +rtps-discovery 7400/udp # RTPS Discovery +rtps-dd-ut 7401/tcp # RTPS Data-Distribution User-Traffic +rtps-dd-ut 7401/udp # RTPS Data-Distribution User-Traffic +rtps-dd-mt 7402/tcp # RTPS Data-Distribution Meta-Traffic +rtps-dd-mt 7402/udp # RTPS Data-Distribution Meta-Traffic +# 7403-7409 Unassigned +ionixnetmon 7410/tcp # Ionix Network Monitor +ionixnetmon 7410/udp # Ionix Network Monitor +# 7411-7420 Unassigned +mtportmon 7421/tcp # Matisse Port Monitor +mtportmon 7421/udp # Matisse Port Monitor +# 7422-7425 Unassigned +pmdmgr 7426/udp # OpenView DM Postmaster Manager +pmdmgr 7426/tcp # OpenView DM Postmaster Manager +oveadmgr 7427/udp # OpenView DM Event Agent Manager +oveadmgr 7427/tcp # OpenView DM Event Agent Manager +ovladmgr 7428/udp # OpenView DM Log Agent Manager +ovladmgr 7428/tcp # OpenView DM Log Agent Manager +opi-sock 7429/udp # OpenView DM rqt communication +opi-sock 7429/tcp # OpenView DM rqt communication +xmpv7 7430/udp # OpenView DM xmpv7 api pipe +xmpv7 7430/tcp # OpenView DM xmpv7 api pipe +pmd 7431/udp # OpenView DM ovc/xmpv3 api pipe +pmd 7431/tcp # OpenView DM ovc/xmpv3 api pipe +# Dave Lamb +faximum 7437/udp # Faximum +faximum 7437/tcp # Faximum +# George Pajari +# 7438-7490 Unassigned +oracleas-https 7443/tcp # Oracle Application Server HTTPS +oracleas-https 7443/udp # Oracle Application Server HTTPS +# 7444-7490 Unassigned +telops-lmd 7491/udp # telops-lmd +telops-lmd 7491/tcp # telops-lmd +# David Spencer +# 7492-7499 Unassigned +silhouette 7500/tcp # Silhouette User +silhouette 7500/udp # Silhouette User +# 7501 Unassigned +ovbus 7501/udp # HP OpenView Bus Daemon +ovbus 7501/tcp # HP OpenView Bus Daemon +# David M. Rhodes +# 7502-7509 Unassigned +ovhpas 7510/udp # HP OpenView Application Server +ovhpas 7510/tcp # HP OpenView Application Server +# Jeff Conrad +pafec-lm 7511/udp # pafec-lm +pafec-lm 7511/tcp # pafec-lm +# Billy Dhillon +# 7512-7543 Unassigned +atul 7543/tcp # atul server +atul 7543/udp # atul server +# 7544 Unassigned +nta-ds 7544/udp # FlowAnalyzer DisplayServer +nta-ds 7544/tcp # FlowAnalyzer DisplayServer +nta-us 7545/udp # FlowAnalyzer UtilityServer +nta-us 7545/tcp # FlowAnalyzer UtilityServer +# Fred Messinger +cfs 7546/tcp # Cisco Fabric service +cfs 7546/udp # Cisco Fabric service +cwmp 7547/tcp # DSL Forum CWMP +cwmp 7547/udp # DSL Forum CWMP +tidp 7548/tcp # Threat Information Distribution Protocol +tidp 7548/udp # Threat Information Distribution Protocol +nls-tl 7549/tcp # Network Layer Signaling Transport Layer +nls-tl 7549/udp # Network Layer Signaling Transport Layer +# 7550-7559 Unassigned +sncp 7560/tcp # Sniffer Command Protocol +sncp 7560/udp # Sniffer Command Protocol +# 7561-7565 Unassigned +vsi-omega 7566/udp # VSI Omega +vsi-omega 7566/tcp # VSI Omega +# Curtis Smith +# 7567-7569 Unassigned +aries-kfinder 7570/udp # Aries Kfinder +aries-kfinder 7570/tcp # Aries Kfinder +# James King, III +# 7571-7587 Unassigned +sun-lm 7588/udp # Sun License Manager +sun-lm 7588/tcp # Sun License Manager +# Sophie Deng +# 7589-7623 Unassigned +indi 7624/udp # Instrument Neutral Distributed Interface +indi 7624/tcp # Instrument Neutral Distributed Interface +# Elwood Downey April 2002 +# 7625-7632 Unassigned +simco 7626/tcp # SImple Middlebox COnfiguration (SIMCO) Server +# RFC4540 +soap-http 7627/tcp # SOAP Service Port +soap-http 7627/udp # SOAP Service Port +zen-pawn 7628/tcp # Primary Agent Work Notification +zen-pawn 7628/udp # Primary Agent Work Notification +xdas 7629/tcp # OpenXDAS Wire Protocol +xdas 7629/udp # OpenXDAS Wire Protocol +# 7630-7632 Unassigned +pmdfmgt 7633/udp # PMDF Management +pmdfmgt 7633/tcp # PMDF Management +# Hunter Goatley +# 7634-7673 Unassigned +cuseeme 7648/tcp # bonjour-cuseeme +cuseeme 7648/udp # bonjour-cuseeme +# 7649-7673 Unassigned +imqtunnels 7674/udp # iMQ SSL tunnel +imqtunnels 7674/tcp # iMQ SSL tunnel +imqtunnel 7675/udp # iMQ Tunnel +imqtunnel 7675/tcp # iMQ Tunnel +# Shailesh S. Bavadekar April 2002 +imqbrokerd 7676/udp # iMQ Broker Rendezvous +imqbrokerd 7676/tcp # iMQ Broker Rendezvous +# Joseph Di Pol April 2002 +sun-user-https 7677/tcp # Sun App Server - HTTPS +sun-user-https 7677/udp # Sun App Server - HTTPS +# 7678-7696 Unassigned +klio 7697/tcp # KLIO communications +klio 7697/udp # KLIO communications +# 7698-7706 Unassigned +sync-em7 7707/tcp # EM7 Dynamic Updates +sync-em7 7707/udp # EM7 Dynamic Updates +scinet 7708/tcp # scientia.net +scinet 7708/udp # scientia.net +# 7709-7719 Unassigned +medimageportal 7720/tcp # MedImage Portal +medimageportal 7720/udp # MedImage Portal +# 7721-7724 Unassigned +nitrogen 7725/tcp # Nitrogen Service +nitrogen 7725/udp # Nitrogen Service +freezexservice 7726/tcp # FreezeX Console Service +freezexservice 7726/udp # FreezeX Console Service +trident-data 7727/tcp # Trident Systems Data +trident-data 7727/udp # Trident Systems Data +# 7728-7737 Unassigned +aiagent 7738/tcp # Peregrine Discovery Agent +aiagent 7738/udp # Peregrine Discovery Agent +# 7739-7742 Unassigned +sstp-1 7743/udp # Sakura Script Transfer Protocol +sstp-1 7743/tcp # Sakura Script Transfer Protocol +# Kouichi Takeda +raqmon-pdu 7744/tcp # RAQMON PDU +raqmon-pdu 7744/udp # RAQMON PDU +# RFC4712 +# 7745-7776 Unassigned +cbt 7777/udp # cbt +cbt 7777/tcp # cbt +# Tony Ballardie +interwise 7778/udp # Interwise +interwise 7778/tcp # Interwise +# Joseph Gray +vstat 7779/udp # VSTAT +vstat 7779/tcp # VSTAT +# Vinh Nguyn +# 7780 Unassigned +accu-lmgr 7781/udp # accu-lmgr +accu-lmgr 7781/tcp # accu-lmgr +# Moises E. Hernandez +# 7782-7785 Unassigned +minivend 7786/udp # MINIVEND +minivend 7786/tcp # MINIVEND +# Mike Heins +popup-reminders 7787/tcp # Popup Reminders Receive +popup-reminders 7787/udp # Popup Reminders Receive +# 7788 Unassigned +office-tools 7789/tcp # Office Tools Pro Receive +office-tools 7789/udp # Office Tools Pro Receive +# 7790-7793 Unassigned +q3ade 7794/tcp # Q3ADE Cluster Service +q3ade 7794/udp # Q3ADE Cluster Service +# 7795-7796 Unassigned +pnet-conn 7797/udp # Propel Connector port +pnet-conn 7797/tcp # Propel Connector port +pnet-enc 7798/udp # Propel Encoder port +pnet-enc 7798/tcp # Propel Encoder port +# Leif Hedstrom April 2002 +# 7799 Unassigned +asr 7800/tcp Apple Software Restore +asr 7800/udp Apple Software Restore +# Jim Kateley January 2006 +ssp-client 7801/tcp # Secure Server Protocol - client +ssp-client 7801/udp # Secure Server Protocol - client +# 7802-7844 Unassigned +apc-7845 7845/udp # APC 7845 +apc-7845 7845/tcp # APC 7845 +apc-7846 7846/udp # APC 7846 +apc-7846 7846/tcp # APC 7846 +# American Power Conversion +# 7847-7912 Unassigned +ubroker 7887/tcp # Universal Broker +ubroker 7887/udp # Universal Broker +# 7888-7899 Unassigned +mevent 7900/tcp # Multicast Event +mevent 7900/udp # Multicast Event +tnos-sp 7901/tcp # TNOS Service Protocol +tnos-sp 7901/udp # TNOS Service Protocol +tnos-dp 7902/tcp # TNOS DiaguardProtocol +tnos-dp 7902/udp # TNOS DiaguardProtocol +tnos-dps 7903/tcp # TNOS Secure DiaguardProtocol +tnos-dps 7903/udp # TNOS Secure DiaguardProtocol +# 7904-7912 Unassigned +qo-secure 7913/udp # QuickObjects secure port +qo-secure 7913/tcp # QuickObjects secure port +# Jonas Bovin +# 7914-7931 Unassigned +t2-drm 7932/udp # Tier 2 Data Resource Manager +t2-drm 7932/tcp # Tier 2 Data Resource Manager +t2-brm 7933/udp # Tier 2 Business Rules Manager +t2-brm 7933/tcp # Tier 2 Business Rules Manager +# Peter Carlson +# 7934-7966 Unassigned +supercell 7967/udp # Supercell +supercell 7967/tcp # Supercell +# Kevin Nakagawa +# 7968-7978 Unassigned +micromuse-ncps 7979/udp # Micromuse-ncps +micromuse-ncps 7979/tcp # Micromuse-ncps +# Hing Wing To +quest-vista 7980/udp # Quest Vista +quest-vista 7980/tcp # Quest Vista +# Preston Bannister +# 7981-7998 Unassigned +irdmi2 7999/udp # iRDMI2 +irdmi2 7999/tcp # iRDMI2 +irdmi 8000/udp # iRDMI +irdmi 8000/tcp # iRDMI +# Gil Shafriri +vcom-tunnel 8001/udp # VCOM Tunnel +vcom-tunnel 8001/tcp # VCOM Tunnel +# Mark Lewandowski +teradataordbms 8002/udp # Teradata ORDBMS +teradataordbms 8002/tcp # Teradata ORDBMS +# Curt Ellmann +# 8003-8007 Unassigned +http-alt 8008/udp # HTTP Alternate +http-alt 8008/tcp # HTTP Alternate +# James Gettys +# 8009-8021 Unassigned +intu-ec-svcdisc 8020/tcp # Intuit Entitlement Service and Discovery +intu-ec-svcdisc 8020/udp # Intuit Entitlement Service and Discovery +intu-ec-client 8021/tcp # Intuit Entitlement Client +intu-ec-client 8021/udp # Intuit Entitlement Client +# 8022 Unassigned +oa-system 8022/udp # oa-system +oa-system 8022/tcp # oa-system +# Denis Girault +# 8023-8031 Unassigned +ca-audit-da 8025/tcp # CA Audit Distribution Agent +ca-audit-da 8025/udp # CA Audit Distribution Agent +ca-audit-ds 8026/tcp # CA Audit Distribution Server +ca-audit-ds 8026/udp # CA Audit Distribution Server +# 8027-8031 Unassigned +pro-ed 8032/udp # ProEd +pro-ed 8032/tcp # ProEd +mindprint 8033/udp # MindPrint +mindprint 8033/tcp # MindPrint +# Larry Tusoni +# 8034-8079 Unassigned +senomix01 8052/tcp # Senomix Timesheets Server +senomix01 8052/udp # Senomix Timesheets Server +senomix02 8053/tcp # Senomix Timesheets Client [1 year assignment] +senomix02 8053/udp # Senomix Timesheets Client [1 year assignment] +senomix03 8054/tcp # Senomix Timesheets Server [1 year assignment] +senomix03 8054/udp # Senomix Timesheets Server [1 year assignment] +senomix04 8055/tcp # Senomix Timesheets Server [1 year assignment] +senomix04 8055/udp # Senomix Timesheets Server [1 year assignment] +senomix05 8056/tcp # Senomix Timesheets Server [1 year assignment] +senomix05 8056/udp # Senomix Timesheets Server [1 year assignment] +senomix06 8057/tcp # Senomix Timesheets Client [1 year assignment] +senomix06 8057/udp # Senomix Timesheets Client [1 year assignment] +senomix07 8058/tcp # Senomix Timesheets Client [1 year assignment] +senomix07 8058/udp # Senomix Timesheets Client [1 year assignment] +senomix08 8059/tcp # Senomix Timesheets Client [1 year assignment] +senomix08 8059/udp # Senomix Timesheets Client [1 year assignment] +# 8060-8073 Unassigned +gadugadu 8074/tcp # Gadu-Gadu +gadugadu 8074/udp # Gadu-Gadu +# 8075-8079 Unassigned +http-alt 8080/udp # HTTP Alternate (see port 80) +http-alt 8080/tcp # HTTP Alternate (see port 80) +# Stephen Casner +sunproxyadmin 8081/tcp # Sun Proxy Admin Service +sunproxyadmin 8081/udp # Sun Proxy Admin Service +us-cli 8082/tcp # Utilistor (Client) +us-cli 8082/udp # Utilistor (Client) +us-srv 8083/tcp # Utilistor (Server) +us-srv 8083/udp # Utilistor (Server) +# 8084-8087 Unassigned +radan-http 8088/udp # Radan HTTP +radan-http 8088/tcp # Radan HTTP +# Steve Hay April 2002 +# 8089-8099 Unassigned +sac 8097/tcp # SAC Port Id +sac 8097/udp # SAC Port Id +# 8098-8099 Unassigned +xprint-server 8100/udp # Xprint Server +xprint-server 8100/tcp # Xprint Server +# John McKernan +# 8101-8114 Unassigned +mtl8000-matrix 8115/udp # MTL8000 Matrix +mtl8000-matrix 8115/tcp # MTL8000 Matrix +# David Pinch April 2002 +cp-cluster 8116/udp # Check Point Clustering +cp-cluster 8116/tcp # Check Point Clustering +# Roni Moshitzky +# 8117 Unassigned +privoxy 8118/udp # Privoxy HTTP proxy +privoxy 8118/tcp # Privoxy HTTP proxy +# Andreas Oesterhelt June 2002 +# 8119-8129 Unassigned +apollo-data 8121/tcp # Apollo Data Port +apollo-data 8121/udp # Apollo Data Port +apollo-admin 8122/tcp # Apollo Admin Port +apollo-admin 8122/udp # Apollo Admin Port +# 8123-8127 Unassigned +paycash-online 8128/tcp # PayCash Online Protocol +paycash-online 8128/udp # PayCash Online Protocol +paycash-wbp 8129/tcp # PayCash Wallet-Browser +paycash-wbp 8129/udp # PayCash Wallet-Browser +# 8130 Unassigned +indigo-vrmi 8130/udp # INDIGO-VRMI +indigo-vrmi 8130/tcp # INDIGO-VRMI +indigo-vbcp 8131/udp # INDIGO-VBCP +indigo-vbcp 8131/tcp # INDIGO-VBCP +# Colin Caughie +dbabble 8132/udp # dbabble +dbabble 8132/tcp # dbabble +# Chris Pugmire +# 8133-8159 Unassigned +isdd 8148/tcp # i-SDD file transfer +isdd 8148/udp # i-SDD file transfer +# 8149-8159 Unassigned +patrol 8160/udp # Patrol +patrol 8160/tcp # Patrol +patrol-snmp 8161/udp # Patrol SNMP +patrol-snmp 8161/tcp # Patrol SNMP +# Daisy Tam +# 8162-8198 Unassigned +spytechphone 8192/tcp # SpyTech Phone Service +spytechphone 8192/udp # SpyTech Phone Service +# 8193 Unassigned +blp1 8194/tcp # Bloomberg data API +blp1 8194/udp # Bloomberg data API +blp2 8195/tcp # Bloomberg feed +blp2 8195/udp # Bloomberg feed +# 8196-8198 Unassigned +vvr-data 8199/udp # VVR DATA +vvr-data 8199/tcp # VVR DATA +# Ming Xu +trivnet1 8200/udp # TRIVNET +trivnet1 8200/tcp # TRIVNET +trivnet2 8201/udp # TRIVNET +trivnet2 8201/tcp # TRIVNET +# Saar Wilf +# 8202-8203 Unassigned +lm-perfworks 8204/udp # LM Perfworks +lm-perfworks 8204/tcp # LM Perfworks +lm-instmgr 8205/udp # LM Instmgr +lm-instmgr 8205/tcp # LM Instmgr +lm-dta 8206/udp # LM Dta +lm-dta 8206/tcp # LM Dta +lm-sserver 8207/udp # LM SServer +lm-sserver 8207/tcp # LM SServer +lm-webwatcher 8208/udp # LM Webwatcher +lm-webwatcher 8208/tcp # LM Webwatcher +# Chris Flynn +# 8209-8350 Unassigned +rexecj 8230/tcp # RexecJ Server +rexecj 8230/udp # RexecJ Server +# 8231-8291 Unassigned +blp3 8292/tcp # Bloomberg professional +blp3 8292/udp # Bloomberg professional +# 8293 Unassigned +blp4 8294/tcp # Bloomberg intelligent client +blp4 8294/udp # Bloomberg intelligent client +# 8295-8299 Unassigned +tmi 8300/tcp # Transport Management Interface +tmi 8300/udp # Transport Management Interface +amberon 8301/tcp # Amberon PPC/PPS +amberon 8301/udp # Amberon PPC/PPS +# 8302-8350 Unassigned +server-find 8351/udp # Server Find +server-find 8351/tcp # Server Find +# Chris Brown +# 8352-8375 Unassigned +cruise-enum 8376/udp # Cruise ENUM +cruise-enum 8376/tcp # Cruise ENUM +cruise-swroute 8377/udp # Cruise SWROUTE +cruise-swroute 8377/tcp # Cruise SWROUTE +cruise-config 8378/udp # Cruise CONFIG +cruise-config 8378/tcp # Cruise CONFIG +cruise-diags 8379/udp # Cruise DIAGS +cruise-diags 8379/tcp # Cruise DIAGS +cruise-update 8380/udp # Cruise UPDATE +cruise-update 8380/tcp # Cruise UPDATE +# Steve Husak +# 8381-8399 Unassigned +m2mservices 8383/tcp # M2m Services +m2mservices 8383/udp # M2m Services +# 8384-8399 Unassigned +cvd 8400/udp # cvd +cvd 8400/tcp # cvd +sabarsd 8401/udp # sabarsd +sabarsd 8401/tcp # sabarsd +abarsd 8402/udp # abarsd +abarsd 8402/tcp # abarsd +admind 8403/udp # admind +admind 8403/tcp # admind +# Aaron Bilbrey +# 8404-8415 Unassigned +espeech 8416/udp # eSpeech Session Protocol +espeech 8416/tcp # eSpeech Session Protocol +# Scott Tarone November 2002 +espeech-rtp 8417/udp # eSpeech RTP Protocol +espeech-rtp 8417/tcp # eSpeech RTP Protocol +# Scott Tarone April 2003 +# 8418-8442 Unassigned +pcsync-https 8443/udp # PCsync HTTPS +pcsync-https 8443/tcp # PCsync HTTPS +pcsync-http 8444/udp # PCsync HTTP +pcsync-http 8444/tcp # PCsync HTTP +# Katy Lynn McCullough +# 8445-8449 Unassigned +npmp 8450/udp # npmp +npmp 8450/tcp # npmp +# Ian Chard +# 8451-8472 Unassigned +vp2p 8473/udp # Virtual Point to Point +vp2p 8473/tcp # Virtual Point to Point +# Jerome Grimbert +noteshare 8474/tcp # AquaMinds NoteShare +noteshare 8474/udp # AquaMinds NoteShare +# 8475-8499 Unassigned +fmtp 8500/tcp # Flight Message Transfer Protocol +fmtp 8500/udp # Flight Message Transfer Protocol +# 8501-8553 Unassigned +rtsp-alt 8554/udp # RTSP Alternate (see port 554) +rtsp-alt 8554/tcp # RTSP Alternate (see port 554) +# Stephen Casner +d-fence 8555/udp # SYMAX D-FENCE +d-fence 8555/tcp # SYMAX D-FENCE +# Thomas Geisel January 2003 +# 8556-8667 Unassigned +natd 8668/divert # Network Address Translation +# 8669-8732 Unassigned +oap-admin 8567/tcp # Object Access Protocol Administration +oap-admin 8567/udp # Object Access Protocol Administration +# 8568-8599 Unassigned +asterix 8600/tcp # Surveillance Data +asterix 8600/udp # Surveillance Data +# 8601-8610 Unassigned +canon-bjnp1 8611/tcp # Canon BJNP Port 1 +canon-bjnp1 8611/udp # Canon BJNP Port 1 +canon-bjnp2 8612/tcp # Canon BJNP Port 2 +canon-bjnp2 8612/udp # Canon BJNP Port 2 +canon-bjnp3 8613/tcp # Canon BJNP Port 3 +canon-bjnp3 8613/udp # Canon BJNP Port 3 +canon-bjnp4 8614/tcp # Canon BJNP Port 4 +canon-bjnp4 8614/udp # Canon BJNP Port 4 +# 8615-8685 Unassigned +sun-as-jmxrmi 8686/tcp # Sun App Server - JMX/RMI +sun-as-jmxrmi 8686/udp # Sun App Server - JMX/RMI +# 8687-8698 Unassigned +vnyx 8699/tcp # VNYX Primary Port +vnyx 8699/udp # VNYX Primary Port +# 8700-8732 Unassigned +ibus 8733/udp # iBus +ibus 8733/tcp # iBus +# Silvano Maffeis +# 8734-8762 Unassigned +mc-appserver 8763/udp # MC-APPSERVER +mc-appserver 8763/tcp # MC-APPSERVER +# Romeo Kasanwidjojo +openqueue 8764/udp # OPENQUEUE +openqueue 8764/tcp # OPENQUEUE +# Matt Jensen +ultraseek-http 8765/udp # Ultraseek HTTP +ultraseek-http 8765/tcp # Ultraseek HTTP +# Walter Underwood +# 8766-8785 Unassigned +dpap 8770/tcp # Digital Photo Access Protocol +dpap 8770/udp # Digital Photo Access Protocol +# 8771-8785 Unassigned +msgclnt 8786/udp # Message Client +msgclnt 8786/tcp # Message Client +msgsrvr 8787/udp # Message Server +msgsrvr 8787/tcp # Message Server +# Michael O'Brien March 2003 +# 8788-8803 Unassigned +sunwebadmin 8800/tcp # Sun Web Server Admin Service +sunwebadmin 8800/udp # Sun Web Server Admin Service +# 8801-8803 Unassigned +truecm 8804/udp # truecm +truecm 8804/tcp # truecm +# Scott Kramer +# 8805-8879 +dxspider 8873/tcp # dxspider linking protocol +dxspider 8873/udp # dxspider linking protocol +# 8874-8879 Unassigned +cddbp-alt 8880/udp # CDDBP +cddbp-alt 8880/tcp # CDDBP +# Steve Scherf +# 8881-8887 Unassigned +ddi-udp-1 8888/udp # NewsEDGE server UDP (UDP 1) +ddi-tcp-1 8888/tcp # NewsEDGE server TCP (TCP 1) +ddi-udp-2 8889/udp # NewsEDGE server broadcast +ddi-tcp-2 8889/tcp # Desktop Data TCP 1 +ddi-udp-3 8890/udp # NewsEDGE client broadcast +ddi-tcp-3 8890/tcp # Desktop Data TCP 2 +ddi-udp-4 8891/udp # Desktop Data UDP 3: NESS application +ddi-tcp-4 8891/tcp # Desktop Data TCP 3: NESS application +ddi-udp-5 8892/udp # Desktop Data UDP 4: FARM product +ddi-tcp-5 8892/tcp # Desktop Data TCP 4: FARM product +ddi-udp-6 8893/udp # Desktop Data UDP 5: NewsEDGE/Web application +ddi-tcp-6 8893/tcp # Desktop Data TCP 5: NewsEDGE/Web application +ddi-udp-7 8894/udp # Desktop Data UDP 6: COAL application +ddi-tcp-7 8894/tcp # Desktop Data TCP 6: COAL application +# Fred Yao +# 8895-8899 Unassigned +jmb-cds1 8900/udp # JMB-CDS 1 +jmb-cds1 8900/tcp # JMB-CDS 1 +jmb-cds2 8901/udp # JMB-CDS 2 +jmb-cds2 8901/tcp # JMB-CDS 2 +# Curtis Bray +# 8902-8909 Unassigned +manyone-http 8910/udp # manyone-http +manyone-http 8910/tcp # manyone-http +manyone-xml 8911/udp # manyone-xml +manyone-xml 8911/tcp # manyone-xml +# Matt King April 2002 +wcbackup 8912/tcp # Windows Client Backup +wcbackup 8912/udp # Windows Client Backup +dragonfly 8913/tcp # Dragonfly System Service +dragonfly 8913/udp # Dragonfly System Service +# 8914-8953 Unassigned +cumulus-admin 8954/udp # Cumulus Admin Port +cumulus-admin 8954/tcp # Cumulus Admin Port +# Thomas Schleu +# 8955-8998 Unassigned +sunwebadmins 8989/tcp # Sun Web Server SSL Admin Service +sunwebadmins 8989/udp # Sun Web Server SSL Admin Service +# 8990-8998 Unassigned +bctp 8999/udp # Brodos Crypto Trade Protocol +bctp 8999/tcp # Brodos Crypto Trade Protocol +# Alexander Sahler February 2002 +cslistener 9000/udp # CSlistener +cslistener 9000/tcp # CSlistener +# David Jones +etlservicemgr 9001/udp # ETL Service Manager +etlservicemgr 9001/tcp # ETL Service Manager +# Stephen McCrea March 2002 +dynamid 9002/udp # DynamID authentication +dynamid 9002/tcp # DynamID authentication +# Jerome Dusautois March 2002 +# 9003-9005 Unassigned +# 9006 De-Commissioned Port 02/24/00, ms +# 9007-9019 Unassigned +pichat 9009/tcp # Pichat Server +pichat 9009/udp # Pichat Server +# 9010-9019 Unassigned +tambora 9020/udp # TAMBORA +tambora 9020/tcp # TAMBORA +# Jason van Zyl March 2002 +panagolin-ident 9021/udp # Pangolin Identification +panagolin-ident 9021/tcp # Pangolin Identification +# William Benner March 2002 +paragent 9022/udp # PrivateArk Remote Agent +paragent 9022/tcp # PrivateArk Remote Agent +# Gal Cucuy March 2002 +swa-1 9023/udp # Secure Web Access - 1 +swa-1 9023/tcp # Secure Web Access - 1 +swa-2 9024/udp # Secure Web Access - 2 +swa-2 9024/tcp # Secure Web Access - 2 +swa-3 9025/udp # Secure Web Access - 3 +swa-3 9025/tcp # Secure Web Access - 3 +swa-4 9026/udp # Secure Web Access - 4 +swa-4 9026/tcp # Secure Web Access - 4 +# Tim McGranaghan +# 9027-9079 Unassigned +glrpc 9080/udp # Groove GLRPC +glrpc 9080/tcp # Groove GLRPC +# Adrian Popescu September 2002 +# 9081-9089 Unassigned +sqlexec 9088/tcp # IBM Informix SQL Interface +sqlexec 9088/udp # IBM Informix SQL Interface +sqlexec-ssl 9089/tcp # IBM Informix SQL Interface - Encrypted +sqlexec-ssl 9089/udp # IBM Informix SQL Interface - Encrypted +# 9090 Unassigned +websm 9090/udp # WebSM +websm 9090/tcp # WebSM +# I-Hsing Tsao +xmltec-xmlmail 9091/udp # xmltec-xmlmail +xmltec-xmlmail 9091/tcp # xmltec-xmlmail +# Mitch Kaufman +XmlIpcRegSvc 9092/tcp # Xml-Ipc Server Reg +XmlIpcRegSvc 9092/udp # Xml-Ipc Server Reg +# 9093-9099 Unassigned +hp-pdl-datastr 9100/udp # PDL Data Streaming Port +hp-pdl-datastr 9100/tcp # PDL Data Streaming Port +# Shivaun Albright April 2002 +#### The protocol name "pdl-datastream" is primarily registered for use #### +#### in DNS SRV records (RFC 2782). DNS SRV records allow a protocol to run on #### +#### any port number, but the default port for this protocol is 9100 ####. +pdl-datastream 9100/udp # Printer PDL Data Stream +pdl-datastream 9100/tcp # Printer PDL Data Stream +bacula-dir 9101/udp # Bacula Director +bacula-dir 9101/tcp # Bacula Director +bacula-fd 9102/udp # Bacula File Daemon +bacula-fd 9102/tcp # Bacula File Daemon +bacula-sd 9103/udp # Bacula Storage Daemon +bacula-sd 9103/tcp # Bacula Storage Daemon +# Kern Sibbald January 2002 +peerwire 9104/tcp # PeerWire +peerwire 9104/udp # PeerWire +# 9105-9118 Unassigned +mxit 9119/tcp # MXit Instant Messaging +mxit 9119/udp # MXit Instant Messaging +# 9120-9130 Unassigned +dddp 9131/tcp # Dynamic Device Discovery +dddp 9131/udp # Dynamic Device Discovery +# 9132-9159 Unassigned +netlock1 9160/udp # NetLOCK1 +netlock1 9160/tcp # NetLOCK1 +netlock2 9161/udp # NetLOCK2 +netlock2 9161/tcp # NetLOCK2 +netlock3 9162/udp # NetLOCK3 +netlock3 9162/tcp # NetLOCK3 +netlock4 9163/udp # NetLOCK4 +netlock4 9163/tcp # NetLOCK4 +netlock5 9164/udp # NetLOCK5 +netlock5 9164/tcp # NetLOCK5 +# Steven Sawkins +# 9165-9199 Unassigned +sun-as-jpda 9191/tcp # Sun AppSvr JPDA +sun-as-jpda 9191/udp # Sun AppSvr JPDA +# 9192-9199 Unassigned +wap-wsp 9200/udp # WAP connectionless session service +wap-wsp 9200/tcp # WAP connectionless session service +wap-wsp-wtp 9201/udp # WAP session service +wap-wsp-wtp 9201/tcp # WAP session service +wap-wsp-s 9202/udp # WAP secure connectionless session service +wap-wsp-s 9202/tcp # WAP secure connectionless session service +wap-wsp-wtp-s 9203/udp # WAP secure session service +wap-wsp-wtp-s 9203/tcp # WAP secure session service +wap-vcard 9204/udp # WAP vCard +wap-vcard 9204/tcp # WAP vCard +wap-vcal 9205/udp # WAP vCal +wap-vcal 9205/tcp # WAP vCal +wap-vcard-s 9206/udp # WAP vCard Secure +wap-vcard-s 9206/tcp # WAP vCard Secure +wap-vcal-s 9207/udp # WAP vCal Secure +wap-vcal-s 9207/tcp # WAP vCal Secure +# WAP Forum +# WAP Forum +rjcdb-vcards 9208/tcp # rjcdb vCard +rjcdb-vcards 9208/udp # rjcdb vCard +almobile-system 9209/tcp # ALMobile System Service +almobile-system 9209/udp # ALMobile System Service +# 9210 Unassigned +lif-mlp 9210/udp # LIF Mobile Locn Protocol +lif-mlp 9210/tcp # LIF Mobile Locn Protocol +lif-mlp-s 9211/udp # LIF Mobile Locn Secure +lif-mlp-s 9211/tcp # LIF Mobile Locn Secure +# Location Interoperability Forum +# April 2002 +serverviewdbms 9212/tcp # Server View dbms access +serverviewdbms 9212/udp # Server View dbms access +serverstart 9213/tcp # ServerStart RemoteControl +serverstart 9213/udp # ServerStart RemoteControl +ipdcesgbs 9214/tcp # IPDC ESG BootstrapService +ipdcesgbs 9214/udp # IPDC ESG BootstrapService +insis 9215/tcp # Integrated Setup and Install Service +insis 9215/udp # Integrated Setup and Install Service +acme 9216/tcp # Aionex Communication Management Engine +acme 9216/udp # Aionex Communication Management Engine +# 9217 Unassigned +fsc-port 9217/udp # FSC Communication Port +fsc-port 9217/tcp # FSC Communication Port +# Teijo Mustonen March 2002 +# 9218-9280 Unassigned +teamcoherence 9222/tcp # QSC Team Coherence +teamcoherence 9222/udp # QSC Team Coherence +# 9223-9280 Unassigned +swtp-port1 9281/udp # SofaWare transport port 1 +swtp-port1 9281/tcp # SofaWare transport port 1 +swtp-port2 9282/udp # SofaWare transport port 2 +swtp-port2 9282/tcp # SofaWare transport port 2 +# Amir Rapson February 2002 +callwaveiam 9283/udp # CallWaveIAM +callwaveiam 9283/tcp # CallWaveIAM +# Colin Kelley +visd 9284/udp # VERITAS Information Serve +visd 9284/tcp # VERITAS Information Serve +# Ravi Tavakely February 2002 +n2h2server 9285/udp # N2H2 Filter Service Port +n2h2server 9285/tcp # N2H2 Filter Service Port +# Jim Irwin February 2002 +# 9286 Unassigned +cumulus 9287/udp # Cumulus +cumulus 9287/tcp # Cumulus +# Thomas Schleu +# 9288-9291 Unassigned +armtechdaemon 9292/udp # ArmTech Daemon +armtechdaemon 9292/tcp # ArmTech Daemon +# Rohan Story +storview 9293/tcp # StorView Client +storview 9293/udp # StorView Client +armcenterhttp 9294/tcp # ARMCenter http Service +armcenterhttp 9294/udp # ARMCenter http Service +armcenterhttps 9295/tcp # ARMCenter https Service +armcenterhttps 9295/udp # ARMCenter https Service +# 9296-9299 Unassigned +vrace 9300/tcp # Virtual Racing Service +vrace 9300/udp # Virtual Racing Service +# 9301-9317 Unassigned +secure-ts 9318/tcp # PKIX TimeStamp over TLS +secure-ts 9318/udp # PKIX TimeStamp over TLS +# 9319-9320 Unassigned +guibase 9321/udp # guibase +guibase 9321/tcp # guibase +# Yutaka Ono +# 9322-9342 Unassigned +mpidcmgr 9343/udp # MpIdcMgr +mpidcmgr 9343/tcp # MpIdcMgr +mphlpdmc 9344/udp # Mphlpdmc +mphlpdmc 9344/tcp # Mphlpdmc +# Yutaka Ono +# 9345 Unassigned +ctechlicensing 9346/udp # C Tech Licensing +ctechlicensing 9346/tcp # C Tech Licensing +# Reed Copsey, Jr. +# 9347-9373 Unassigned +fjdmimgr 9374/udp # fjdmimgr +fjdmimgr 9374/tcp # fjdmimgr +# Yutaka Ono +# 9375-9395 Unassigned +fjinvmgr 9396/udp # fjinvmgr +fjinvmgr 9396/tcp # fjinvmgr +mpidcagt 9397/udp # MpIdcAgt +mpidcagt 9397/tcp # MpIdcAgt +# Yutaka Ono +# 9398-9499 Unassigned +git 9418/tcp # git pack transfer service +git 9418/udp # git pack transfer service +# 9419-9442 Unassigned +tungsten-https 9443/tcp # WSO2 Tungsten HTTPS +tungsten-https 9443/udp # WSO2 Tungsten HTTPS +# 9444-9499 Unassigned +ismserver 9500/udp # ismserver +ismserver 9500/tcp # ismserver +# Ian Gordon +# 9501-9534 Unassigned +mngsuite 9535/udp # Management Suite Remote Control +mngsuite 9535/tcp # Management Suite Remote Control +# Alan Butt +# 9536-9593 Unassigned +trispen-sra 9555/tcp # Trispen Secure Remote Access +trispen-sra 9555/udp # Trispen Secure Remote Access +# 9556-9591 Unassigned +ldgateway 9592/tcp # LANDesk Gateway +ldgateway 9592/udp # LANDesk Gateway +cba8 9593/tcp # LANDesk Management Agent +cba8 9593/udp # LANDesk Management Agent +# 9594 Unassigned +msgsys 9594/udp # Message System +msgsys 9594/tcp # Message System +pds 9595/udp # Ping Discovery Service +pds 9595/tcp # Ping Discovery Service +# Alan Butt +mercury-disc 9596/tcp # Mercury Discovery +mercury-disc 9596/udp # Mercury Discovery +pd-admin 9597/tcp # PD Administration +pd-admin 9597/udp # PD Administration +vscp 9598/tcp # Very Simple Ctrl Protocol +vscp 9598/udp # Very Simple Ctrl Protocol +robix 9599/tcp # Robix +robix 9599/udp # Robix +# 9600 Unassigned +micromuse-ncpw 9600/udp # MICROMUSE-NCPW +micromuse-ncpw 9600/tcp # MICROMUSE-NCPW +# Hing Wing To +# 9601-9611 Unassigned +streamcomm-ds 9612/udp # StreamComm User Directory +streamcomm-ds 9612/tcp # StreamComm User Directory +# Brian C. Wiles +# 9613-9746 Unassigned +board-roar 9700/tcp # Board M.I.T. Service +board-roar 9700/udp # Board M.I.T. Service +# 9701-9746 Unassigned +l5nas-parchan 9747/udp # L5NAS Parallel Channel +l5nas-parchan 9747/tcp # L5NAS Parallel Channel +# Lawrence J. Dickson - Land-5 Corporation +# March 2002 +# 9748-9752 Unassigned +board-voip 9750/tcp # Board M.I.T. Synchronous Collaboration +board-voip 9750/udp # Board M.I.T. Synchronous Collaboration +# 9751-9752 Unassigned +rasadv 9753/udp # rasadv +rasadv 9753/tcp # rasadv +# Dave Thaler +# 9754-9799 Unassigned +tungsten-http 9762/tcp # WSO2 Tungsten HTTP +tungsten-http 9762/udp # WSO2 Tungsten HTTP +# 9763-9799 Unassigned +davsrc 9800/udp # WebDav Source Port +davsrc 9800/tcp # WebDav Source Port +# Ethan Fremen +sstp-2 9801/udp # Sakura Script Transfer Protocol-2 +sstp-2 9801/tcp # Sakura Script Transfer Protocol-2 +# Kouichi Takeda +davsrcs 9802/tcp # WebDAV Source TLS/SSL +davsrcs 9802/udp # WebDAV Source TLS/SSL +# 9803-9874 Unassigned +sapv1 9875/udp # Session Announcement v1 +sapv1 9875/tcp # Session Announcement v1 +# RFC 2974 +sd 9876/udp # Session Director +sd 9876/tcp # Session Director +# Van Jacobson +cyborg-systems 9888/udp # CYBORG Systems +cyborg-systems 9888/tcp # CYBORG Systems +# Malcolm Graham +monkeycom 9898/udp # MonkeyCom +monkeycom 9898/tcp # MonkeyCom +# Yuji Kuwabara +sctp-tunneling 9899/udp # SCTP TUNNELING +sctp-tunneling 9899/tcp # SCTP TUNNELING +iua 9900/sctp # IUA +iua 9900/udp # IUA +iua 9900/tcp # IUA +# Lyndon Ong +enrp 9901/udp # enrp server channel +# 9902-9908 Unassigned +domaintime 9909/udp # domaintime +domaintime 9909/tcp # domaintime +# Jeffry Dwight +# 9910 Unassigned +sype-transport 9911/udp # SYPECom Transport Protocol +sype-transport 9911/tcp # SYPECom Transport Protocol +# Sylvain Pedneault March 2003 +# 9912-9949 Unassigned +apc-9950 9950/udp # APC 9950 +apc-9950 9950/tcp # APC 9950 +apc-9951 9951/udp # APC 9951 +apc-9951 9951/tcp # APC 9951 +apc-9952 9952/udp # APC 9952 +apc-9952 9952/tcp # APC 9952 +# American Power Conversion +acis 9953/tcp # 9953 +acis 9953/udp # 9953 +# 9954-9965 Unassigned +odnsp 9966/tcp # OKI Data Network Setting Protocol +odnsp 9966/udp # OKI Data Network Setting Protocol +# 9967-9986 Unassigned +dsm-scm-target 9987/tcp # DSM/SCM Target Interface +dsm-scm-target 9987/udp # DSM/SCM Target Interface +# 9988-9989 Unassigned +osm-appsrvr 9990/tcp # OSM Applet Server +osm-appsrvr 9990/udp # OSM Applet Server +osm-oev 9991/tcp # OSM Event Server +osm-oev 9991/udp # OSM Event Server +# 9992 Unassigned +palace-1 9992/udp # OnLive-1 +palace-1 9992/tcp # OnLive-1 +palace-2 9993/udp # OnLive-2 +palace-2 9993/tcp # OnLive-2 +palace-3 9994/udp # OnLive-3 +palace-3 9994/tcp # OnLive-3 +palace-4 9995/udp # Palace-4 +palace-4 9995/tcp # Palace-4 +palace-5 9996/udp # Palace-5 +palace-5 9996/tcp # Palace-5 +palace-6 9997/udp # Palace-6 +palace-6 9997/tcp # Palace-6 +# Douglas Crockford +distinct32 9998/udp # Distinct32 +distinct32 9998/tcp # Distinct32 +distinct 9999/udp # distinct +distinct 9999/tcp # distinct +# Anoop Tewari +ndmp 10000/udp # Network Data Management Protocol +ndmp 10000/tcp # Network Data Management Protocol +# Brian Ehrmantraut +scp-config 10001/udp # SCP Configuration Port +scp-config 10001/tcp # SCP Configuration Port +# Brad Strand +# 10002-10006 Unassigned +mvs-capacity 10007/udp # MVS Capacity +mvs-capacity 10007/tcp # MVS Capacity +# Donna Dillenberger +octopus 10008/udp # Octopus Multiplexer +octopus 10008/tcp # Octopus Multiplexer +# Chris Koeritz October 2002 +swdtp-sv 10009/tcp # Systemwalker Desktop Patrol +swdtp-sv 10009/udp # Systemwalker Desktop Patrol +# 10010-10049 Unassigned +zabbix-agent 10050/tcp # Zabbix Agent +zabbix-agent 10050/udp # Zabbix Agent +zabbix-trapper 10051/tcp # Zabbix Trapper +zabbix-trapper 10051/udp # Zabbix Trapper +# 10052-10079 Unassigned +amanda 10080/udp # Amanda +amanda 10080/tcp # Amanda +# John Jackson +# +famdc 10081/tcp # FAM Archive Server +famdc 10081/udp # FAM Archive Server +# 10082-10099 Unassigned +itap-ddtp 10100/tcp # VERITAS ITAP DDTP +itap-ddtp 10100/udp # VERITAS ITAP DDTP +# 10101 Unassigned +ezmeeting-2 10101/udp # eZmeeting +ezmeeting-2 10101/tcp # eZmeeting +ezproxy-2 10102/udp # eZproxy +ezproxy-2 10102/tcp # eZproxy +ezrelay 10103/udp # eZrelay +ezrelay 10103/tcp # eZrelay +# Albert C. Yang March 2002 +swdtp 10104/tcp # Systemwalker Desktop Patrol +swdtp 10104/udp # Systemwalker Desktop Patrol +# 10105-10106 Unassigned +bctp-server 10107/tcp # VERITAS BCTP, server +bctp-server 10107/udp # VERITAS BCTP, server +# 10108-10112 Unassigned +netiq-endpoint 10113/udp # NetIQ Endpoint +netiq-endpoint 10113/tcp # NetIQ Endpoint +netiq-qcheck 10114/udp # NetIQ Qcheck +netiq-qcheck 10114/tcp # NetIQ Qcheck +# John Wood +netiq-endpt 10115/udp # NetIQ Endpoint +netiq-endpt 10115/tcp # NetIQ Endpoint +# Gary Weichinger +netiq-voipa 10116/udp # NetIQ VoIP Assessor +netiq-voipa 10116/tcp # NetIQ VoIP Assessor +# Gary Weichinger +# 10117-10127 Unassigned +bmc-perf-sd 10128/udp # BMC-PERFORM-SERVICE DAEMON +bmc-perf-sd 10128/tcp # BMC-PERFORM-SERVICE DAEMON +# Dima Seliverstov +# 10129-10259 Unassigned +qb-db-server 10160/tcp # QB Database Server +qb-db-server 10160/udp # QB Database Server +# 10161-10199 Unassigned +trisoap 10200/tcp # Trigence AE Soap Service +trisoap 10200/udp # Trigence AE Soap Service +# 10201-10251 Unassigned +apollo-relay 10252/tcp # Apollo Relay Port +apollo-relay 10252/udp # Apollo Relay Port +# 10253-10259 Unassigned +axis-wimp-port 10260/udp # Axis WIMP Port +axis-wimp-port 10260/tcp # Axis WIMP Port +# Stefan Eriksson +# 10261-10287 Unassigned +blocks 10288/udp # Blocks +blocks 10288/tcp # Blocks +# Carl Malamud +# 10289-10989 Unassigned +gap 10800/tcp # Gestor de Acaparamiento para Pocket PCs +gap 10800/udp # Gestor de Acaparamiento para Pocket PCs +# 10801-10804 Unassigned +lpdg 10805/tcp # LUCIA Pareja Data Group +lpdg 10805/udp # LUCIA Pareja Data Group +# 10806-10989 Unassigned +rmiaux 10990/udp # Auxiliary RMI Port +rmiaux 10990/tcp # Auxiliary RMI Port +# Eugen Bacic +# 10991-10999 Unassigned +irisa 11000/udp # IRISA +irisa 11000/tcp # IRISA +# Vladimir Brauner +metasys 11001/udp # Metasys +metasys 11001/tcp # Metasys +# Tobin Schuster +# 11002-11110 Unassigned +vce 11111/udp # Viral Computing Environment (VCE) +vce 11111/tcp # Viral Computing Environment (VCE) +# Fred Cohen +dicom 11112/tcp # DICOM +dicom 11112/udp # DICOM +# 11113-11160 Unassigned +suncacao-snmp 11161/tcp # sun cacao snmp access point +suncacao-snmp 11161/udp # sun cacao snmp access point +suncacao-jmxmp 11162/tcp # sun cacao JMX-remoting access point +suncacao-jmxmp 11162/udp # sun cacao JMX-remoting access point +suncacao-rmi 11163/tcp # sun cacao rmi registry access point +suncacao-rmi 11163/udp # sun cacao rmi registry access point +suncacao-csa 11164/tcp # sun cacao command-streaming access point +suncacao-csa 11164/udp # sun cacao command-streaming access point +suncacao-websvc 11165/tcp # sun cacao web service access point +suncacao-websvc 11165/udp # sun cacao web service access point +# 11166-11200 Unassigned +smsqp 11201/udp # smsqp +smsqp 11201/tcp # smsqp +# Andres Seco Hernandez +# 11202-11318 Unassigned +wifree 11208/tcp # WiFree Service +wifree 11208/udp # WiFree Service +# 11209-11318 Unassigned +imip 11319/udp # IMIP +imip 11319/tcp # IMIP +# IM Unified Coalition, Len Zuvela +# +imip-channels 11320/udp # IMIP Channels Port +imip-channels 11320/tcp # IMIP Channels Port +# Len Zuvela +arena-server 11321/udp # Arena Server Listen +arena-server 11321/tcp # Arena Server Listen +# Earl Brannigan +# 11322-11366 Unassigned +atm-uhas 11367/udp # ATM UHAS +atm-uhas 11367/tcp # ATM UHAS +# Todd Barker +# 11368-11370 Unassigned +hkp 11371/udp # OpenPGP HTTP Keyserver +hkp 11371/tcp # OpenPGP HTTP Keyserver +# David Shaw May 2003 +# 11372-11599 Unassigned +tempest-port 11600/udp # Tempest Protocol Port +tempest-port 11600/tcp # Tempest Protocol Port +# Francis Cianfrocca +# 11601-11719 Unassigned +h323callsigalt 11720/udp # h323 Call Signal Alternate +h323callsigalt 11720/tcp # h323 Call Signal Alternate +# Chris White +# 11721-11750 Unassigned +intrepid-ssl 11751/udp # Intrepid SSL +intrepid-ssl 11751/tcp # Intrepid SSL +# Robert Eden March 2003 +# 11752-11966 Unassigned +sysinfo-sp 11967/udp # SysInfo Sercice Protocol +sysinfo-sp 11967/tcp # SysInfo Service Protocol +# Mike Cooper March 2003 +# 11968-11999 Unassiged +entextxid 12000/udp # IBM Enterprise Extender SNA XID Exchange +entextxid 12000/tcp # IBM Enterprise Extender SNA XID Exchange +entextnetwk 12001/udp # IBM Enterprise Extender SNA COS Network Priority +entextnetwk 12001/tcp # IBM Enterprise Extender SNA COS Network Priority +entexthigh 12002/udp # IBM Enterprise Extender SNA COS High Priority +entexthigh 12002/tcp # IBM Enterprise Extender SNA COS High Priority +entextmed 12003/udp # IBM Enterprise Extender SNA COS Medium Priority +entextmed 12003/tcp # IBM Enterprise Extender SNA COS Medium Priority +entextlow 12004/udp # IBM Enterprise Extender SNA COS Low Priority +entextlow 12004/tcp # IBM Enterprise Extender SNA COS Low Priority +# Eugene Cox +dbisamserver1 12005/udp # DBISAM Database Server - Regular +dbisamserver1 12005/tcp # DBISAM Database Server - Regular +dbisamserver2 12006/udp # DBISAM Database Server - Admin +dbisamserver2 12006/tcp # DBISAM Database Server - Admin +# Tim Young May 2002 +accuracer 12007/tcp # Accuracer Database System Server +accuracer 12007/udp # Accuracer Database System Server +accuracer-dbms 12008/tcp # Accuracer Database System Admin +accuracer-dbms 12008/udp # Accuracer Database System Admin +# 12009-12011 Unassigned +vipera 12012/tcp # Vipera Messaging Service +vipera 12012/udp # Vipera Messaging Service +# 12013-12108 Unassigned +rets-ssl 12109/udp # RETS over SSL +rets-ssl 12109/tcp # RETS over SSL +# Bruce Toback February 2003 +# 12110-12171 Unassigned +nupaper-ss 12121/tcp # NuPaper Session Service +nupaper-ss 12121/udp # NuPaper Session Service +# 12122-12167 Unassigned +cawas 12168/tcp # CA Web Access Service +cawas 12168/udp # CA Web Access Service +# 12169-12171 Unassigned +hivep 12172/udp # HiveP +hivep 12172/tcp # HiveP +# Dick Augustsson +# 12173-12344 Unassigned +linogridengine 12300/tcp # LinoGrid Engine +linogridengine 12300/udp # LinoGrid Engine +# 12301-12320 Unassigned +warehouse-sss 12321/tcp # Warehouse Monitoring Syst SSS +warehouse-sss 12321/udp # Warehouse Monitoring Syst SSS +warehouse 12322/tcp # Warehouse Monitoring Syst +warehouse 12322/udp # Warehouse Monitoring Syst +# 12323-12344 Unassigned +italk 12345/udp # Italk Chat System +italk 12345/tcp # Italk Chat System +# Takayuki Ito +# 12346-12752 Unassigned +tsaf 12753/udp # tsaf port +tsaf 12753/tcp # tsaf port +# Andreas Fehr <100042.2070@CompuServe.COM> +# 12754-13159 Unassigned +i-zipqd 13160/udp # I-ZIPQD +i-zipqd 13160/tcp # I-ZIPQD +# Chuck Runquist +# 13161-13222 Unassigned +powwow-client 13223/udp # PowWow Client +powwow-client 13223/tcp # PowWow Client +powwow-server 13224/udp # PowWow Server +powwow-server 13224/tcp # PowWow Server +# Paul K. Peterson +# 13225-13719 Unassigned +bprd 13720/udp # BPRD Protocol (VERITAS NetBackup) +bprd 13720/tcp # BPRD Protocol (VERITAS NetBackup) +bpdbm 13721/udp # BPDBM Protocol (VERITAS NetBackup) +bpdbm 13721/tcp # BPDBM Protocol (VERITAS NetBackup) +# Jeff Holmbeck +bpjava-msvc 13722/udp # BP Java MSVC Protocol +bpjava-msvc 13722/tcp # BP Java MSVC Protocol +# Tim Schmidt +# 13723 Unassigned +vnetd 13724/udp # Veritas Network Utility +vnetd 13724/tcp # Veritas Network Utility +# Jeff Holmbeck +# 13725-13781 Unassigned +bpcd 13782/udp # VERITAS NetBackup +bpcd 13782/tcp # VERITAS NetBackup +vopied 13783/udp # VOPIED Protocol +vopied 13783/tcp # VOPIED Protocol +# Jeff Holmbeck +# 13784-13817 Unassigned +nbdb 13785/tcp # NetBackup Database +nbdb 13785/udp # NetBackup Database +nomdb 13786/tcp # Veritas-nomdb +nomdb 13786/udp # Veritas-nomdb +# 13787-13817 Unassigned +dsmcc-config 13818/udp # DSMCC Config +dsmcc-config 13818/tcp # DSMCC Config +dsmcc-session 13819/udp # DSMCC Session Messages +dsmcc-session 13819/tcp # DSMCC Session Messages +dsmcc-passthru 13820/udp # DSMCC Pass-Thru Messages +dsmcc-passthru 13820/tcp # DSMCC Pass-Thru Messages +dsmcc-download 13821/udp # DSMCC Download Protocol +dsmcc-download 13821/tcp # DSMCC Download Protocol +dsmcc-ccp 13822/udp # DSMCC Channel Change Protocol +dsmcc-ccp 13822/tcp # DSMCC Channel Change Protocol +# Tim Addington +# ISO/IEC 13818-6 MPEG-2 DSM-CC +# 13823-14000 Unassigned +sua 14001/sctp # SUA +sua 14001/udp # De-Registered (2001 June 06) +sua 14001/tcp # SUA +# Miguel Angel Garcia +# 14002-14032 Unassigned +sage-best-com1 14033/udp # sage Best! Config Server 1 +sage-best-com1 14033/tcp # sage Best! Config Server 1 +sage-best-com2 14034/udp # sage Best! Config Server 2 +sage-best-com2 14034/tcp # sage Best! Config Server 2 +# Christian Rubach +# 14035-14140 Unassigned +vcs-app 14141/udp # VCS Application +vcs-app 14141/tcp # VCS Application +# Ming Xu +icpp 14142/tcp # IceWall Cert Protocol +icpp 14142/udp # IceWall Cert Protocol +# 14143-14144 Unassigned +gcm-app 14145/udp # GCM Application +gcm-app 14145/tcp # GCM Application +# Ming Xu +# 14146-14148 Unassigned +vrts-tdd 14149/udp # Veritas Traffic Director +vrts-tdd 14149/tcp # Veritas Traffic Director +# Sameer Deokule March 2002 +# 14150-14935 Unassigned +vad 14154/tcp # Veritas Application Director +vad 14154/udp # Veritas Application Director +# 14155-14413 Unassigned +ca-web-update 14414/tcp # CA eTrust Web Update Service +ca-web-update 14414/udp # CA eTrust Web Update Service +# 14415-14935 Unassigned +hde-lcesrvr-1 14936/udp # hde-lcesrvr-1 +hde-lcesrvr-1 14936/tcp # hde-lcesrvr-1 +hde-lcesrvr-2 14937/udp # hde-lcesrvr-2 +hde-lcesrvr-2 14937/tcp # hde-lcesrvr-2 +# Horizon Digital Enterprise, Inc. +# 14938-14999 Unassigned +hydap 15000/udp # Hypack Data Aquisition +hydap 15000/tcp # Hypack Data Aquisition +# Mircea Neacsu +# 15001-15344 Unassigned +xpilot 15345/udp # XPilot Contact Port +xpilot 15345/tcp # XPilot Contact Port +# Bert Gijsbers +# 15346-15362 Unassigned +3link 15363/udp # 3Link Negotiation +3link 15363/tcp # 3Link Negotiation +# Brant Thomsen January 2003 +# 15364-16359 Unassigned +cisco-snat 15555/tcp # Cisco Stateful NAT +cisco-snat 15555/udp # Cisco Stateful NAT +# 15556-15739 Unassigned +ptp 15740/tcp # Picture Transfer Protocol +ptp 15740/udp # Picture Transfer Protocol +# 15741-16160 Unassigned +sun-sea-port 16161/tcp # Solaris SEA Port +sun-sea-port 16161/udp # Solaris SEA Port +# 16162-16308 Unassigned +etb4j 16309/tcp # etb4j +etb4j 16309/udp # etb4j +pduncs 16310/tcp # Policy Distribute, Update Notification +pduncs 16310/udp # Policy Distribute, Update Notification +# 16311-16359 Unassigned +netserialext1 16360/udp # netserialext1 +netserialext1 16360/tcp # netserialext1 +netserialext2 16361/udp # netserialext2 +netserialext2 16361/tcp # netserialext2 +# Mike Hoy +# 16362-16366 Unassigned +netserialext3 16367/udp # netserialext3 +netserialext3 16367/tcp # netserialext3 +netserialext4 16368/udp # netserialext4 +netserialext4 16368/tcp # netserialext4 +# Mike Hoy +# 16369-16990 Unassigned +connected 16384/tcp # Connected Corp +connected 16384/udp # Connected Corp +# 16385-16990 Unassigned +intel-rci-mp 16991/udp # INTEL-RCI-MP +intel-rci-mp 16991/tcp # INTEL-RCI-MP +# Jane Dashevsky +amt-soap-http 16992/tcp # Intel(R) AMT SOAP/HTTP +amt-soap-http 16992/udp # Intel(R) AMT SOAP/HTTP +amt-soap-https 16993/tcp # Intel(R) AMT SOAP/HTTPS +amt-soap-https 16993/udp # Intel(R) AMT SOAP/HTTPS +amt-redir-tcp 16994/tcp # Intel(R) AMT Redirection/TCP +amt-redir-tcp 16994/udp # Intel(R) AMT Redirection/TCP +amt-redir-tls 16995/tcp # Intel(R) AMT Redirection/TLS +amt-redir-tls 16995/udp # Intel(R) AMT Redirection/TLS +# 16996-17006 Unassigned +isode-dua 17007/udp # +isode-dua 17007/tcp # +# 17008-17184 Unassigned +soundsvirtual 17185/udp # Sounds Virtual +soundsvirtual 17185/tcp # Sounds Virtual +# Richard Snider +# 17186-17218 Unassigned +chipper 17219/udp # Chipper +chipper 17219/tcp # Chipper +# Ronald Jimmink +# 17220-17999 Unassigned +ssh-mgmt 17235/tcp # SSH Tectia Manager +ssh-mgmt 17235/udp # SSH Tectia Manager +# 17236-17728 Unassigned +ea 17729/tcp # Eclipse Aviation +ea 17729/udp # Eclipse Aviation +# 17730-17753 Unassigned +zep 17754/tcp # Encap. ZigBee Packets +zep 17754/udp # Encap. ZigBee Packets +zigbee-ip 17755/tcp # ZigBee IP Transport Service +zigbee-ip 17755/udp # ZigBee IP Transport Service +zigbee-ips 17756/tcp # ZigBee IP Transport Secure Service +zigbee-ips 17756/udp # ZigBee IP Transport Secure Service +# 17757-17999 Unassigned +biimenu 18000/udp # Beckman Instruments, Inc. +biimenu 18000/tcp # Beckman Instruments, Inc. +# R. L. Meyering +# 18001-18180 Unassigned +opsec-cvp 18181/udp # OPSEC CVP +opsec-cvp 18181/tcp # OPSEC CVP +opsec-ufp 18182/udp # OPSEC UFP +opsec-ufp 18182/tcp # OPSEC UFP +# Alon Kantor +opsec-sam 18183/udp # OPSEC SAM +opsec-sam 18183/tcp # OPSEC SAM +opsec-lea 18184/udp # OPSEC LEA +opsec-lea 18184/tcp # OPSEC LEA +opsec-omi 18185/udp # OPSEC OMI +opsec-omi 18185/tcp # OPSEC OMI +# Alon Kantor +ohsc 18186/tcp # Occupational Health SC +ohsc 18186/udp # Occupational Health Sc +# 18187 Unassigned +opsec-ela 18187/udp # OPSEC ELA +opsec-ela 18187/tcp # OPSEC ELA +# Alon Kantor +# 18188-18240 Unassigned +checkpoint-rtm 18241/udp # Check Point RTM +checkpoint-rtm 18241/tcp # Check Point RTM +# Dudi Hazan +# 18242-18462 Unassigned +ac-cluster 18463/udp # AC Cluster +ac-cluster 18463/tcp # AC Cluster +# Lisa Zhong +# 18464-18768 Unassigned +ique 18769/udp # IQue Protocol +ique 18769/tcp # IQue Protocol +# Avi Drissman July 2002 +# 18770-18887 Unassigned +infotos 18881/tcp # Infotos +infotos 18881/udp # Infotos +# 18882-18887 Unassigned +apc-necmp 18888/udp # APCNECMP +apc-necmp 18888/tcp # APCNECMP +# Michael Yip +# 18889-19190 Unassigned +igrid 19000/tcp # iGrid Server +igrid 19000/udp # iGrid Server +# 19001-19190 Unassigned +opsec-uaa 19191/udp # OPSEC UAA +opsec-uaa 19191/tcp # OPSEC UAA +# Reuven Harrison +# 19192-19193 Unassigned +ua-secureagent 19194/udp # UserAuthority SecureAgent +ua-secureagent 19194/tcp # UserAuthority SecureAgent +# Reuven Harrison January 2003 +# 19195-19282 Unassigned +keysrvr 19283/udp # Key Server for SASSAFRAS +keysrvr 19283/tcp # Key Server for SASSAFRAS +# Mark Valence +# 19284-19314 Unassigned +keyshadow 19315/udp # Key Shadow for SASSAFRAS +keyshadow 19315/tcp # Key Shadow for SASSAFRAS +# Mark Valence +# 19316-19397 Unassigned +mtrgtrans 19398/udp # mtrgtrans +mtrgtrans 19398/tcp # mtrgtrans +# Katsuhito Muroi +# 19399-19409 Unassigned +hp-sco 19410/udp # hp-sco +hp-sco 19410/tcp # hp-sco +hp-sca 19411/udp # hp-sca +hp-sca 19411/tcp # hp-sca +# Larry Schwartz +hp-sessmon 19412/udp # HP-SESSMON +hp-sessmon 19412/tcp # HP-SESSMON +# Gita Murthy +# 19413-19539 Unassigned +fxuptp 19539/tcp # FXUPTP +fxuptp 19539/udp # FXUPTP +# 19540 Unassigned +sxuptp 19540/udp # SXUPTP +sxuptp 19540/tcp # SXUPTP +# Keiji Okuma August 2002 +jcp 19541/udp # JCP Client +jcp 19541/tcp # JCP Client +# Yuji Sasaki +# 19542-19999 Unassigned +dnp 20000/udp # DNP +dnp 20000/tcp # DNP +# Michael Thesing +microsan 20001/tcp # MicroSAN +microsan 20001/udp # MicroSAN +commtact-http 20002/tcp # Commtact HTTP +commtact-http 20002/udp # Commtact HTTP +commtact-https 20003/tcp # Commtact HTTPS +commtact-https 20003/udp # Commtact HTTPS +# 20004-20013 Unassigned +opendeploy 20014/tcp # OpenDeploy Listener +opendeploy 20014/udp # OpenDeploy Listener +# 20015-20033 Unassigned +nburn_id 20034/tcp # NetBurner ID Port +nburn_id 20034/udp # NetBurner ID Port +# 20035-20166 Unassigned +tolfab 20167/tcp # TOLfab Data Change +tolfab 20167/udp # TOLfab Data Change +# 20168-20201 Unassigned +ipdtp-port 20202/udp # IPD Tunneling Port +ipdtp-port 20202/tcp # IPD Tunneling Port +# Vikki Yin Wei January 2003 +# 20203-20221 Unassigned +ipulse-ics 20222/udp # iPulse-ICS +ipulse-ics 20222/tcp # iPulse-ICS +# Meggie Garica-Woodruff +# 20223-20669 Unassigned +track 20670/udp # Track +track 20670/tcp # Track +# Michael Sweet +# 20671-20998 Unassigned +athand-mmp 20999/udp # AT Hand MMP +athand-mmp 20999/tcp # At Hand MMP +# Stepan Riha +# 20300-21589 Unassigned +irtrans 21000/tcp # IRTrans Control +irtrans 21000/udp # IRTrans Control +# 21001-21553 Unassigned +dfserver 21554/tcp # MineScape Design File Server +dfserver 21554/udp # MineScape Design File Server +# 21555-21589 Unassigned +vofr-gateway 21590/udp # VoFR Gateway +vofr-gateway 21590/tcp # VoFR Gateway +# Marty Borden +# 21591-21799 Unassigned +tvpm 21800/udp # TVNC Pro Multiplexing +tvpm 21800/tcp # TVNC Pro Multiplexing +# Brian Blevins +# 21801-21844 Unassigned +webphone 21845/udp # webphone +webphone 21845/tcp # webphone +netspeak-is 21846/udp # NetSpeak Corp. Directory Services +netspeak-is 21846/tcp # NetSpeak Corp. Directory Services +netspeak-cs 21847/udp # NetSpeak Corp. Connection Services +netspeak-cs 21847/tcp # NetSpeak Corp. Connection Services +netspeak-acd 21848/udp # NetSpeak Corp. Automatic Call Distribution +netspeak-acd 21848/tcp # NetSpeak Corp. Automatic Call Distribution +netspeak-cps 21849/udp # NetSpeak Corp. Credit Processing System +netspeak-cps 21849/tcp # NetSpeak Corp. Credit Processing System +# Toby Hosterman +# 21850-21999 Unassigned +snapenetio 22000/udp # SNAPenetIO +snapenetio 22000/tcp # SNAPenetIO +optocontrol 22001/udp # OptoControl +optocontrol 22001/tcp # OptoControl +# Kevin Kuhns +optohost002 22002/tcp # Opto Host Port 2 +optohost002 22002/udp # Opto Host Port 2 +optohost003 22003/tcp # Opto Host Port 3 +optohost003 22003/udp # Opto Host Port 3 +optohost004 22004/tcp # Opto Host Port 4 +optohost004 22004/udp # Opto Host Port 4 +optohost004 22005/tcp # Opto Host Port 5 +optohost004 22005/udp # Opto Host Port 5 +# 22006-22272 Unassigned +wnn6 22273/udp # wnn6 +wnn6 22273/tcp # wnn6 +# Yasunari Gon Yamasita Scott_Petrack@vocaltec.com> +# 22556-22799 Unassigned +talikaserver 22763/tcp # Talika Main Server +talikaserver 22763/udp # Talika Main Server +# 22764-22799 Unassigned +aws-brf 22800/udp # Telerate Information Platform LAN +aws-brf 22800/tcp # Telerate Information Platform LAN +# Timo Sivonen +# 22801-22950 Unassigned +brf-gw 22951/udp # Telerate Information Platform WAN +brf-gw 22951/tcp # Telerate Information Platform WAN +# Timo Sivonen +# 22952-23999 Unassigned +inovaport1 23000/tcp # Inova LightLink Server Type 1 +inovaport1 23000/udp # Inova LightLink Server Type 1 +inovaport2 23001/tcp # Inova LightLink Server Type 2 +inovaport2 23001/udp # Inova LightLink Server Type 2 +inovaport3 23002/tcp # Inova LightLink Server Type 3 +inovaport3 23002/udp # Inova LightLink Server Type 3 +inovaport4 23003/tcp # Inova LightLink Server Type 4 +inovaport4 23003/udp # Inova LightLink Server Type 4 +inovaport5 23004/tcp # Inova LightLink Server Type 5 +inovaport5 23004/udp # Inova LightLink Server Type 5 +inovaport6 23005/tcp # Inova LightLink Server Type 6 +inovaport6 23005/udp # Inova LightLink Server Type 6 +# 23006-23399 Unassigned +novar-dbase 23400/tcp # Novar Data +novar-dbase 23400/udp # Novar Data +novar-alarm 23401/tcp # Novar Alarm +novar-alarm 23401/udp # Novar Alarm +novar-global 23402/tcp # Novar Global +novar-global 23402/udp # Novar Global +# 23403-23999 Unassigned +med-ltp 24000/udp # med-ltp +med-ltp 24000/tcp # med-ltp +med-fsp-rx 24001/udp # med-fsp-rx +med-fsp-rx 24001/tcp # med-fsp-rx +med-fsp-tx 24002/udp # med-fsp-tx +med-fsp-tx 24002/tcp # med-fsp-tx +med-supp 24003/udp # med-supp +med-supp 24003/tcp # med-supp +med-ovw 24004/udp # med-ovw +med-ovw 24004/tcp # med-ovw +med-ci 24005/udp # med-ci +med-ci 24005/tcp # med-ci +med-net-svc 24006/udp # med-net-svc +med-net-svc 24006/tcp # med-net-svc +# Juergen Fischbach +# 24007-24241 Unassigned +filesphere 24242/udp # fileSphere +filesphere 24242/tcp # fileSphere +# Carl Cedergren +# 24243-24248 Unassigned +vista-4gl 24249/udp # Vista 4GL +vista-4gl 24249/tcp # Vista 4GL +# Mark Itzcovitz +# 24250-24385 Unassigned +ild 24321/tcp # Isolv Local Directory +ild 24321/udp # Isolv Local Directory +# 24322-24385 Unassigned +intel_rci 24386/udp # Intel RCI +intel_rci 24386/tcp # Intel RCI +# Mark Lewis +# 24387-24553 Unassigned +binkp 24554/udp # BINKP +binkp 24554/tcp # BINKP +# Max Masyutin +# 24554-34676 Unassigned +flashfiler 24677/udp # FlashFiler +flashfiler 24677/tcp # FlashFiler +# Ben Oram +proactivate 24678/udp # Turbopower Proactivate +proactivate 24678/tcp # Turbopower Proactivate +# Ben Oram +# 24679-24921 Unassigned +tcc-http 24680/tcp # TCC User HTTP Service +tcc-http 24680/udp # TCC User HTTP Service +# 24681-24921 Unassigned +snip 24922/udp # Simple Net Ident Protocol +snip 24922/tcp # Simple Net Ident Protocol +# Jean-Paul Moreaux +# +# 24923-24999 Unassigned +icl-twobase1 25000/udp # icl-twobase1 +icl-twobase1 25000/tcp # icl-twobase1 +icl-twobase2 25001/udp # icl-twobase2 +icl-twobase2 25001/tcp # icl-twobase2 +icl-twobase3 25002/udp # icl-twobase3 +icl-twobase3 25002/tcp # icl-twobase3 +icl-twobase4 25003/udp # icl-twobase4 +icl-twobase4 25003/tcp # icl-twobase4 +icl-twobase5 25004/udp # icl-twobase5 +icl-twobase5 25004/tcp # icl-twobase5 +icl-twobase6 25005/udp # icl-twobase6 +icl-twobase6 25005/tcp # icl-twobase6 +icl-twobase7 25006/udp # icl-twobase7 +icl-twobase7 25006/tcp # icl-twobase7 +icl-twobase8 25007/udp # icl-twobase8 +icl-twobase8 25007/tcp # icl-twobase8 +icl-twobase9 25008/udp # icl-twobase9 +icl-twobase9 25008/tcp # icl-twobase9 +icl-twobase10 25009/udp # icl-twobase10 +icl-twobase10 25009/tcp # icl-twobase10 +# J. A. (Tony) Sever +# 25010-25792 Unassigned +vocaltec-hos 25793/udp # Vocaltec Address Server +vocaltec-hos 25793/tcp # Vocaltec Address Server +# Scott Petrack +# 25794-25900 Unassigned +tasp-net 25900/tcp # TASP Network Comm +tasp-net 25900/udp # TASP Network Comm +# 25901 Unassigned +niobserver 25901/udp # NIObserver +niobserver 25901/tcp # NIObserver +# Roman Oliynyk +# 25902 Unassigned +niprobe 25903/udp # NIProbe +niprobe 25903/tcp # NIProbe +# Roman Oliynyk +# 25904-25999 Unassigned +quake 26000/udp # quake +quake 26000/tcp # quake +# Yasunari Gon Yamasita +# 26001-26207 Unassigned +wnn6-ds 26208/udp # wnn6-ds +wnn6-ds 26208/tcp # wnn6-ds +# Yasunari Gon Yamasita +# 26209-26259 Unassigned +ezproxy 26260/udp # eZproxy +ezproxy 26260/tcp # eZproxy +ezmeeting 26261/udp # eZmeeting +ezmeeting 26261/tcp # eZmeeting +# Albert C. Yang +k3software-svr 26262/udp # K3 Software-Server +k3software-svr 26262/tcp # K3 Software-Server +k3software-cli 26263/udp # K3 Software-Client +k3software-cli 26263/tcp # K3 Software-Client +# Jim Baldridge +gserver 26264/udp # Gserver +gserver 26264/tcp # Gserver +# Szanto Gabor +# 26265-26999 Unassigned +# Daniel Birns +# 27010-27344 Unassigned +exoline-tcp 26486/tcp # EXOline-TCP +exoline-udp 26486/udp # EXOline-UDP +exoconfig 26487/tcp # EXOconfig +exoconfig 26487/udp # EXOconfig +# 26488 Unassigned +exonet 26489/tcp # EXOnet +exonet 26489/udp # EXOnet +# 26490-27344 Unassigned +imagepump 27345/udp # ImagePump +imagepump 27345/tcp # ImagePump +# Richard Minner +# 27346-27503 Unassigned +jesmsjc 27442/tcp # Job controller service +jesmsjc 27442/udp # Job controller service +# 27443-27503 Unassigned +kopek-httphead 27504/udp # Kopek HTTP Head Port +kopek-httphead 27504/tcp # Kopek HTTP Head Port +# Sten H. Danielsen July 2002 +# 27505-27998 Unassigned +ars-vista 27782/tcp # ARS VISTA Application +ars-vista 27782/udp # ARS VISTA Application +# 27783-27998 Unassigned +tw-auth-key 27999/udp # Attribute Certificate Services +tw-auth-key 27999/tcp # TW Authentication/Key Distribution and +# Alex Duncan +nxlmd 28000/tcp # NX License Manager +nxlmd 28000/udp # NX License Manager +# 28001-28239 Unassigned +siemensgsm 28240/tcp # Siemens GSM +siemensgsm 28240/udp # Siemens GSM +# 28241-29166 Unassigned +otmp 29167/tcp # ObTools Message Protocol +otmp 29167/udp # ObTools Message Protocol +# 29168-30000 Unassigned +pago-services1 30001/udp # Pago Services 1 +pago-services1 30001/tcp # Pago Services 1 +pago-services2 30002/udp # Pago Services 2 +pago-services2 30002/tcp # Pago Services 2 +# Balduin Mueller-Platz +# March 2002 +# 30003-31415 Unassigned +ovobs 30999/tcp # OpenView Service Desk Client +ovobs 30999/udp # OpenView Service Desk Client +# 31000-31415 Unassigned +xqosd 31416/udp # XQoS network monitor +xqosd 31416/tcp # XQoS network monitor +# Joe Elliott June 2002 +# 31417-31619 Unassigned +tetrinet 31457/tcp # TetriNET Protocol +tetrinet 31457/udp # TetriNET Protocol +# 31458-31619 Unassigned +lm-mon 31620/udp # lm mon +lm-mon 31620/tcp # lm mon +# Mounir Hahad June 2003 +# 31621-31764 Unassigned +gamesmith-port 31765/udp # GameSmith Port +gamesmith-port 31765/tcp # GameSmith Port +# Randy Thompson August 2002 +# 31766-32767 Unassigned +iceedcp_tx 31948/tcp # Embedded Device Configuration Protocol TX +iceedcp_tx 31948/udp # Embedded Device Configuration Protocol TX +iceedcp_rx 31949/tcp # Embedded Device Configuration Protocol RX +iceedcp_rx 31949/udp # Embedded Device Configuration Protocol RX +# 31950-32248 Unassigned +t1distproc60 32249/tcp # T1 Distributed Processor +t1distproc60 32249/udp # T1 Distributed Processor +# 32250-32482 Unassigned +apm-link 32483/tcp # Access Point Manager Link +apm-link 32483/udp # Access Point Manager Link +# 32484-32634 Unassigned +sec-ntb-clnt 32635/tcp # SecureNotebook-CLNT +sec-ntb-clnt 32635/udp # SecureNotebook-CLNT +# 32636-32766 Unassigned +filenet-powsrm 32767/tcp # FileNet BPM WS-ReliableMessaging Client +filenet-powsrm 32767/udp # FileNet BPM WS-ReliableMessaging Client +# 32768 Unassigned +filenet-tms 32768/udp # Filenet TMS +filenet-tms 32768/tcp # Filenet TMS +filenet-rpc 32769/udp # Filenet RPC +filenet-rpc 32769/tcp # Filenet RPC +filenet-nch 32770/udp # Filenet NCH +filenet-nch 32770/tcp # Filenet NCH +# Daniel Whelan +filenet-rmi 32771/udp # FileNet RMI +filenet-rmi 32771/tcp # FileNET RMI +# Chris Adkins +filenet-pa 32772/udp # FileNET Process Analyzer +filenet-pa 32772/tcp # FileNET Process Analyzer +# Chris Adkins January 2003 +filenet-cm 32773/tcp # FileNET Component Manager +filenet-cm 32773/udp # FileNET Component Manager +filenet-re 32774/tcp # FileNET Rules Engine +filenet-re 32774/udp # FileNET Rules Engine +filenet-pch 32775/tcp # Performance Clearinghouse +filenet-pch 32775/udp # Performance Clearinghouse +filenet-peior 32776/tcp # FileNET BPM IOR +filenet-peior 32776/udp # FileNET BPM IOR +filenet-obrok 32777/tcp # FileNet BPM CORBA +filenet-obrok 32777/udp # FileNet BPM CORBA +# 32778-32895 Unassigned +idmgratm 32896/udp # Attachmate ID Manager +idmgratm 32896/tcp # Attachmate ID Manager +# George Gianelos March 2003 +# 32897-33330 Unassigned +diamondport 33331/udp # DiamondCentral Interface +diamondport 33331/tcp # DiamondCentral Interface +# Edward Browdy July 2002 +# 33332-33433 Unassigned +traceroute 33434/udp # traceroute use +traceroute 33434/tcp # traceroute use +# IANA +# 33435-34248 Unassigned +snip-slave 33656/tcp # SNIP Slave +snip-slave 33656/udp # SNIP Slave +# 33657-34248 Unassigned +turbonote-2 34249/udp # TurboNote Relay Server Default Port +turbonote-2 34249/tcp # TurboNote Relay Server Default Port +# Peter Hyde +# 34250-36864 Unassigned +p-net-local 34378/tcp # P-Net on IP local +p-net-local 34378/udp # P-Net on IP local +p-net-remote 34379/tcp # P-Net on IP remote +p-net-remote 34379/udp # P-Net on IP remote +# 34380-34961 Unassigned +profinet-rt 34962/tcp # PROFInet RT Unicast +profinet-rt 34962/udp # PROFInet RT Unicast +profinet-rtm 34963/tcp # PROFInet RT Multicast +profinet-rtm 34963/udp # PROFInet RT Multicast +profinet-cm 34964/tcp # PROFInet Context Manager +profinet-cm 34964/udp # PROFInet Context Manager +# 34965-34979 Unassigned +ethercat 34980/tcp # EtherCAT Port +ethercat 34980/udp # EhterCAT Port +# 34981-36864 Unassigned +kastenxpipe 36865/udp # KastenX Pipe +kastenxpipe 36865/tcp # KastenX Pipe +# Guy Cheng +# 36866-37474 Unassigned +neckar 37475/udp # science + computing's Venus Administration Port +neckar 37475/tcp # science + computing's Venus Administration Port +# Ralf Allrutz February 2002 +# 37476-38200 Unassigned +unisys-eportal 37654/tcp # Unisys ClearPath ePortal +unisys-eportal 37654/udp # Unisys ClearPath ePortal +# 37655-38200 Unassigned +galaxy7-data 38201/udp # Galaxy7 Data Tunnel +galaxy7-data 38201/tcp # Galaxy7 Data Tunnel +# Tatham Oddie September 2002 +fairview 38202/tcp # Fairview Message Service +fairview 38202/udp # Fairview Message Service +agpolicy 38203/tcp # AppGate Policy Server +agpolicy 38203/udp # AppGate Policy Server +# 38204-39680 Unassigned +turbonote-1 39681/udp # TurboNote Default Port +turbonote-1 39681/tcp # TurboNote Default Port +# Peter Hyde +# 39682-40840 Unassigned +safetynetp 40000/tcp # SafetyNET p +safetynetp 40000/udp # SafetyNET p +# 40001-40840 Unassigned +cscp 40841/udp # CSCP +cscp 40841/tcp # CSCP +# Michael Dodge +csccredir 40842/udp # CSCCREDIR +csccredir 40842/tcp # CSCCREDIR +csccfirewall 40843/udp # CSCCFIREWALL +csccfirewall 40843/tcp # CSCCFIREWALL +# Sudhir Menon +# 40844-41110 Unassigned +fs-qos 41111/udp # Foursticks QoS Protocol +fs-qos 41111/tcp # Foursticks QoS Protocol +# Chee Kent Lam April 2002 +# 41112-41793 Unassigned +crestron-cip 41794/udp # Crestron Control Port +crestron-cip 41794/tcp # Crestron Control Port +crestron-ctp 41795/udp # Crestron Terminal Port +crestron-ctp 41795/tcp # Crestron Terminal Port +# Ed Ranney January 2003 +# 41796-43187 Unassigned +candp 42508/tcp # Computer Associates network discovery protocol +candp 42508/udp # Computer Associates network discovery protocol +candrp 42509/tcp # CA discovery response +candrp 42509/udp # CA discovery response +caerpc 42510/tcp # CA eTrust RPC +caerpc 42510/udp # CA eTrust RPC +# 42511-43187 Unassigned +reachout 43188/udp # REACHOUT +reachout 43188/tcp # REACHOUT +ndm-agent-port 43189/udp # NDM-AGENT-PORT +ndm-agent-port 43189/tcp # NDM-AGENT-PORT +ip-provision 43190/udp # IP-PROVISION +ip-provision 43190/tcp # IP-PROVISION +# Roman Kriis +# 43191-44320 Unassigned +ciscocsdb 43441/tcp # Cisco NetMgmt DB Ports +ciscocsdb 43441/udp # Cisco NetMgmt DB Ports +# 43442-44320 Unassigned +pmcd 44321/udp # PCP server (pmcd) +pmcd 44321/tcp # PCP server (pmcd) +# Ken McDonell June 2002 +pmcdproxy 44322/tcp # PCP server (pmcd) proxy +pmcdproxy 44322/udp # PCP server (pmcd) proxy +# 44323-44552 Unassigned +rbr-debug 44553/tcp # REALbasic Remote Debug +rbr-debug 44553/udp # REALbasic Remote Debug +# 44554-44817 Unassigned +rockwell-encap 44818/udp # Rockwell Encapsulation +rockwell-encap 44818/tcp # Rockwell Encapsulation +# Brian Batke +# 44819-45053 Unassigned +invision-ag 45054/udp # InVision AG +invision-ag 45054/tcp # InVision AG +# Matthias Schroer +# 45055-45677 Unassigned +eba 45678/udp # EBA PRISE +eba 45678/tcp # EBA PRISE +# Patrick Kara +# 45679-45965 Unassigned +ssr-servermgr 45966/udp # SSRServerMgr +ssr-servermgr 45966/tcp # SSRServerMgr +# Jeremy Gilliat +# 45967-46999 Unassigned +mediabox 46999/tcp # MediaBox Server +mediabox 46999/udp # MediaBox Server +# 47000 Unassigned +mbus 47000/udp # Message Bus +mbus 47000/tcp # Message Bus +# Dirk Kutscher +# 47001-47556 Unassigned +dbbrowse 47557/udp # Databeam Corporation +dbbrowse 47557/tcp # Databeam Corporation +# Cindy Martin +# 47558-47623 Unassigned +directplaysrvr 47624/udp # Direct Play Server +directplaysrvr 47624/tcp # Direct Play Server +# Ajay Jindal +# 47625-47805 Unassigned +ap 47806/udp # ALC Protocol +ap 47806/tcp # ALC Protocol +# Andrew Newton +# 47807 Unassigned +bacnet 47808/udp # Building Automation and Control Networks +bacnet 47808/tcp # Building Automation and Control Networks +# H. Michael Newman +# 47809-47999 Unassigned +nimcontroller 48000/udp # Nimbus Controller +nimcontroller 48000/tcp # Nimbus Controller +nimspooler 48001/udp # Nimbus Spooler +nimspooler 48001/tcp # Nimbus Spooler +nimhub 48002/udp # Nimbus Hub +nimhub 48002/tcp # Nimbus Hub +nimgtw 48003/udp # Nimbus Gateway +nimgtw 48003/tcp # Nimbus Gateway +# Carstein Seeberg +# 48004-48555 Unassigned +isnetserv 48128/tcp # Image Systems Network Services +isnetserv 48128/udp # Image Systems Network Services +blp5 48129/tcp # Bloomberg locator +blp5 48129/udp # Bloomberg locator +# 48130-48555 Unassigned +com-bardac-dw 48556/udp # com-bardac-dw +com-bardac-dw 48556/tcp # com-bardac-dw +# Nicholas J Howes +# 48557-49150 Unassigned +# 49151 IANA Reserved diff --git a/test/testfiles/zerofile b/test/testfiles/zerofile new file mode 100644 index 0000000..e69de29 diff --git a/test/util.py b/test/util.py new file mode 100644 index 0000000..e4f7f8c --- /dev/null +++ b/test/util.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2013 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +import datetime + + +def assertListings(expected, actual, len_method, content_method): + # Sort both listings by path name + expected = sorted(expected, key=lambda node: node["path"]) + actual = sorted(actual, key=lambda node: node["path"]) + + # Only test for the following attributes, since CLI hadoop doesn't provide all + # attributes + test_attributes = ['path', 'permission', 'block_replication', 'owner', 'group', + 'length', 'modification_time', 'file_type'] + + # Assert the length of both listings with the len_method + len_method(len(actual), len(expected)) + + # Assert both listings with the content_method + for i, expected_node in enumerate(expected): + client_node = actual[i] + for attribute in test_attributes: + # Modification times from CLI hadoop have less granularity, + # so we transform both listings to an equal format + if attribute == 'modification_time': + client_time = datetime.datetime.fromtimestamp(client_node[attribute] / 1000).strftime("%Y%d%m%H%%M") + expected_time = datetime.datetime.fromtimestamp(expected_node[attribute]).strftime("%Y%d%m%H%%M") + content_method(expected_time, client_time) + else: + content_method(expected_node[attribute], client_node[attribute]) + + +def assertDu(expected, actual, len_method, content_method): + len_method(len(expected), len(actual)) + for i, expected_node in enumerate(expected): + client_node = actual[i] + content_method(expected_node, client_node)