1 /*
2  * ndpi_protocol_ids.h
3  *
4  * Copyright (C) 2011-21 - ntop.org
5  *
6  * This file is part of nDPI, an open source deep packet inspection
7  * library based on the OpenDPI and PACE technology by ipoque GmbH
8  *
9  * nDPI is free software: you can redistribute it and/or modify
10  * it under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation, either version 3 of the License, or
12  * (at your option) any later version.
13  *
14  * nDPI is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with nDPI.  If not, see <http://www.gnu.org/licenses/>.
21  *
22  */
23 
24 
25 #ifndef __NDPI_PROTOCOLS_IDS_H__
26 #define __NDPI_PROTOCOLS_IDS_H__
27 
28 #define NDPI_PROTOCOL_SIZE                  2
29 
30 typedef enum {
31   NDPI_PROTOCOL_UNKNOWN               = 0,
32   NDPI_PROTOCOL_FTP_CONTROL           = 1, /* Tomasz Bujlow <tomasz@skatnet.dk> */
33   NDPI_PROTOCOL_MAIL_POP              = 2,
34   NDPI_PROTOCOL_MAIL_SMTP             = 3,
35   NDPI_PROTOCOL_MAIL_IMAP             = 4,
36   NDPI_PROTOCOL_DNS                   = 5,
37   NDPI_PROTOCOL_IPP                   = 6,
38   NDPI_PROTOCOL_HTTP                  = 7,
39   NDPI_PROTOCOL_MDNS                  = 8,
40   NDPI_PROTOCOL_NTP                   = 9,
41   NDPI_PROTOCOL_NETBIOS               = 10,
42   NDPI_PROTOCOL_NFS                   = 11,
43   NDPI_PROTOCOL_SSDP                  = 12,
44   NDPI_PROTOCOL_BGP                   = 13,
45   NDPI_PROTOCOL_SNMP                  = 14,
46   NDPI_PROTOCOL_XDMCP                 = 15,
47   NDPI_PROTOCOL_SMBV1                 = 16, /* SMB version 1 */
48   NDPI_PROTOCOL_SYSLOG                = 17,
49   NDPI_PROTOCOL_DHCP                  = 18,
50   NDPI_PROTOCOL_POSTGRES              = 19,
51   NDPI_PROTOCOL_MYSQL                 = 20,
52   NDPI_PROTOCOL_HOTMAIL               = 21,
53   NDPI_PROTOCOL_DIRECT_DOWNLOAD_LINK  = 22,
54   NDPI_PROTOCOL_MAIL_POPS             = 23,
55   NDPI_PROTOCOL_APPLEJUICE            = 24,
56   NDPI_PROTOCOL_DIRECTCONNECT         = 25,
57   NDPI_PROTOCOL_NTOP                  = 26,
58   NDPI_PROTOCOL_COAP                  = 27,
59   NDPI_PROTOCOL_VMWARE                = 28,
60   NDPI_PROTOCOL_MAIL_SMTPS            = 29,
61   NDPI_PROTOCOL_DTLS                  = 30,
62   NDPI_PROTOCOL_UBNTAC2               = 31, /* Ubiquity UBNT AirControl = 2 - Thomas Fjellstrom <thomas+ndpi@fjellstrom.ca> */
63   NDPI_PROTOCOL_KONTIKI               = 32,
64   NDPI_PROTOCOL_OPENFT                = 33,
65   NDPI_PROTOCOL_FASTTRACK             = 34,
66   NDPI_PROTOCOL_GNUTELLA              = 35,
67   NDPI_PROTOCOL_EDONKEY               = 36, /* Tomasz Bujlow <tomasz@skatnet.dk> */
68   NDPI_PROTOCOL_BITTORRENT            = 37,
69   NDPI_PROTOCOL_SKYPE_CALL            = 38, /* Skype call and videocalls */
70   NDPI_PROTOCOL_SIGNAL                = 39,
71   NDPI_PROTOCOL_MEMCACHED             = 40, /* Memcached - Darryl Sokoloski <darryl@egloo.ca> */
72   NDPI_PROTOCOL_SMBV23                = 41, /* SMB version 2/3 */
73   NDPI_PROTOCOL_MINING                = 42, /* Bitcoin, Ethereum, ZCash, Monero */
74   NDPI_PROTOCOL_NEST_LOG_SINK         = 43, /* Nest Log Sink (Nest Protect) - Darryl Sokoloski <darryl@egloo.ca> */
75   NDPI_PROTOCOL_MODBUS                = 44, /* Modbus */
76   NDPI_PROTOCOL_WHATSAPP_CALL         = 45, /* WhatsApp video ad audio calls go here */
77   NDPI_PROTOCOL_DATASAVER             = 46, /* Protocols used to save data on Internet communications */
78   NDPI_PROTOCOL_XBOX                  = 47,
79   NDPI_PROTOCOL_QQ                    = 48,
80   NDPI_PROTOCOL_TIKTOK                = 49,
81   NDPI_PROTOCOL_RTSP                  = 50,
82   NDPI_PROTOCOL_MAIL_IMAPS            = 51,
83   NDPI_PROTOCOL_ICECAST               = 52,
84   NDPI_PROTOCOL_CPHA                  = 53,
85   NDPI_PROTOCOL_PPSTREAM              = 54,
86   NDPI_PROTOCOL_ZATTOO                = 55,
87   NDPI_PROTOCOL_SHOUTCAST             = 56,
88   NDPI_PROTOCOL_SOPCAST               = 57,
89   NDPI_PROTOCOL_DISCORD               = 58,
90   NDPI_PROTOCOL_TVUPLAYER             = 59,
91   NDPI_PROTOCOL_MONGODB               = 60, /* Leonn Paiva <leonn.paiva@gmail.com> */
92   NDPI_PROTOCOL_QQLIVE                = 61,
93   NDPI_PROTOCOL_THUNDER               = 62,
94   NDPI_PROTOCOL_SOULSEEK              = 63,
95   NDPI_PROTOCOL_PS_VUE                = 64,
96   NDPI_PROTOCOL_IRC                   = 65,
97   NDPI_PROTOCOL_AYIYA                 = 66,
98   NDPI_PROTOCOL_JABBER                = 67,
99   NDPI_PROTOCOL_NATS                  = 68,
100   NDPI_PROTOCOL_AMONG_US              = 69, /* Toni Uhlig <matzeton@googlemail.com> */
101   NDPI_PROTOCOL_YAHOO                 = 70,
102   NDPI_PROTOCOL_DISNEYPLUS            = 71, /* Zied Aouini <aouinizied@gmail.com> */
103   NDPI_PROTOCOL_GOOGLE_PLUS           = 72,
104   NDPI_PROTOCOL_IP_VRRP               = 73,
105   NDPI_PROTOCOL_STEAM                 = 74, /* Tomasz Bujlow <tomasz@skatnet.dk> */
106   NDPI_PROTOCOL_HALFLIFE2             = 75,
107   NDPI_PROTOCOL_WORLDOFWARCRAFT       = 76,
108   NDPI_PROTOCOL_TELNET                = 77,
109   NDPI_PROTOCOL_STUN                  = 78,
110   NDPI_PROTOCOL_IP_IPSEC              = 79,
111   NDPI_PROTOCOL_IP_GRE                = 80,
112   NDPI_PROTOCOL_IP_ICMP               = 81,
113   NDPI_PROTOCOL_IP_IGMP               = 82,
114   NDPI_PROTOCOL_IP_EGP                = 83,
115   NDPI_PROTOCOL_IP_SCTP               = 84,
116   NDPI_PROTOCOL_IP_OSPF               = 85,
117   NDPI_PROTOCOL_IP_IP_IN_IP           = 86,
118   NDPI_PROTOCOL_RTP                   = 87,
119   NDPI_PROTOCOL_RDP                   = 88,
120   NDPI_PROTOCOL_VNC                   = 89,
121   NDPI_PROTOCOL_TUMBLR                = 90, /* Zied Aouini <aouinizied@gmail.com> */
122   NDPI_PROTOCOL_TLS                   = 91,
123   NDPI_PROTOCOL_SSH                   = 92,
124   NDPI_PROTOCOL_USENET                = 93,
125   NDPI_PROTOCOL_MGCP                  = 94,
126   NDPI_PROTOCOL_IAX                   = 95,
127   NDPI_PROTOCOL_TFTP                  = 96,
128   NDPI_PROTOCOL_AFP                   = 97,
129   NDPI_PROTOCOL_STEALTHNET            = 98,
130   NDPI_PROTOCOL_AIMINI                = 99,
131   NDPI_PROTOCOL_SIP                   = 100,
132   NDPI_PROTOCOL_TRUPHONE              = 101,
133   NDPI_PROTOCOL_IP_ICMPV6             = 102,
134   NDPI_PROTOCOL_DHCPV6                = 103,
135   NDPI_PROTOCOL_ARMAGETRON            = 104,
136   NDPI_PROTOCOL_CROSSFIRE             = 105,
137   NDPI_PROTOCOL_DOFUS                 = 106,
138   NDPI_PROTOCOL_FIESTA                = 107,
139   NDPI_PROTOCOL_FLORENSIA             = 108,
140   NDPI_PROTOCOL_GUILDWARS             = 109,
141   NDPI_PROTOCOL_AMAZON_ALEXA          = 110, /* Zied Aouini <aouinizied@gmail.com> */
142   NDPI_PROTOCOL_KERBEROS              = 111,
143   NDPI_PROTOCOL_LDAP                  = 112,
144   NDPI_PROTOCOL_MAPLESTORY            = 113,
145   NDPI_PROTOCOL_MSSQL_TDS             = 114,
146   NDPI_PROTOCOL_PPTP                  = 115,
147   NDPI_PROTOCOL_WARCRAFT3             = 116,
148   NDPI_PROTOCOL_WORLD_OF_KUNG_FU      = 117,
149   NDPI_PROTOCOL_SLACK                 = 118,
150   NDPI_PROTOCOL_FACEBOOK              = 119,
151   NDPI_PROTOCOL_TWITTER               = 120,
152   NDPI_PROTOCOL_DROPBOX               = 121,
153   NDPI_PROTOCOL_GMAIL                 = 122,
154   NDPI_PROTOCOL_GOOGLE_MAPS           = 123,
155   NDPI_PROTOCOL_YOUTUBE               = 124,
156   NDPI_PROTOCOL_SKYPE_TEAMS           = 125,
157   NDPI_PROTOCOL_GOOGLE                = 126,
158   NDPI_PROTOCOL_DCERPC                = 127,
159   NDPI_PROTOCOL_NETFLOW               = 128,
160   NDPI_PROTOCOL_SFLOW                 = 129,
161   NDPI_PROTOCOL_HTTP_CONNECT          = 130,
162   NDPI_PROTOCOL_HTTP_PROXY            = 131,
163   NDPI_PROTOCOL_CITRIX                = 132, /* It also includes the old NDPI_PROTOCOL_CITRIX_ONLINE */
164   NDPI_PROTOCOL_NETFLIX               = 133,
165   NDPI_PROTOCOL_LASTFM                = 134,
166   NDPI_PROTOCOL_WAZE                  = 135,
167   NDPI_PROTOCOL_YOUTUBE_UPLOAD        = 136, /* Upload files to youtube */
168   NDPI_PROTOCOL_HULU                  = 137,
169   NDPI_PROTOCOL_CHECKMK               = 138,
170   NDPI_PROTOCOL_AJP                   = 139, /* Leonn Paiva <leonn.paiva@gmail.com> */
171   NDPI_PROTOCOL_APPLE                 = 140,
172   NDPI_PROTOCOL_WEBEX                 = 141,
173   NDPI_PROTOCOL_WHATSAPP              = 142,
174   NDPI_PROTOCOL_APPLE_ICLOUD          = 143,
175   NDPI_PROTOCOL_VIBER                 = 144,
176   NDPI_PROTOCOL_APPLE_ITUNES          = 145,
177   NDPI_PROTOCOL_RADIUS                = 146,
178   NDPI_PROTOCOL_WINDOWS_UPDATE        = 147,
179   NDPI_PROTOCOL_TEAMVIEWER            = 148, /* xplico.org */
180   NDPI_PROTOCOL_TUENTI                = 149,
181   NDPI_PROTOCOL_LOTUS_NOTES           = 150,
182   NDPI_PROTOCOL_SAP                   = 151,
183   NDPI_PROTOCOL_GTP                   = 152,
184   NDPI_PROTOCOL_WSD                   = 153,
185   NDPI_PROTOCOL_LLMNR                 = 154,
186   NDPI_PROTOCOL_REMOTE_SCAN           = 155,
187   NDPI_PROTOCOL_SPOTIFY               = 156,
188   NDPI_PROTOCOL_MESSENGER             = 157,
189   NDPI_PROTOCOL_H323                  = 158, /* Remy Mudingay <mudingay@ill.fr> */
190   NDPI_PROTOCOL_OPENVPN               = 159, /* Remy Mudingay <mudingay@ill.fr> */
191   NDPI_PROTOCOL_NOE                   = 160, /* Remy Mudingay <mudingay@ill.fr> */
192   NDPI_PROTOCOL_CISCOVPN              = 161, /* Remy Mudingay <mudingay@ill.fr> */
193   NDPI_PROTOCOL_TEAMSPEAK             = 162, /* Remy Mudingay <mudingay@ill.fr> */
194   NDPI_PROTOCOL_TOR                   = 163, /* Remy Mudingay <mudingay@ill.fr> */
195   NDPI_PROTOCOL_SKINNY                = 164, /* Remy Mudingay <mudingay@ill.fr> */
196   NDPI_PROTOCOL_RTCP                  = 165, /* Remy Mudingay <mudingay@ill.fr> */
197   NDPI_PROTOCOL_RSYNC                 = 166, /* Remy Mudingay <mudingay@ill.fr> */
198   NDPI_PROTOCOL_ORACLE                = 167, /* Remy Mudingay <mudingay@ill.fr> */
199   NDPI_PROTOCOL_CORBA                 = 168, /* Remy Mudingay <mudingay@ill.fr> */
200   NDPI_PROTOCOL_UBUNTUONE             = 169, /* Remy Mudingay <mudingay@ill.fr> */
201   NDPI_PROTOCOL_WHOIS_DAS             = 170,
202   NDPI_PROTOCOL_COLLECTD              = 171,
203   NDPI_PROTOCOL_SOCKS                 = 172, /* Tomasz Bujlow <tomasz@skatnet.dk> */
204   NDPI_PROTOCOL_NINTENDO              = 173,
205   NDPI_PROTOCOL_RTMP                  = 174, /* Tomasz Bujlow <tomasz@skatnet.dk> */
206   NDPI_PROTOCOL_FTP_DATA              = 175, /* Tomasz Bujlow <tomasz@skatnet.dk> */
207   NDPI_PROTOCOL_WIKIPEDIA             = 176, /* Tomasz Bujlow <tomasz@skatnet.dk> */
208   NDPI_PROTOCOL_ZMQ                   = 177,
209   NDPI_PROTOCOL_AMAZON                = 178, /* Tomasz Bujlow <tomasz@skatnet.dk> */
210   NDPI_PROTOCOL_EBAY                  = 179, /* Tomasz Bujlow <tomasz@skatnet.dk> */
211   NDPI_PROTOCOL_CNN                   = 180, /* Tomasz Bujlow <tomasz@skatnet.dk> */
212   NDPI_PROTOCOL_MEGACO                = 181, /* Gianluca Costa <g.costa@xplico.org> */
213   NDPI_PROTOCOL_REDIS                 = 182,
214   NDPI_PROTOCOL_PINTEREST             = 183, /* Zied Aouini <aouinizied@gmail.com> */
215   NDPI_PROTOCOL_VHUA                  = 184,
216   NDPI_PROTOCOL_TELEGRAM              = 185, /* Gianluca Costa <g.costa@xplico.org> */
217   NDPI_PROTOCOL_VEVO                  = 186,
218   NDPI_PROTOCOL_PANDORA               = 187,
219   NDPI_PROTOCOL_QUIC                  = 188, /* Andrea Buscarinu <andrea.buscarinu@gmail.com> - Michele Campus <michelecampus5@gmail.com> */
220   NDPI_PROTOCOL_ZOOM                  = 189, /* Zoom video conference. */
221   NDPI_PROTOCOL_EAQ                   = 190,
222   NDPI_PROTOCOL_OOKLA                 = 191,
223   NDPI_PROTOCOL_AMQP                  = 192,
224   NDPI_PROTOCOL_KAKAOTALK             = 193, /* KakaoTalk Chat (no voice call) */
225   NDPI_PROTOCOL_KAKAOTALK_VOICE       = 194, /* KakaoTalk Voice */
226   NDPI_PROTOCOL_TWITCH                = 195, /* Edoardo Dominici <edoaramis@gmail.com> */
227   NDPI_PROTOCOL_DOH_DOT               = 196, /* DoH (DNS over HTTPS), DoT (DNS over TLS), DoQ (DNS over QUIC). TODO: rename in NDPI_PROTOCOL_DOH_DOT_DOQ? */
228   NDPI_PROTOCOL_WECHAT                = 197,
229   NDPI_PROTOCOL_MPEGTS                = 198,
230   NDPI_PROTOCOL_SNAPCHAT              = 199,
231   NDPI_PROTOCOL_SINA                  = 200,
232   NDPI_PROTOCOL_HANGOUT_DUO           = 201, /* Google Hangout ad Duo (merged as they are very similar) */
233   NDPI_PROTOCOL_IFLIX                 = 202, /* www.vizuamatix.com R&D team & M.Mallawaarachchie <manoj_ws@yahoo.com> */
234   NDPI_PROTOCOL_GITHUB                = 203,
235   NDPI_PROTOCOL_BJNP                  = 204,
236   NDPI_PROTOCOL_REDDIT                = 205, /* Zied Aouini <aouinizied@gmail.com> */
237   NDPI_PROTOCOL_WIREGUARD             = 206,
238   NDPI_PROTOCOL_SMPP                  = 207, /* Damir Franusic <df@release14.org> */
239   NDPI_PROTOCOL_DNSCRYPT              = 208, /* Toni Uhlig <matzeton@googlemail.com> */
240   NDPI_PROTOCOL_TINC                  = 209, /* William Guglielmo <william@deselmo.com> */
241   NDPI_PROTOCOL_DEEZER                = 210,
242   NDPI_PROTOCOL_INSTAGRAM             = 211, /* Andrea Buscarinu <andrea.buscarinu@gmail.com> */
243   NDPI_PROTOCOL_MICROSOFT             = 212,
244   NDPI_PROTOCOL_STARCRAFT             = 213, /* Matteo Bracci <matteobracci1@gmail.com> */
245   NDPI_PROTOCOL_TEREDO                = 214,
246   NDPI_PROTOCOL_HOTSPOT_SHIELD        = 215,
247   NDPI_PROTOCOL_IMO                   = 216,
248   NDPI_PROTOCOL_GOOGLE_DRIVE          = 217,
249   NDPI_PROTOCOL_OCS                   = 218,
250   NDPI_PROTOCOL_MICROSOFT_365         = 219,
251   NDPI_PROTOCOL_CLOUDFLARE            = 220,
252   NDPI_PROTOCOL_MS_ONE_DRIVE          = 221,
253   NDPI_PROTOCOL_MQTT                  = 222,
254   NDPI_PROTOCOL_RX                    = 223,
255   NDPI_PROTOCOL_APPLESTORE            = 224,
256   NDPI_PROTOCOL_OPENDNS               = 225,
257   NDPI_PROTOCOL_GIT                   = 226,
258   NDPI_PROTOCOL_DRDA                  = 227,
259   NDPI_PROTOCOL_PLAYSTORE             = 228,
260   NDPI_PROTOCOL_SOMEIP                = 229,
261   NDPI_PROTOCOL_FIX                   = 230,
262   NDPI_PROTOCOL_PLAYSTATION           = 231,
263   NDPI_PROTOCOL_PASTEBIN              = 232, /* Paulo Angelo <pa@pauloangelo.com> */
264   NDPI_PROTOCOL_LINKEDIN              = 233, /* Paulo Angelo <pa@pauloangelo.com> */
265   NDPI_PROTOCOL_SOUNDCLOUD            = 234,
266   NDPI_PROTOCOL_CSGO                  = 235, /* Counter-Strike Global Offensive, Dota = 2 */
267   NDPI_PROTOCOL_LISP                  = 236,
268   NDPI_PROTOCOL_DIAMETER              = 237,
269   NDPI_PROTOCOL_APPLE_PUSH            = 238,
270   NDPI_PROTOCOL_GOOGLE_SERVICES       = 239,
271   NDPI_PROTOCOL_AMAZON_VIDEO          = 240,
272   NDPI_PROTOCOL_GOOGLE_DOCS           = 241,
273   NDPI_PROTOCOL_WHATSAPP_FILES        = 242, /* Videos, pictures, voice messages... */
274   NDPI_PROTOCOL_TARGUS_GETDATA        = 243,
275   NDPI_PROTOCOL_DNP3                  = 244,
276   NDPI_PROTOCOL_IEC60870              = 245, /* https://en.wikipedia.org/wiki/IEC_60870-5 */
277   NDPI_PROTOCOL_BLOOMBERG             = 246,
278   NDPI_PROTOCOL_CAPWAP                = 247,
279   NDPI_PROTOCOL_ZABBIX                = 248,
280   NDPI_PROTOCOL_S7COMM                = 249,
281   NDPI_PROTOCOL_MSTEAMS               = 250,
282   NDPI_PROTOCOL_WEBSOCKET             = 251, /* Leonn Paiva <leonn.paiva@gmail.com> */
283   NDPI_PROTOCOL_ANYDESK               = 252, /* Toni Uhlig <matzeton@googlemail.com> */
284   NDPI_PROTOCOL_SOAP                  = 253, /* Toni Uhlig <matzeton@googlemail.com> */
285   NDPI_PROTOCOL_APPLE_SIRI            = 254, /* Zied Aouini <aouinizied@gmail.com> */
286   NDPI_PROTOCOL_SNAPCHAT_CALL         = 255,
287   NDPI_PROTOCOL_HPVIRTGRP             = 256, /* Toni Uhlig <matzeton@googlemail.com> */
288   NDPI_PROTOCOL_GENSHIN_IMPACT        = 257, /* Toni Uhlig <matzeton@googlemail.com> */
289   NDPI_PROTOCOL_ACTIVISION            = 258,
290   NDPI_PROTOCOL_FORTICLIENT           = 259,
291   NDPI_PROTOCOL_Z3950                 = 260, /* Toni Uhlig <matzeton@googlemail.com> */
292   NDPI_PROTOCOL_LIKEE                 = 261,
293   NDPI_PROTOCOL_GITLAB                = 262,
294   NDPI_PROTOCOL_AVAST_SECUREDNS       = 263, /* Toni Uhlig <matzeton@googlemail.com> */
295 
296 #ifdef CUSTOM_NDPI_PROTOCOLS
297 #include "../../../nDPI-custom/custom_ndpi_protocol_ids.h"
298 #endif
299 
300   /*
301     IMPORTANT
302     before allocating a new identifier please fill up
303     one of those named NDPI_PROTOCOL_FREE_XXX and not used
304     (placeholders to avoid protocol renumbering)
305   */
306 
307   /* IMPORTANT:NDPI_LAST_IMPLEMENTED_PROTOCOL MUST BE THE LAST ELEMENT */
308   NDPI_LAST_IMPLEMENTED_PROTOCOL
309 } ndpi_protocol_id_t;
310 
311 #define NDPI_PROTOCOL_NO_MASTER_PROTO    NDPI_PROTOCOL_UNKNOWN
312 #define NDPI_MAX_SUPPORTED_PROTOCOLS     NDPI_LAST_IMPLEMENTED_PROTOCOL
313 #define NDPI_MAX_NUM_CUSTOM_PROTOCOLS    (NDPI_NUM_BITS-NDPI_LAST_IMPLEMENTED_PROTOCOL)
314 
315 #endif /* __NDPI_PROTOCOL_IDS_H__ */
316