Changeset 3759 in Sophya for trunk/AddOn/TAcq/racqueth.cc
- Timestamp:
- Apr 30, 2010, 11:04:59 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/racqueth.cc
r3758 r3759 59 59 } 60 60 totrdsnd_ = 0; 61 SetEthSendBlockSize(); 62 SetPrintLevel(); 61 63 } 62 64 … … 149 151 // Byte* nextdma = locdata+((kmz%memgr.NbZones())*(paqsz*memgr.NbPaquets())); 150 152 uint_4 npaqfaitg = 0; 153 uint_4 prtmod = par_.BlocPerFile()*par_.MMgrNbPaquet(); 154 if (prtmod < 500) prtmod=500; 155 151 156 while (npaqfaitg < nmaxpaq_) { // Boucle global G 152 157 if (fgarret) break; … … 171 176 } 172 177 if (fgbaddma) continue; 173 178 if ((prtlev_>0)&&(npaqfaitg%prtmod==0)) 179 cout << " PCIEToEthernet::run()/Info NPaqFait= " << npaqfaitg << endl; 174 180 if (fgdirectsend) { // Pas de copie / reduction de taille de paquet, on rebalance tel quel ... 175 181 for (int fib=0; fib<(int) nbDma_ ;fib++) { … … 306 312 size_t PCIEToEthernet::SendToTargets(int fib, Byte* data, size_t len) 307 313 { 308 // DBGcout << " SendToTargets/DBG" << cnt_prt << " len=" << len << " data=" << hex << (unsigned long)data << dec << endl; cnt_prt++;314 // cout << " SendToTargets/DBG" << cnt_prt << " len=" << len << " data=" << hex << (unsigned long)data << dec << endl; cnt_prt++; 309 315 vector<ClientSocket>& vskt = vvec_skt_[fib]; 310 316 size_t rc=0; 311 for(size_t j=0; j<vskt.size(); j++) { 312 rc += vskt[j].Send((const char *)data, len); 313 totrdsnd_ += len; 317 size_t nblk = len/eths_bsz_; 318 size_t fblk = len%eths_bsz_; 319 size_t off = 0; 320 if (nblk>0) { 321 for(size_t i=0; i<nblk; i++) { 322 for(size_t j=0; j<vskt.size(); j++) { 323 rc += vskt[j].Send((const char *)data+off, eths_bsz_); 324 totrdsnd_ += eths_bsz_; 325 } 326 off += eths_bsz_; 327 } 328 } 329 if (fblk>0) { 330 for(size_t j=0; j<vskt.size(); j++) { 331 rc += vskt[j].Send((const char *)data+off, fblk); 332 totrdsnd_ += fblk; 333 } 314 334 } 315 335 return rc; … … 323 343 : memgr_(mem), par_(par), stop_(false), rdsamefc_(rdsamefc), tcpportid_(portid) 324 344 { 325 SetPrintLevel();326 345 totnbytesrd_ = 0; 327 346 totnpaqrd_ = 0; … … 359 378 cout << " EthernetReader/Info connection/link" << fib << " established." << endl; 360 379 } 380 381 SetEthRecvBlockSize(); 382 SetPrintLevel(); 361 383 } 362 384 … … 476 498 bool fggood=false; 477 499 while(!fggood) { 478 vsok_[fib].Receive((char *)vpaq_[fib].Begin(), packsize_);500 ReceiveFromSocket(fib, (char *)vpaq_[fib].Begin(), packsize_); 479 501 totnbytesrd_+=packsize_; 480 502 totnpqrd_[fib]++; … … 483 505 totnpqok_[fib]++; 484 506 return false; 507 } 508 509 /* --Methode-- */ 510 size_t EthernetReader::ReceiveFromSocket(int fib, char* data, size_t len) 511 { 512 size_t nblk = len/ethr_bsz_; 513 size_t fblk = len%ethr_bsz_; 514 size_t off = 0; 515 size_t rc =0; 516 if (nblk>0) { 517 for(size_t i=0; i<nblk; i++) { 518 rc += vsok_[fib].Receive(data+off, ethr_bsz_); 519 off += ethr_bsz_; 520 } 521 } 522 if (fblk>0) { 523 rc += vsok_[fib].Receive(data+off, fblk); 524 } 525 return rc; 485 526 } 486 527
Note:
See TracChangeset
for help on using the changeset viewer.