/*
This file is part of GNUnet.
- (C) 2012 Christian Grothoff
+ Copyright (C) 2012 Christian Grothoff
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
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.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
* @file exit/exit.h
- * @brief format for mesh messages exchanged between VPN service and exit daemon
+ * @brief format for cadet messages exchanged between VPN service and exit daemon
* @author Christian Grothoff
*/
#ifndef EXIT_H
#include "gnunet_util_lib.h"
+GNUNET_NETWORK_STRUCT_BEGIN
+
/**
- * Message send via mesh to an exit daemon to initiate forwarding of
+ * Message send via cadet to an exit daemon to initiate forwarding of
* TCP data to a local service.
*/
struct GNUNET_EXIT_TcpServiceStartMessage
{
/**
- * Type is GNUNET_MESSAGE_TYPE_VPN_TCP_TO_SERVICE_START
+ * Type is #GNUNET_MESSAGE_TYPE_VPN_TCP_TO_SERVICE_START
*/
struct GNUNET_MessageHeader header;
/**
* Always 0.
*/
- uint32_t reserved;
-
- /**
- * Identification for the desired service.
- */
- GNUNET_HashCode service_descriptor;
+ uint32_t reserved GNUNET_PACKED;
/**
* Skeleton of the TCP header to send. Port numbers are to
/**
- * Message send via mesh to an exit daemon to initiate forwarding of
+ * Message send via cadet to an exit daemon to initiate forwarding of
* TCP data to the Internet.
*/
struct GNUNET_EXIT_TcpInternetStartMessage
{
/**
- * Type is GNUNET_MESSAGE_TYPE_VPN_TCP_TO_INTERNET_START
+ * Type is #GNUNET_MESSAGE_TYPE_VPN_TCP_TO_INTERNET_START
*/
struct GNUNET_MessageHeader header;
/**
* Address family, AF_INET or AF_INET6, in network byte order.
*/
- int32_t af;
+ int32_t af GNUNET_PACKED;
/**
* Skeleton of the TCP header to send. Port numbers are to
/**
- * Message send via mesh between VPN and entry and an exit daemon to
+ * Message send via cadet between VPN and entry and an exit daemon to
* transmit TCP data between the VPN entry and an exit session. This
* format is used for both Internet-exits and service-exits and
* in both directions (VPN to exit and exit to VPN).
struct GNUNET_EXIT_TcpDataMessage
{
/**
- * Type is GNUNET_MESSAGE_TYPE_VPN_TCP_DATA
+ * Type is #GNUNET_MESSAGE_TYPE_VPN_TCP_DATA
*/
struct GNUNET_MessageHeader header;
/**
* Always 0.
*/
- uint32_t reserved;
+ uint32_t reserved GNUNET_PACKED;
/**
* Skeleton of the TCP header to send. Port numbers are to
/**
- * Message send via mesh to an exit daemon to send
+ * Message send via cadet to an exit daemon to send
* UDP data to a local service.
*/
struct GNUNET_EXIT_UdpServiceMessage
{
/**
- * Type is GNUNET_MESSAGE_TYPE_VPN_UDP_TO_SERVICE
+ * Type is #GNUNET_MESSAGE_TYPE_VPN_UDP_TO_SERVICE
*/
struct GNUNET_MessageHeader header;
/**
* Source port to use for the UDP request (0 to use a random port). In NBO.
*/
- uint16_t source_port;
+ uint16_t source_port GNUNET_PACKED;
/**
* Destination port to use for the UDP request. In NBO.
- */
- uint16_t destination_port;
-
- /**
- * Identification for the desired service.
*/
- GNUNET_HashCode service_descriptor;
+ uint16_t destination_port GNUNET_PACKED;
/* followed by UDP payload */
};
/**
- * Message send via mesh to an exit daemon to forward
+ * Message send via cadet to an exit daemon to forward
* UDP data to the Internet.
*/
struct GNUNET_EXIT_UdpInternetMessage
{
/**
- * Type is GNUNET_MESSAGE_TYPE_VPN_UDP_TO_INTERNET
+ * Type is #GNUNET_MESSAGE_TYPE_VPN_UDP_TO_INTERNET
*/
struct GNUNET_MessageHeader header;
/**
* Address family, AF_INET or AF_INET6, in network byte order.
*/
- int32_t af;
+ int32_t af GNUNET_PACKED;
/**
* Source port to use for the UDP request (0 to use a random port). In NBO.
*/
- uint16_t source_port;
+ uint16_t source_port GNUNET_PACKED;
/**
* Destination port to use for the UDP request. In NBO.
- */
- uint16_t destination_port;
+ */
+ uint16_t destination_port GNUNET_PACKED;
/* followed by IP address of the destination; either
'struct in_addr' or 'struct in6_addr', depending on af */
struct GNUNET_EXIT_UdpReplyMessage
{
/**
- * Type is GNUNET_MESSAGE_TYPE_VPN_UDP_REPLY
+ * Type is #GNUNET_MESSAGE_TYPE_VPN_UDP_REPLY
*/
struct GNUNET_MessageHeader header;
* Source port to use for the UDP reply (0 to use the same
* port as for the original request). In NBO.
*/
- uint16_t source_port;
+ uint16_t source_port GNUNET_PACKED;
/**
* Destination port to use for the UDP reply (0 to use the same
* port as for the original request). In NBO.
- */
- uint16_t destination_port;
+ */
+ uint16_t destination_port GNUNET_PACKED;
/* followed by UDP payload */
};
/**
- * Message send via mesh to an exit daemon to send
+ * Message send via cadet to an exit daemon to send
* ICMP data to a local service.
*/
struct GNUNET_EXIT_IcmpServiceMessage
{
/**
- * Type is GNUNET_MESSAGE_TYPE_VPN_ICMP_TO_SERVICE
+ * Type is #GNUNET_MESSAGE_TYPE_VPN_ICMP_TO_SERVICE
*/
struct GNUNET_MessageHeader header;
* The receiver (exit) may still have to translate (PT) to the services'
* ICMP version (if possible).
*/
- int32_t af;
-
- /**
- * Identification for the desired service.
- */
- GNUNET_HashCode service_descriptor;
+ int32_t af GNUNET_PACKED;
/**
* ICMP header to use.
/**
- * Message send via mesh to an exit daemon to forward
+ * Message send via cadet to an exit daemon to forward
* ICMP data to the Internet.
*/
struct GNUNET_EXIT_IcmpInternetMessage
{
/**
- * Type is GNUNET_MESSAGE_TYPE_VPN_ICMP_TO_INTERNET
+ * Type is #GNUNET_MESSAGE_TYPE_VPN_ICMP_TO_INTERNET
*/
struct GNUNET_MessageHeader header;
* the IP address format that is used for the target IP. If
* PT is necessary, the sender has already done it.
*/
- int32_t af;
+ int32_t af GNUNET_PACKED;
/**
* ICMP header to use. Must match the target 'af' given
/**
- * Message send via mesh to the vpn service to send
+ * Message send via cadet to the vpn service to send
* ICMP data to the VPN's TUN interface.
*/
struct GNUNET_EXIT_IcmpToVPNMessage
{
/**
- * Type is GNUNET_MESSAGE_TYPE_VPN_ICMP_TO_VPN
+ * Type is #GNUNET_MESSAGE_TYPE_VPN_ICMP_TO_VPN
*/
struct GNUNET_MessageHeader header;
* Address family, AF_INET or AF_INET6, in network byte order.
* Useful to determine if this is an ICMPv4 or ICMPv6 header.
*/
- int32_t af;
+ int32_t af GNUNET_PACKED;
/**
* ICMP header to use. ICMPv4 or ICMPv6, depending on 'af'.
};
+GNUNET_NETWORK_STRUCT_END
+
#endif