]> jspc29.x-matter.uni-frankfurt.de Git - trbnettools.git/commitdiff
bug fix udp
authorLudwig Maier <lmaier@brett.e12.ph.tum.de>
Tue, 17 Sep 2013 20:04:05 +0000 (22:04 +0200)
committerLudwig Maier <lmaier@brett.e12.ph.tum.de>
Tue, 17 Sep 2013 20:04:05 +0000 (22:04 +0200)
libtrbnet/trbnet.c

index 1ee962801546fb8bd8e990f59e6444fc8733aadc..9faad35daa17441ceae2fdc279b967426e101b02 100644 (file)
@@ -35,7 +35,7 @@ static uint32_t tmpData[TMP_DATA_SIZE];
 #include <sys/ioctl.h>
 
 #define PCIBAR 0
-                                                 
+
 static uint32_t dataBuffer[DMA_BUFFER_NUM_PAGES * 1024];
 static unsigned int dataBufferSize = 0;  /* Size of dataBuffer in 32bit words */
 
@@ -490,22 +490,25 @@ static int sendTrbPackage(size_t size)
   int i;
   
   /* Adjust endianess ... */
-  for (i = 1; i < size; i++) {
-    udpBufferS[i] = htons(udpBufferS[i]);
+  for (i = 0; i < size; i++) {
+    udpBuffer[i] = htons(udpBuffer[i]);
   }
-  
+
+  if (trb3_udp_version == 2) {
+    size++;
+  }
+
   while (timeoutCtr < 3) {
     if (trb3_udp_version == 2) {
       /* Add udp_command_index */
       udp_command_index++;
       udpBufferS[0] = htons(0x0100 | udp_command_index);
-      size++;
     }
     if (trb_debug > 2) {
       fprintf(stderr, "Send UDP request attempt #%d\n", timeoutCtr);
       fprintf(stderr, "udp sent:\n");
       for (i = 0; i < size; i++) {
-        fprintf(stderr, "%d  0x%04x\n", i, udpBufferS[i]);
+        fprintf(stderr, "%d  0x%04x\n", i, ntohs(udpBufferS[i]));
       }  
     }
     
@@ -543,24 +546,25 @@ static int sendTrbPackage_nowait(size_t size)
   int status;
   int i;
   
+  /* Adjust endianess ... */
+  for (i = 0; i < size; i++) {
+    udpBuffer[i] = htons(udpBuffer[i]);
+  }
+
   if (trb3_udp_version == 2) {
     /* Add udp_command_index */
     udp_command_index++;
-    udpBufferS[0] = 0x0100 | udp_command_index;
+    udpBufferS[0] = htons(0x0100 | udp_command_index);
     size++;
   }
 
-  /* Adjust endianess ... */
-  for (i = 0; i < size; i++) {
-    if (trb_debug > 2) {
-      if (i == 0) {
-        fprintf(stderr, "udp sent:\n");
-      }
-      fprintf(stderr, "%d  0x%04x\n", i, udpBufferS[i]);
-    }
-    udpBufferS[i] = htons(udpBufferS[i]);
+  if (trb_debug > 2) {
+    fprintf(stderr, "udp sent:\n");
+    for (i = 0; i < size; i++) {
+      fprintf(stderr, "%d  0x%04x\n", i, ntohs(udpBufferS[i]));
+    }  
   }
-  
+
   /* Send request */
   status = sendto(trb3_sockfd,
                   (void*)udpBufferS,
@@ -3200,7 +3204,6 @@ int network_reset()
   if (trb_debug > 0) {
     fprintf(stderr, "Init_Transfer done.\n");
   }
-
   udpBuffer[0] = HEADER_HDR | 0x8030;
   udpBuffer[1] = sender_address;
   udpBuffer[2] = 0x0000;
@@ -3208,7 +3211,7 @@ int network_reset()
   udpBuffer[4] = CMD_NETADMINISTRATION;
   
   status = sendTrbPackage_nowait(5);
-    
+
   if (status < 0) {
     unlockPorts(0);
     return -1;