Index: /trunk/AddOn/TAcq/mfacq.cc
===================================================================
--- /trunk/AddOn/TAcq/mfacq.cc	(revision 3758)
+++ /trunk/AddOn/TAcq/mfacq.cc	(revision 3759)
@@ -294,4 +294,5 @@
   cout <<"mfacq[2] Creating PCIEToEthernet  thread object " << endl;
   PCIEToEthernet pci2eth(vec_pciw, bpar.GetParams().GetEthTargets(), bpar.GetParams());
+  pci2eth.SetPrintLevel(1);
   //  usleep(200);  attente au cas ou ...
   pPcie2Eth=&pci2eth;
Index: /trunk/AddOn/TAcq/racqueth.cc
===================================================================
--- /trunk/AddOn/TAcq/racqueth.cc	(revision 3758)
+++ /trunk/AddOn/TAcq/racqueth.cc	(revision 3759)
@@ -59,4 +59,6 @@
   }
   totrdsnd_ = 0;
+  SetEthSendBlockSize();
+  SetPrintLevel();
 }
 
@@ -149,4 +151,7 @@
     // Byte* nextdma = locdata+((kmz%memgr.NbZones())*(paqsz*memgr.NbPaquets()));
   uint_4 npaqfaitg = 0; 
+  uint_4 prtmod = par_.BlocPerFile()*par_.MMgrNbPaquet();
+  if (prtmod < 500) prtmod=500;
+
   while (npaqfaitg < nmaxpaq_) {  // Boucle global G 
     if (fgarret) break;
@@ -171,5 +176,6 @@
     }
     if (fgbaddma) continue;  
-
+    if ((prtlev_>0)&&(npaqfaitg%prtmod==0)) 
+      cout << " PCIEToEthernet::run()/Info NPaqFait= " << npaqfaitg << endl;
     if (fgdirectsend) {  // Pas de copie / reduction de taille de paquet, on rebalance tel quel ...
       for (int fib=0; fib<(int) nbDma_ ;fib++) {
@@ -306,10 +312,24 @@
 size_t PCIEToEthernet::SendToTargets(int fib, Byte* data, size_t len)
 {
-  //DBG   cout << " SendToTargets/DBG" << cnt_prt << " len=" << len << " data=" << hex << (unsigned long)data << dec << endl; cnt_prt++; 
+  //  cout << " SendToTargets/DBG" << cnt_prt << " len=" << len << " data=" << hex << (unsigned long)data << dec << endl; cnt_prt++; 
   vector<ClientSocket>& vskt = vvec_skt_[fib];
   size_t rc=0;
-  for(size_t j=0; j<vskt.size(); j++) {
-    rc += vskt[j].Send((const char *)data, len);
-    totrdsnd_ += len;
+  size_t nblk = len/eths_bsz_;
+  size_t fblk = len%eths_bsz_;
+  size_t off = 0;
+  if (nblk>0) {
+    for(size_t i=0; i<nblk; i++) {
+      for(size_t j=0; j<vskt.size(); j++) {
+	rc += vskt[j].Send((const char *)data+off, eths_bsz_);
+	totrdsnd_ += eths_bsz_;
+      }
+      off += eths_bsz_;
+    }
+  }
+  if (fblk>0) {
+    for(size_t j=0; j<vskt.size(); j++) {
+      rc += vskt[j].Send((const char *)data+off, fblk);
+      totrdsnd_ += fblk;
+    }
   }
   return rc;
@@ -323,5 +343,4 @@
   :  memgr_(mem), par_(par), stop_(false), rdsamefc_(rdsamefc), tcpportid_(portid)
 {
-  SetPrintLevel();
   totnbytesrd_ = 0;
   totnpaqrd_ = 0;
@@ -359,4 +378,7 @@
     cout << " EthernetReader/Info connection/link" << fib << " established." << endl; 
   }
+
+  SetEthRecvBlockSize();
+  SetPrintLevel();
 }
 
@@ -476,5 +498,5 @@
   bool fggood=false;
   while(!fggood) { 
-    vsok_[fib].Receive((char *)vpaq_[fib].Begin(), packsize_);
+    ReceiveFromSocket(fib, (char *)vpaq_[fib].Begin(), packsize_);
     totnbytesrd_+=packsize_;
     totnpqrd_[fib]++;
@@ -483,4 +505,23 @@
   totnpqok_[fib]++;
   return false;
+}
+
+/* --Methode-- */
+size_t EthernetReader::ReceiveFromSocket(int fib, char* data, size_t len)
+{
+  size_t nblk = len/ethr_bsz_;
+  size_t fblk = len%ethr_bsz_;
+  size_t off = 0;
+  size_t rc =0;
+  if (nblk>0) {
+    for(size_t i=0; i<nblk; i++)  {
+      rc += vsok_[fib].Receive(data+off, ethr_bsz_);
+      off += ethr_bsz_;  
+    }
+  }
+  if (fblk>0) {
+    rc += vsok_[fib].Receive(data+off, fblk);
+  }
+  return rc;
 }
 
Index: /trunk/AddOn/TAcq/racqueth.h
===================================================================
--- /trunk/AddOn/TAcq/racqueth.h	(revision 3758)
+++ /trunk/AddOn/TAcq/racqueth.h	(revision 3759)
@@ -54,4 +54,8 @@
   inline void STOP() { stop_ = true; }	
 
+  inline size_t SetEthSendBlockSize(size_t bsz=1024)
+  { size_t rs=eths_bsz_;  eths_bsz_=bsz; return rs; }
+  inline int SetPrintLevel(int lev=0) { prtlev_=lev; return 0;}
+
 protected: 
   virtual size_t SendToTargets(int fib, Byte* data, size_t len);
@@ -71,5 +75,6 @@
   uint_4 nbDma_;
   uint_8 totrdsnd_;
-
+  size_t eths_bsz_;
+  int prtlev_;
 };
 
@@ -84,8 +89,13 @@
   inline void STOP() { stop_ = true; }	
 
+  inline size_t SetEthRecvBlockSize(size_t bsz=1024)
+  { size_t rs=ethr_bsz_;  ethr_bsz_=bsz; return rs; }
   inline int SetPrintLevel(int lev=0) { prtlev_=lev; return 0;}
+
 protected:
   bool ReadNextAllFibers();      // Renvoie true si probleme 
   bool ReadNext(int fib);   // Renvoie true si probleme 
+  size_t ReceiveFromSocket(int fib, char* data, size_t len);
+
   // Permet d'avancer d'un paquet dans la zone - renvoie true si probleme
   inline bool MoveToNextTarget()  {
@@ -125,4 +135,5 @@
   Byte* mmbufib_[MAXANAFIB];  // Pointeurs zone memoire de chaque fibre rendu par RAcqMemZoneMgr 
 
+  size_t ethr_bsz_;
   int prtlev_;
 };
