Просмотр исходного кода

Add support to group messaging to get flow control information.

(Logical change 1.55)


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@188 fd59a12c-fef9-0310-b244-a6a79926bd2f
Steven Dake 21 лет назад
Родитель
Сommit
2a263fdd00
1 измененных файлов с 22 добавлено и 5 удалено
  1. 22 5
      exec/gmi.c

+ 22 - 5
exec/gmi.c

@@ -88,20 +88,20 @@
 #define ENCRYPTION 1	 /* use encryption */
 
 #define LOCALHOST_IP				inet_addr("127.0.0.1")
-#define QUEUE_PEND_SIZE_MAX			50
+#define QUEUE_PEND_SIZE_MAX			51
 #define QUEUE_ASSEMBLY_SIZE_MAX		((MESSAGE_SIZE_MAX / 1472) + 1)
 #define QUEUE_RTR_ITEMS_SIZE_MAX	8192
-#define QUEUE_PEND_TRANS_SIZE_MAX	((MESSAGE_SIZE_MAX / 1472) + 1) * 500
+#define QUEUE_PEND_TRANS_SIZE_MAX	((MESSAGE_SIZE_MAX / 1472) + 1)
 #define MAXIOVS						8
 #define RTR_TOKEN_SIZE_MAX			32
 #define MISSING_MCAST_WINDOW		64
 #define TIMEOUT_STATE_GATHER		100
-#define TIMEOUT_TOKEN				200
-#define TIMEOUT_TOKEN_RETRANSMIT	100	
+#define TIMEOUT_TOKEN				1500
+#define TIMEOUT_TOKEN_RETRANSMIT	750	
 #define TIMEOUT_STATE_COMMIT		100
 #define MAX_MEMBERS					16
 #define HOLE_LIST_MAX				MISSING_MCAST_WINDOW
-#define PRIORITY_MAX				3
+#define PRIORITY_MAX				4
 
 /*
  * Authentication of messages
@@ -955,6 +955,23 @@ printf ("CALCULATED TOTAL is %d\n", calced_total);
 	return (0);
 }
 
+/*
+ * Determine if there is room to queue a message for transmission
+ */
+int gmi_send_ok (
+	int priority,
+	int msg_size)
+{
+	int avail;
+
+	queue_avail (&queues_pend_trans[priority], &avail);
+	if (avail <= (msg_size / FRAGMENT_SIZE)) {
+		return (0);
+	}
+	
+	return (1);
+}
+
 static int netif_determine (struct sockaddr_in *bindnet,
 	struct sockaddr_in *bound_to)
 {