Hi, This seems like 3 different logical changes thus should be 3 different patches. You should not change the MDS library in the same patch as the dtm infrastructure service (unless the changes are very tightly coupled).
What is the actual MDS/TCP performance improvement here and what change is bringing it? I think it would be the increased fragmentation limit but let's be explicit about it in the commit message. Thanks, Hans > -----Original Message----- > From: [email protected] [mailto:[email protected]] > Sent: den 29 april 2014 08:20 > To: [email protected]; Hans Feldt; [email protected] > Cc: [email protected] > Subject: [PATCH 1 of 1] mds: TCP performance improvements [#654] > > osaf/libs/core/mds/include/mds_dt_tcp_disc.h | 1 - > osaf/libs/core/mds/mds_dt_tcp.c | 20 +++++- > osaf/libs/core/mds/mds_dt_trans.c | 12 +- > osaf/services/infrastructure/dtms/config/dtmd.conf | 23 +++++++ > osaf/services/infrastructure/dtms/dtm/dtm_intra.c | 13 +-- > osaf/services/infrastructure/dtms/dtm/dtm_node_sockets.c | 44 > ++++++------- > osaf/services/infrastructure/dtms/dtm/dtm_read_config.c | 30 +++++++++ > osaf/services/infrastructure/dtms/include/dtm.h | 2 + > osaf/services/infrastructure/dtms/include/dtm_cb.h | 3 + > osaf/services/infrastructure/dtms/include/dtm_intra_disc.h | 2 - > 10 files changed, 109 insertions(+), 41 deletions(-) > > > This path is on top of Hans Feldt published on > 4/29/2014 10:58 AM > > 1) Their is NO issue with MDS TCP in-service Upgrade ,The value of > SO_RCVBUF & SO_SNDBUF of TCP sockets was set to 64000 (MDS_SND_RCV_SIZE) > using setsockopt() ,the kernel doubles this value ,and this doubled > value is returned by getsockopt(). So MDS_DIRECT_BUF_MAXSIZE size is used > to send for for both > previous & current versions of Opensaf nodes which are using MDS TCP as > transport > > 2) Made DTM-TCP inter-node & intra-node socket SO_SNDBUF and > SO_RCVBUF buffer in bytes configurable . The kernel doubles this value (to > allow space for bookkeeping over-head) when it is set using > setsockopt(),and > this doubled value is returned by getsockopt(). The default value is > set to DTM_SOCK_SND_RCV_BUF_SIZE=126976 > > 3) Made TCP_NODELAY configurable to specifi whether MDS TCP > transport should follow the Nagle algorithm for deciding when to send > data.By > default, TCP will follow the Nagle algorithm is disable this behavior , > can be > configured to TRUE(1) or FALSE(0) > > diff --git a/osaf/libs/core/mds/include/mds_dt_tcp_disc.h > b/osaf/libs/core/mds/include/mds_dt_tcp_disc.h > --- a/osaf/libs/core/mds/include/mds_dt_tcp_disc.h > +++ b/osaf/libs/core/mds/include/mds_dt_tcp_disc.h > @@ -70,7 +70,6 @@ server_instance_upper + sub_ref_val + su > #define MDS_SND_VERSION 1 > #define MDS_RCV_IDENTIFIRE 0x56123456 > #define MDS_RCV_VERSION 1 > -#define DTM_INTRANODE_MSG_SIZE 1500 > #define DTM_INTRANODE_UNSENT_MSG 200 > > #define MDS_MDTM_LOWER_INSTANCE 0x00000000 > diff --git a/osaf/libs/core/mds/mds_dt_tcp.c b/osaf/libs/core/mds/mds_dt_tcp.c > --- a/osaf/libs/core/mds/mds_dt_tcp.c > +++ b/osaf/libs/core/mds/mds_dt_tcp.c > @@ -38,7 +38,6 @@ > #include <configmake.h> > > #define MDS_MDTM_SUN_PATH 255 > -#define MDS_SND_RCV_SIZE 64000 > #define MDS_MDTM_CONNECT_PATH PKGLOCALSTATEDIR "/osaf_dtm_intra_server" > > #ifndef MDS_PORT_NUMBER > @@ -53,6 +52,9 @@ > /* Send_buffer_size + MDS_MDTM_DTM_PID_BUFFER_SIZE */ > #define MDS_MDTM_DTM_PID_BUFFER_SIZE (2 + MDS_MDTM_DTM_PID_SIZE) > > +/* The default value is set by the rmem_default/wmem_default */ > +#define MDS_SOCK_SND_RCV_BUF_SIZE 126976 > + > extern uint32_t mdtm_num_subscriptions; > extern MDS_SUBTN_REF_VAL mdtm_handle; > extern uint32_t mdtm_global_frag_num_tcp; > @@ -79,11 +81,12 @@ uint32_t mdtm_process_recv_events_tcp(vo > uint32_t mds_mdtm_init_tcp(NODE_ID nodeid, uint32_t *mds_tcp_ref) > { > uint32_t flags; > - uint32_t size = MDS_SND_RCV_SIZE; > + uint32_t size = MDS_SOCK_SND_RCV_BUF_SIZE; > struct sockaddr_un server_addr_un, dhserver_addr_un; > struct sockaddr_in server_addr_in; > struct sockaddr_in6 server_addr_in6; > uint8_t buffer[MDS_MDTM_DTM_PID_BUFFER_SIZE]; > + char *ptr; > > mdtm_pid = getpid(); > > @@ -116,6 +119,19 @@ uint32_t mds_mdtm_init_tcp(NODE_ID nodei > syslog(LOG_ERR, "MDS:MDTM:TCP ncs_patricia_tree_init failed > MDTM_INIT\n"); > return NCSCC_RC_FAILURE; > } > + > + /* setting MDS_SOCK_SND_RCV_BUF_SIZE from environment variable if > given. > + The default value is set to MDS_SOCK_SND_RCV_BUF_SIZE (126976). > + based on application requirements user need to export > MDS_SOCK_SND_RCV_BUF_SIZE > + varible. > + > + If MDS_SOCK_SND_RCV_BUF_SIZE exported to new value > + it is also mandatory to change `DTM_SOCK_SND_RCV_BUF_SIZE=` with > the same value of > + for example if we export MDS_SOCK_SND_RCV_BUF_SIZE=16777216 > + DTM_SOCK_SND_RCV_BUF_SIZE=16777216 also need to be changed in > /etc/opensaf/dtm.conf */ > + if ((ptr = getenv("MDS_SOCK_SND_RCV_BUF_SIZE")) != NULL) { > + size = atoi(ptr); > + } > > /* Create the sockets required for Binding, Send, receive and Discovery > */ > > diff --git a/osaf/libs/core/mds/mds_dt_trans.c > b/osaf/libs/core/mds/mds_dt_trans.c > --- a/osaf/libs/core/mds/mds_dt_trans.c > +++ b/osaf/libs/core/mds/mds_dt_trans.c > @@ -41,7 +41,7 @@ > > #define SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP ((2 + MDS_SEND_ADDRINFO_TCP + > MDTM_FRAG_HDR_LEN_TCP + > MDS_HDR_LEN_TCP)) > > -#define MDTM_MAX_SEND_PKT_SIZE_TCP > (MDTM_NORMAL_MSG_FRAG_SIZE+SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP) /* > Includes the 30 header > bytes(2+8+20) */ > +#define MDTM_MAX_SEND_PKT_SIZE_TCP > (MDS_DIRECT_BUF_MAXSIZE+SUM_MDS_HDR_PLUS_MDTM_HDR_PLUS_LEN_TCP) > /* Includes the 30 header bytes(2+8+20) */ > > uint32_t mdtm_global_frag_num_tcp; > extern struct pollfd pfd[2]; > @@ -363,16 +363,16 @@ static uint32_t mdtm_frag_and_send_tcp(M > > len = m_MMGR_LINK_DATA_LEN(usrbuf); /* Getting total len */ > > - if (len > (32767 * MDTM_NORMAL_MSG_FRAG_SIZE)) { /* We have 15 > bits for frag number so 2( pow 15) -1=32767 */ > + if (len > (32767 * MDS_DIRECT_BUF_MAXSIZE)) { /* We have 15 bits for > frag number so 2( pow 15) -1=32767 */ > m_MDS_LOG_CRITICAL > ("MDTM: App. is trying to send data more than MDTM Can > fragment and send, Max size is =%d\n", > - 32767 * MDTM_NORMAL_MSG_FRAG_SIZE); > + 32767 * MDS_DIRECT_BUF_MAXSIZE); > m_MMGR_FREE_BUFR_LIST(usrbuf); > return NCSCC_RC_FAILURE; > } > > while (len != 0) { > - if (len > MDTM_NORMAL_MSG_FRAG_SIZE) { > + if (len > MDS_DIRECT_BUF_MAXSIZE) { > if (i == 1) { > len_buf = MDTM_MAX_SEND_PKT_SIZE_TCP; > frag_val = MORE_FRAG_BIT | i; > @@ -552,7 +552,7 @@ uint32_t mds_mdtm_send_tcp(MDTM_SEND_REQ > m_MDS_LOG_INFO("MDTM: User Sending Data > lenght=%d Fr_svc=%d to_svc=%d\n", len, > req->src_svc_id, > req->dest_svc_id); > > - if (len > MDTM_NORMAL_MSG_FRAG_SIZE) { > + if (len > MDS_DIRECT_BUF_MAXSIZE) { > /* Packet needs to be fragmented and > send */ > status = mdtm_frag_and_send_tcp(req, > frag_seq_num, id); > return status; > @@ -678,7 +678,7 @@ void mdtm_process_poll_recv_data_tcp(voi > /* Receive all incoming data on this socket */ > > /*******************************************************/ > > - recd_bytes = recv(tcp_cb->DBSRsock, tcp_cb->len_buff, > 2, 0); > + recd_bytes = recv(tcp_cb->DBSRsock, tcp_cb->len_buff, > 2, MSG_NOSIGNAL); > if (0 == recd_bytes) { > LOG_ER("MDTM:socket_recv() = %d, conn lost with > dh server, exiting library err :%s", recd_bytes, > strerror(errno)); > close(tcp_cb->DBSRsock); > diff --git a/osaf/services/infrastructure/dtms/config/dtmd.conf > b/osaf/services/infrastructure/dtms/config/dtmd.conf > --- a/osaf/services/infrastructure/dtms/config/dtmd.conf > +++ b/osaf/services/infrastructure/dtms/config/dtmd.conf > @@ -72,4 +72,27 @@ DTM_TCP_KEEPALIVE_INTVL=1 > # Optional > DTM_TCP_KEEPALIVE_PROBES=2 > > +# > +#Used to Set the dtm internode & intranode socket SO_SNDBUF/SO_RCVBUF > buffer in bytes. > +#The kernel doubles this value (to allow space for bookkeeping over-head) > +#when it is set using setsockopt(),and this doubled value is returned by > +#getsockopt(). The default value is set by the rmem_default/wmem_default > +#sysctl and the maximum allowed value is set by the rmem_max/wmem_max sysctl. > +# > +# IMP NOTE : If DTM_SOCK_SND_RCV_BUF_SIZE is configured according to > application requirements , > +#it is also mandatory to export `MDS_SOCK_SND_RCV_BUF_SIZE=` with the same > value of > +#for example if set as DTM_SOCK_SND_RCV_BUF_SIZE=16777216 need to do : > +#export MDS_SOCK_SND_RCV_BUF_SIZE=16777216 > +DTM_SOCK_SND_RCV_BUF_SIZE=126976 > > +# > +#Specifies whether MDS TCP transport should follow the Nagle algorithm for > +#deciding when to send data.By default, TCP will follow the Nagle algorithm > is disable > +#this behavior,MDS TCP transport can enable TCP_NODELAY to force > +#TCP to always send data immediately.For example,TCP_NODELAY should be used > +#when there is an application using TCP for a request/response. > +#This option is only supported for sockets with an address family > +#of AF_INET or AF_INET6 (internode )and type of SOCK_STREAM > +# TRUE(1) or FALSE(0) > +DTM_TCP_NODELAY_FLAG=1 > + > diff --git a/osaf/services/infrastructure/dtms/dtm/dtm_intra.c > b/osaf/services/infrastructure/dtms/dtm/dtm_intra.c > --- a/osaf/services/infrastructure/dtms/dtm/dtm_intra.c > +++ b/osaf/services/infrastructure/dtms/dtm/dtm_intra.c > @@ -42,7 +42,6 @@ DTM_INTRANODE_CB *dtm_intranode_cb = NUL > > #define DTM_INTRANODE_MAX_PROCESSES 100 > #define DTM_INTRANODE_POLL_TIMEOUT 20000 > -#define DTM_RECV_BUFFER_SIZE 1500 > #define DTM_INTRANODE_TASKNAME "DTM_INTRANODE" > #define DTM_INTRANODE_STACKSIZE NCS_STACKSIZE_HUGE > > @@ -58,7 +57,7 @@ static struct pollfd pfd_list[DTM_INTRAN > > static int dtm_intranode_max_fd; > > -static uint32_t dtm_intra_processing_init(char *node_ip, DTM_IP_ADDR_TYPE > i_addr_family); > +static uint32_t dtm_intra_processing_init(char *node_ip, DTM_IP_ADDR_TYPE > i_addr_family, int32_t sock_snd_rcv_buf_size); > static void dtm_intranode_processing(void); > static uint32_t dtm_intranode_add_poll_fdlist(int fd, uint16_t event); > static uint32_t dtm_intranode_create_rcv_task(int task_hdl); > @@ -79,10 +78,9 @@ uint32_t dtm_socket_domain = AF_UNIX; > */ > uint32_t dtm_service_discovery_init(DTM_INTERNODE_CB *dtms_cb) > { > - return dtm_intra_processing_init(dtms_cb->ip_addr, > dtms_cb->i_addr_family); > + return dtm_intra_processing_init(dtms_cb->ip_addr, > dtms_cb->i_addr_family, dtms_cb->sock_snd_rcv_buf_size); > } > > -#define DTM_INTRANODE_SOCK_SIZE 64000 > > /** > * Function to init the intranode processing > @@ -92,10 +90,10 @@ uint32_t dtm_service_discovery_init(DTM_ > * @return NCSCC_RC_FAILURE > * > */ > -uint32_t dtm_intra_processing_init(char *node_ip, DTM_IP_ADDR_TYPE > i_addr_family) > +uint32_t dtm_intra_processing_init(char *node_ip, DTM_IP_ADDR_TYPE > i_addr_family, int32_t sock_snd_rcv_buf_size) > { > > - int servlen, size = DTM_INTRANODE_SOCK_SIZE; /* For socket fd and > server len */ > + int servlen, size = sock_snd_rcv_buf_size; /* For socket fd and > server len */ > struct sockaddr_un serv_addr; /* For Unix Sock address */ > char server_ux_name[255]; > NCS_PATRICIA_PARAMS pat_tree_params; > @@ -112,6 +110,7 @@ uint32_t dtm_intra_processing_init(char > return NCSCC_RC_FAILURE; > } > dtm_intranode_cb->sock_domain = dtm_socket_domain; > + dtm_intranode_cb->sock_snd_rcv_buf_size = sock_snd_rcv_buf_size; > > /* Open a socket, If socket opens to fail return Error */ > dtm_intranode_cb->server_sockfd = socket(dtm_socket_domain, > SOCK_STREAM, 0); > @@ -894,7 +893,7 @@ static uint32_t dtm_intranode_process_in > { > int flags; > /* Accept processing */ > - int accept_fd = 0, retry_count = 0, size = DTM_INTRANODE_SOCK_SIZE; > + int accept_fd = 0, retry_count = 0, size = > dtm_intranode_cb->sock_snd_rcv_buf_size; > socklen_t len = sizeof(struct sockaddr_un); > struct sockaddr_un cli_addr; > /* Accept should be non_block */ > diff --git a/osaf/services/infrastructure/dtms/dtm/dtm_node_sockets.c > b/osaf/services/infrastructure/dtms/dtm/dtm_node_sockets.c > --- a/osaf/services/infrastructure/dtms/dtm/dtm_node_sockets.c > +++ b/osaf/services/infrastructure/dtms/dtm/dtm_node_sockets.c > @@ -26,7 +26,6 @@ > > #define MYPORT "6900" > #define MAXBUFLEN 100 > -#define DTM_INTERNODE_SOCK_SIZE 64000 > > struct addrinfo *mcast_sender_addr; /* Holder for mcast_sender_addr address > */ > > @@ -431,7 +430,7 @@ uint32_t dtm_comm_socket_send(int sock_d > int rtn = 0; > int err = 0; > int rc = NCSCC_RC_SUCCESS; > - rtn = send(sock_desc, (raw_type *) buffer, buffer_len, 0); > + rtn = send(sock_desc, (raw_type *) buffer, buffer_len, MSG_NOSIGNAL); > err = errno; > if (rtn < 0) { > if (!IS_BLOCKIN_ERROR(err)) { > @@ -508,7 +507,7 @@ static char *comm_get_foreign_address(in > int comm_socket_setup_new(DTM_INTERNODE_CB * dtms_cb, const char > *foreign_address, in_port_t foreign_port, > DTM_IP_ADDR_TYPE ip_addr_type) > { > - int sock_desc = -1, size = DTM_INTERNODE_SOCK_SIZE; > + int sock_desc = -1, size = dtms_cb->sock_snd_rcv_buf_size; > int err = 0, rv; > char local_port_str[INET6_ADDRSTRLEN]; > struct addrinfo *addr_list; > @@ -578,12 +577,12 @@ int comm_socket_setup_new(DTM_INTERNODE_ > goto done; > } > > - int flag = 1; > - if (setsockopt(sock_desc, IPPROTO_TCP, TCP_NODELAY, (void *)&flag, > sizeof(flag)) != 0) { > - LOG_ER("DTM:Socket TCP_NODELAY set failed err :%s", > strerror(errno)); > - dtm_comm_socket_close(&sock_desc); > - goto done; > - } > + int flag = dtms_cb->tcp_nodelay_flag; > + if (setsockopt(sock_desc, IPPROTO_TCP, TCP_NODELAY, (void *)&flag, > sizeof(flag)) != 0) { > + LOG_ER("DTM:Socket TCP_NODELAY set failed err :%s", > strerror(errno)); > + dtm_comm_socket_close(&sock_desc); > + goto done; > + } > > if (NCSCC_RC_SUCCESS != set_keepalive(dtms_cb, sock_desc)) { > LOG_ER("DTM :set_keepalive failed "); > @@ -660,7 +659,7 @@ uint32_t dtm_stream_nonblocking_listener > struct addrinfo addr_criteria; /* Criteria for address match */ > char local_port_str[6]; > struct addrinfo *addr_list = NULL, *p;; /* List of serv addresses */ > - int size = DTM_INTERNODE_SOCK_SIZE; > + int size = dtms_cb->sock_snd_rcv_buf_size; > int rv; > char ip_addr_eth[INET6_ADDRSTRLEN + IFNAMSIZ]; > dtms_cb->stream_sock = -1; > @@ -728,11 +727,11 @@ uint32_t dtm_stream_nonblocking_listener > LOG_ER("DTM:Socket snd buf size set failed err :%s", > strerror(errno)); > } > > - int flag = 1; > - if (setsockopt(dtms_cb->stream_sock, IPPROTO_TCP, TCP_NODELAY, (void > *)&flag, sizeof(flag)) != 0) { > - LOG_ER("DTM:Socket TCP_NODELAY set failed err :%s", > strerror(errno)); > - dtm_sockdesc_close(dtms_cb->stream_sock); > - return NCSCC_RC_FAILURE; > + int flag = dtms_cb->tcp_nodelay_flag; > + if (setsockopt(dtms_cb->stream_sock, IPPROTO_TCP, TCP_NODELAY, (void > *)&flag, sizeof(flag)) != 0) { > + LOG_ER("DTM:Socket TCP_NODELAY set failed err :%s", > strerror(errno)); > + dtm_sockdesc_close(dtms_cb->stream_sock); > + return NCSCC_RC_FAILURE; > } > > if (set_keepalive(dtms_cb, dtms_cb->stream_sock) != NCSCC_RC_SUCCESS) { > @@ -1249,7 +1248,6 @@ int dtm_process_connect(DTM_INTERNODE_CB > > } > > -#define DTM_INTERNODE_SOCK_SIZE 64000 > > /** > * Function for dtm accept the connection > @@ -1270,7 +1268,7 @@ int dtm_process_accept(DTM_INTERNODE_CB > int err = 0; > DTM_NODE_DB node; > DTM_NODE_DB *new_node; > - int new_conn_sd, size = DTM_INTERNODE_SOCK_SIZE; > + int new_conn_sd, size = dtms_cb->sock_snd_rcv_buf_size; > const struct sockaddr *clnt_addr1 = (struct sockaddr *)&clnt_addr; > TRACE_ENTER(); > > @@ -1298,12 +1296,12 @@ int dtm_process_accept(DTM_INTERNODE_CB > goto done; > } > > - int flag = 1; > - if (setsockopt(new_conn_sd, IPPROTO_TCP, TCP_NODELAY, (void *)&flag, > sizeof(flag)) != 0) { > - LOG_ER("DTM:Socket TCP_NODELAY set failed err :%s", > strerror(errno)); > - dtm_comm_socket_close(&new_conn_sd); > - goto done; > - } > + int flag = dtms_cb->tcp_nodelay_flag; > + if (setsockopt(new_conn_sd, IPPROTO_TCP, TCP_NODELAY, (void *)&flag, > sizeof(flag)) != 0) { > + LOG_ER("DTM:Socket TCP_NODELAY set failed err :%s", > strerror(errno)); > + dtm_comm_socket_close(&new_conn_sd); > + goto done; > + } > > if (NCSCC_RC_SUCCESS != set_keepalive(dtms_cb, new_conn_sd)) { > LOG_ER("DTM:set_keepalive failed "); > diff --git a/osaf/services/infrastructure/dtms/dtm/dtm_read_config.c > b/osaf/services/infrastructure/dtms/dtm/dtm_read_config.c > --- a/osaf/services/infrastructure/dtms/dtm/dtm_read_config.c > +++ b/osaf/services/infrastructure/dtms/dtm/dtm_read_config.c > @@ -94,6 +94,10 @@ void dtm_print_config(DTM_INTERNODE_CB * > TRACE(" %d", config->initial_dis_timeout); > TRACE(" DTM_BCAST_FRE_MSECS: "); > TRACE(" %d", config->bcast_msg_freq); > + TRACE(" DTM_SOCK_SND_RCV_BUF_SIZE: "); > + TRACE(" %d", config->sock_snd_rcv_buf_size); > + TRACE(" DTM_TCP_NODELAY_FLAG: "); > + TRACE(" %d", config->tcp_nodelay_flag); > TRACE("DTM : "); > } > > @@ -220,6 +224,8 @@ int dtm_read_config(DTM_INTERNODE_CB * c > config->i_addr_family = DTM_IP_ADDR_TYPE_IPV4; > config->bcast_msg_freq = BCAST_FRE; > config->initial_dis_timeout = DIS_TIME_OUT; > + config->sock_snd_rcv_buf_size = DTM_SOCK_SND_RCV_BUF_SIZE; > + config->tcp_nodelay_flag = true; > config->mcast_flag = false; > config->scope_link = false; > config->node_id = m_NCS_GET_NODE_ID; > @@ -424,6 +430,30 @@ int dtm_read_config(DTM_INTERNODE_CB * c > tag_len = 0; > > } > + if (strncmp(line, "DTM_SOCK_SND_RCV_BUF_SIZE=", > strlen("DTM_SOCK_SND_RCV_BUF_SIZE=")) == 0) { > + tag_len = strlen("DTM_SOCK_SND_RCV_BUF_SIZE="); > + config->sock_snd_rcv_buf_size = > atoi(&line[tag_len]); > + if (config->sock_snd_rcv_buf_size < 126976) { > + LOG_ER("DTM: DTM_SOCK_SND_RCV_BUF_SIZE > must be greater than > rmem_default/wmem_default sysctl of dtmd.conf"); > + return -1; > + } > + > + tag = 0; > + tag_len = 0; > + > + } > + > + if (strncmp(line, "DTM_TCP_NODELAY_FLAG=", > strlen("DTM_TCP_NODELAY_FLAG=")) == 0) { > + tag_len = strlen("DTM_TCP_NODELAY_FLAG="); > + config->tcp_nodelay_flag = atoi(&line[tag_len]); > + if (config->tcp_nodelay_flag < 0 || > config->tcp_nodelay_flag > 1) { > + LOG_ER("DTM: DTM_TCP_NODELAY_FLAG > needs to be 0 or 1 of dtmd.conf "); > + return -1; > + } > + tag = 0; > + tag_len = 0; > + > + } > } > > memset(line, 0, DTM_MAX_TAG_LEN); > diff --git a/osaf/services/infrastructure/dtms/include/dtm.h > b/osaf/services/infrastructure/dtms/include/dtm.h > --- a/osaf/services/infrastructure/dtms/include/dtm.h > +++ b/osaf/services/infrastructure/dtms/include/dtm.h > @@ -37,6 +37,8 @@ extern uint8_t initial_discovery_phase; > #define m_NODE_DISCOVERY_TASKNAME "NODE_DISCOVERY" > #define m_NODE_DISCOVERY_STACKSIZE NCS_STACKSIZE_HUGE > > +/* The default value of SO_RCVBUF & SO_SNDBUF , it is set by the > rmem_default/wmem_default */ > +#define DTM_SOCK_SND_RCV_BUF_SIZE 126976 > #define DTM_MAX_TAG_LEN 256 > > typedef enum { > diff --git a/osaf/services/infrastructure/dtms/include/dtm_cb.h > b/osaf/services/infrastructure/dtms/include/dtm_cb.h > --- a/osaf/services/infrastructure/dtms/include/dtm_cb.h > +++ b/osaf/services/infrastructure/dtms/include/dtm_cb.h > @@ -90,6 +90,8 @@ typedef struct dtm_internode_cb { > int comm_keepidle_time; > int comm_keepalive_intvl; > int comm_keepalive_probes; > + int32_t sock_snd_rcv_buf_size; /* The value of SO_RCVBUF & SO_SNDBUF */ > + uint32_t tcp_nodelay_flag; /* The value of TCP_NODELAY Flag */ > SYSF_MBX mbx; > int mbx_fd; > } DTM_INTERNODE_CB; > @@ -116,6 +118,7 @@ typedef struct dtm_intranode_cb { > SYSF_MBX mbx; > int mbx_fd; > int sock_domain; > + int32_t sock_snd_rcv_buf_size; /* The value of SO_RCVBUF & SO_SNDBUF */ > } DTM_INTRANODE_CB; > > extern DTM_INTRANODE_CB *dtm_intranode_cb; > diff --git a/osaf/services/infrastructure/dtms/include/dtm_intra_disc.h > b/osaf/services/infrastructure/dtms/include/dtm_intra_disc.h > --- a/osaf/services/infrastructure/dtms/include/dtm_intra_disc.h > +++ b/osaf/services/infrastructure/dtms/include/dtm_intra_disc.h > @@ -17,8 +17,6 @@ > #ifndef DTM_INTRA_DISC_H > #define DTM_INTRA_DISC_H > > -#define DTM_INTRANODE_MSG_SIZE 1400 > -#define DTM_INTERNODE_MSG_SIZE DTM_INTRANODE_MSG_SIZE > > /* 2 -len(0), 4 - iden(2), 1- ver(6), 1-msg type(7), 4- server_type (8), > 4 -server lower(12), 4 -server lower(16), 8 -ref(20), 4 > - nodeid(28), ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available. Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
