diff options
Diffstat (limited to 'net/tipc/msg.h')
| -rw-r--r-- | net/tipc/msg.h | 161 | 
1 files changed, 54 insertions, 107 deletions
diff --git a/net/tipc/msg.h b/net/tipc/msg.h index de02339fc17..8452454731f 100644 --- a/net/tipc/msg.h +++ b/net/tipc/msg.h @@ -39,41 +39,24 @@  #include "bearer.h" +/* + * Constants and routines used to read and write TIPC payload message headers + * + * Note: Some items are also used with TIPC internal message headers + */ +  #define TIPC_VERSION              2  /* - *		TIPC user data message header format, version 2: - * - * - *     1 0 9 8 7 6 5 4|3 2 1 0 9 8 7 6|5 4 3 2 1 0 9 8|7 6 5 4 3 2 1 0 - *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * w0:|vers | user  |hdr sz |n|d|s|-|          message size           | - *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * w1:|mstyp| error |rer cnt|lsc|opt p|      broadcast ack no         | - *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * w2:|        link level ack no      |   broadcast/link level seq no | - *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * w3:|                       previous node                           | - *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * w4:|                      originating port                         | - *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * w5:|                      destination port                         | - *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * w6:|                      originating node                         | - *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * w7:|                      destination node                         | - *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * w8:|            name type / transport sequence number              | - *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * w9:|              name instance/multicast lower bound              | - *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * wA:|                    multicast upper bound                      | - *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - *    /                                                               / - *    \                           options                             \ - *    /                                                               / - *    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - * + * Payload message users are defined in TIPC's public API: + * - TIPC_LOW_IMPORTANCE + * - TIPC_MEDIUM_IMPORTANCE + * - TIPC_HIGH_IMPORTANCE + * - TIPC_CRITICAL_IMPORTANCE + */ + +/* + * Payload message types   */  #define TIPC_CONN_MSG		0 @@ -81,6 +64,9 @@  #define TIPC_NAMED_MSG		2  #define TIPC_DIRECT_MSG		3 +/* + * Message header sizes + */  #define SHORT_H_SIZE              24	/* Connected, in-cluster messages */  #define DIR_MSG_H_SIZE            32	/* Directly addressed messages */ @@ -473,40 +459,11 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)  /* -		TIPC internal message header format, version 2 - -       1 0 9 8 7 6 5 4|3 2 1 0 9 8 7 6|5 4 3 2 1 0 9 8|7 6 5 4 3 2 1 0 -      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -   w0:|vers |msg usr|hdr sz |n|resrv|            packet size          | -      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -   w1:|m typ|      sequence gap       |       broadcast ack no        | -      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -   w2:| link level ack no/bc_gap_from |     seq no / bcast_gap_to     | -      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -   w3:|                       previous node                           | -      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -   w4:|  next sent broadcast/fragm no | next sent pkt/ fragm msg no   | -      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -   w5:|          session no           |rsv=0|r|berid|link prio|netpl|p| -      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -   w6:|                      originating node                         | -      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -   w7:|                      destination node                         | -      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -   w8:|                   transport sequence number                   | -      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -   w9:|   msg count / bcast tag       |       link tolerance          | -      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -      \                                                               \ -      /                     User Specific Data                        / -      \                                                               \ -      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - -      NB: CONN_MANAGER use data message format. LINK_CONFIG has own format. -*/ + * Constants and routines used to read and write TIPC internal message headers + */  /* - * Internal users + * Internal message users   */  #define  BCAST_PROTOCOL       5 @@ -520,7 +477,7 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)  #define  LINK_CONFIG          13  /* - *  Connection management protocol messages + *  Connection management protocol message types   */  #define CONN_PROBE        0 @@ -528,12 +485,41 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)  #define CONN_ACK          2  /* - * Name distributor messages + * Name distributor message types   */  #define PUBLICATION       0  #define WITHDRAWAL        1 +/* + * Segmentation message types + */ + +#define FIRST_FRAGMENT		0 +#define FRAGMENT		1 +#define LAST_FRAGMENT		2 + +/* + * Link management protocol message types + */ + +#define STATE_MSG		0 +#define RESET_MSG		1 +#define ACTIVATE_MSG		2 + +/* + * Changeover tunnel message types + */ +#define DUPLICATE_MSG		0 +#define ORIGINAL_MSG		1 + +/* + * Config protocol message types + */ + +#define DSC_REQ_MSG		0 +#define DSC_RESP_MSG		1 +  /*   * Word 1 @@ -761,50 +747,11 @@ static inline void msg_set_link_tolerance(struct tipc_msg *m, u32 n)  	msg_set_bits(m, 9, 0, 0xffff, n);  } -/* - * Segmentation message types - */ - -#define FIRST_FRAGMENT     0 -#define FRAGMENT           1 -#define LAST_FRAGMENT      2 - -/* - * Link management protocol message types - */ - -#define STATE_MSG       0 -#define RESET_MSG       1 -#define ACTIVATE_MSG    2 - -/* - * Changeover tunnel message types - */ -#define DUPLICATE_MSG    0 -#define ORIGINAL_MSG     1 - -/* - * Routing table message types - */ -#define EXT_ROUTING_TABLE    0 -#define LOCAL_ROUTING_TABLE  1		/* obsoleted */ -#define SLAVE_ROUTING_TABLE  2 -#define ROUTE_ADDITION       3 -#define ROUTE_REMOVAL        4 - -/* - * Config protocol message types - */ - -#define DSC_REQ_MSG          0 -#define DSC_RESP_MSG         1 -  u32 tipc_msg_tot_importance(struct tipc_msg *m);  void tipc_msg_init(struct tipc_msg *m, u32 user, u32 type,  			    u32 hsize, u32 destnode); -int tipc_msg_calc_data_size(struct iovec const *msg_sect, u32 num_sect); -int tipc_msg_build(struct tipc_msg *hdr, -			    struct iovec const *msg_sect, u32 num_sect, +int tipc_msg_build(struct tipc_msg *hdr, struct iovec const *msg_sect, +		   u32 num_sect, unsigned int total_len,  			    int max_size, int usrmem, struct sk_buff **buf);  static inline void msg_set_media_addr(struct tipc_msg *m, struct tipc_media_addr *a)  |