Annotation of embedaddon/strongswan/src/libcharon/plugins/lookip/lookip_msg.h, revision 1.1.1.1

1.1       misho       1: /*
                      2:  * Copyright (C) 2012 Martin Willi
                      3:  * Copyright (C) 2012 revosec AG
                      4:  *
                      5:  * This program is free software; you can redistribute it and/or modify it
                      6:  * under the terms of the GNU General Public License as published by the
                      7:  * Free Software Foundation; either version 2 of the License, or (at your
                      8:  * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
                      9:  *
                     10:  * This program is distributed in the hope that it will be useful, but
                     11:  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
                     12:  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
                     13:  * for more details.
                     14:  */
                     15: 
                     16: /**
                     17:  * @defgroup lookip_msg lookip_msg
                     18:  * @{ @ingroup lookip
                     19:  */
                     20: 
                     21: #ifndef LOOKIP_MSG_H_
                     22: #define LOOKIP_MSG_H_
                     23: 
                     24: #define LOOKIP_SOCKET IPSEC_PIDDIR "/charon.lkp"
                     25: 
                     26: typedef struct lookip_request_t lookip_request_t;
                     27: typedef struct lookip_response_t lookip_response_t;
                     28: 
                     29: /**
                     30:  * Message type.
                     31:  *
                     32:  * The client can send a batch of request messages, containing DUMP, LOOKUP or
                     33:  * REGISTER_* messages. The server immediately starts sending responses for
                     34:  * these messages, using ENTRY or NOTIFY_* messages.
                     35:  * A client MUST send an END message to complete a batch. The server will
                     36:  * send any remaining responses, but will not accept new requests and closes
                     37:  * the connection when complete.
                     38:  */
                     39: enum {
                     40:        /** request a dump of all entries */
                     41:        LOOKIP_DUMP = 1,
                     42:        /** lookup a specific virtual IP */
                     43:        LOOKIP_LOOKUP,
                     44:        /** reply message for DUMP and LOOKUP */
                     45:        LOOKIP_ENTRY,
                     46:        /** reply message for LOOKUP if no such IP found */
                     47:        LOOKIP_NOT_FOUND,
                     48:        /** register for notifications about new virtual IPs */
                     49:        LOOKIP_REGISTER_UP,
                     50:        /** register for notifications about virtual IPs released */
                     51:        LOOKIP_REGISTER_DOWN,
                     52:        /** notify reply message for REGISTER_UP */
                     53:        LOOKIP_NOTIFY_UP,
                     54:        /** notify reply message for REGISTER_DOWN */
                     55:        LOOKIP_NOTIFY_DOWN,
                     56:        /** end of request batch */
                     57:        LOOKIP_END,
                     58: };
                     59: 
                     60: /**
                     61:  * Request message sent from client.
                     62:  *
                     63:  * Valid request message types are DUMP, LOOKUP, REGISTER_UP/DOWN and END.
                     64:  *
                     65:  * The vip field is used only in LOOKUP requests, but ignored otherwise.
                     66:  */
                     67: struct lookip_request_t {
                     68:        /** request message type */
                     69:        int type;
                     70:        /** null terminated string representation of virtual IP */
                     71:        char vip[40];
                     72: } __attribute__((packed));
                     73: 
                     74: /**
                     75:  * Response message sent to client.
                     76:  *
                     77:  * Valid response message types are ENTRY, NOT_FOUND and NOTIFY_UP/DOWN.
                     78:  *
                     79:  * All fields are set in all messages, except in NOT_FOUND: Only vip is set.
                     80:  */
                     81: struct lookip_response_t {
                     82:        /** response message type */
                     83:        int type;
                     84:        /** null terminated string representation of virtual IP */
                     85:        char vip[40];
                     86:        /** null terminated string representation of outer IP */
                     87:        char ip[40];
                     88:        /** null terminated peer identity */
                     89:        char id[256];
                     90:        /** null terminated connection name */
                     91:        char name[40];
                     92:        /** unique connection id */
                     93:        unsigned int unique_id;
                     94: } __attribute__((packed));
                     95: 
                     96: #endif /** LOOKIP_MSG_H_ @}*/

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>