/*
This file is part of GNUnet.
(C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 2, or (at your
option) any later version.
GNUnet is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
/**
* @file include/gnunet_protocols.h
* @brief constants for network protocols
* @author Christian Grothoff
*/
#ifndef GNUNET_PROTOCOLS_H
#define GNUNET_PROTOCOLS_H
#ifdef __cplusplus
extern "C"
{
#if 0 /* keep Emacsens' auto-indent happy */
}
#endif
#endif
/*******************************************************************************
* UTIL message types
******************************************************************************/
/**
* Test if service is online.
*/
#define GNUNET_MESSAGE_TYPE_TEST 1
/**
* Dummy messages for testing / benchmarking.
*/
#define GNUNET_MESSAGE_TYPE_DUMMY 2
/*******************************************************************************
* RESOLVER message types
******************************************************************************/
/**
* Request DNS resolution.
*/
#define GNUNET_MESSAGE_TYPE_RESOLVER_REQUEST 4
/**
* Response to a DNS resolution request.
*/
#define GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE 5
/*******************************************************************************
* ARM message types
******************************************************************************/
/**
* Request to ARM to start a service.
*/
#define GNUNET_MESSAGE_TYPE_ARM_START 8
/**
* Request to ARM to stop a service.
*/
#define GNUNET_MESSAGE_TYPE_ARM_STOP 9
/**
* Request ARM service itself to shutdown.
*/
#define GNUNET_MESSAGE_TYPE_ARM_SHUTDOWN 10
/**
* Response from ARM.
*/
#define GNUNET_MESSAGE_TYPE_ARM_RESULT 11
/**
* Request to ARM to list all currently running services
*/
#define GNUNET_MESSAGE_TYPE_ARM_LIST 12
/**
* Response from ARM for listing currently running services
*/
#define GNUNET_MESSAGE_TYPE_ARM_LIST_RESULT 13
/*******************************************************************************
* HELLO message types
******************************************************************************/
/**
* HELLO message used for communicating peer addresses.
* Managed by libgnunethello.
*/
#define GNUNET_MESSAGE_TYPE_HELLO 16
/*******************************************************************************
* FRAGMENTATION message types
******************************************************************************/
/**
* FRAGMENT of a larger message.
* Managed by libgnunetfragment.
*/
#define GNUNET_MESSAGE_TYPE_FRAGMENT 18
/**
* Acknowledgement of a FRAGMENT of a larger message.
* Managed by libgnunetfragment.
*/
#define GNUNET_MESSAGE_TYPE_FRAGMENT_ACK 19
/*******************************************************************************
* Transport-WLAN message types
******************************************************************************/
/**
* Type of data messages from the plugin to the gnunet-wlan-helper
*/
#define GNUNET_MESSAGE_TYPE_WLAN_DATA_TO_HELPER 39
/**
* Type of data messages from the gnunet-wlan-helper to the plugin
*/
#define GNUNET_MESSAGE_TYPE_WLAN_DATA_FROM_HELPER 40
/**
* Control message between the gnunet-wlan-helper and the daemon (with the MAC).
*/
#define GNUNET_MESSAGE_TYPE_WLAN_HELPER_CONTROL 41
/**
* Type of messages for advertisement over wlan
*/
#define GNUNET_MESSAGE_TYPE_WLAN_ADVERTISEMENT 42
/**
* Type of messages for data over the wlan
*/
#define GNUNET_MESSAGE_TYPE_WLAN_DATA 43
/*******************************************************************************
* Transport-DV message types
******************************************************************************/
/**
* DV service to DV Plugin message, when a message is
* unwrapped by the DV service and handed to the plugin
* for processing
*/
#define GNUNET_MESSAGE_TYPE_TRANSPORT_DV_RECEIVE 44
/**
* DV Plugin to DV service message, indicating a message
* should be sent out.
*/
#define GNUNET_MESSAGE_TYPE_TRANSPORT_DV_SEND 45
/**
* DV service to DV api message, containing a confirmation
* or failure of a DV_SEND message.
*/
#define GNUNET_MESSAGE_TYPE_TRANSPORT_DV_SEND_RESULT 46
/**
* P2P DV message encapsulating some real message
*/
#define GNUNET_MESSAGE_TYPE_DV_DATA 47
/**
* P2P DV message gossipping peer information
*/
#define GNUNET_MESSAGE_TYPE_DV_GOSSIP 48
/**
* DV Plugin to DV service message, indicating
* startup.
*/
#define GNUNET_MESSAGE_TYPE_DV_START 49
/**
* P2P DV message notifying connected peers of a disconnect
*/
#define GNUNET_MESSAGE_TYPE_DV_DISCONNECT 50
/*******************************************************************************
* Transport-UDP message types
******************************************************************************/
/**
* Normal UDP message type.
*/
#define GNUNET_MESSAGE_TYPE_TRANSPORT_UDP_MESSAGE 56
/**
* UDP ACK.
*/
#define GNUNET_MESSAGE_TYPE_TRANSPORT_UDP_ACK 57
/*******************************************************************************
* Transport-TCP message types
******************************************************************************/
/**
* TCP NAT probe message, send from NAT'd peer to
* other peer to establish bi-directional communication
*/
#define GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_NAT_PROBE 60
/**
* Welcome message between TCP transports.
*/
#define GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_WELCOME 61
/**
* Message to force transport to update bandwidth assignment (LEGACY)
*/
#define GNUNET_MESSAGE_TYPE_TRANSPORT_ATS 62
/*******************************************************************************
* NAT message types
******************************************************************************/
/**
* Message to ask NAT server to perform traversal test
*/
#define GNUNET_MESSAGE_TYPE_NAT_TEST 63