Changeset 16 for trunk/src/dataFlowSet.c

Show
Ignore:
Timestamp:
03/17/06 17:15:12 (17 years ago)
Author:
andreu
Message:

Friday save

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/dataFlowSet.c

    r15 r16  
    3434                 unsigned short *offV9, unsigned char *buf, short *cFNPtr, 
    3535                 short *cFId, DatagramPtr pcktPtr, RuleDefPtr *rulesCache, 
    36                  RulesPtr rlPtr, int myQueue) 
     36                 RulesPtr rlPtr, int myQueue, struct PrefixV4 *V4PTab,  
     37                 size_t nbPV4) 
    3738{ 
    3839  TplFlowSetPtr tmp; 
     
    5051  int overflow = 0; 
    5152  int noEnd = 1; 
    52   int i=0; 
    53   int j=0; 
     53  int i = 0; 
     54  int j = 0; 
    5455  int pos = 0; 
    5556  unsigned char buffer1;   
     
    6061  char *msgTextIndex; 
    6162  unsigned short tplMsgType = 11; 
     63  struct PrefixV4 prefixKey, *res; /* for bsearch */ 
     64  struct AggCache agCache; 
    6265 
    6366  buffer2[1] = *(buf+(*offV9));(*offV9)++; 
     
    118121                  == *((unsigned char*)&buffer1)) { 
    119122                ((RuleDefPtr)(*(rulesCache+pos)))->check = 1; 
    120               }  
     123              } 
     124              /* aggregation */ 
     125 
     126              /* end aggregation */ 
    121127              break; 
    122128            case 2: 
     
    126132                  == *((unsigned short*)&buffer2)) 
    127133                ((RuleDefPtr)(*(rulesCache+pos)))->check = 1; 
     134              /* aggregation */ 
     135 
     136              /* end aggregation */ 
    128137              break; 
    129138            case 4: 
     
    133142              buffer4[0]= *(buf+(*offV9)); (*offV9)++; 
    134143              /* FIXME : here , add a check on the field type */ 
    135               if ((((RuleDefPtr)(*(rulesCache+pos)))->value->stor.lvalue)  
    136                   == (*((unsigned long*)&buffer4))>>(32-((RuleDefPtr)(*(rulesCache+pos)))->value->mask)<<(32-((RuleDefPtr)(*(rulesCache+pos)))->value->mask) ) 
    137                 { 
    138                   ((RuleDefPtr)(*(rulesCache+pos)))->check = 1; 
    139                 } 
     144              if ((pftmp->fieldType==8)||(pftmp->fieldType==12)){ 
     145                if ((((RuleDefPtr)(*(rulesCache+pos)))->value->stor.lvalue)  
     146                    == (*((unsigned long*)&buffer4))>>(32-((RuleDefPtr)(*(rulesCache+pos)))->value->mask)<<(32-((RuleDefPtr)(*(rulesCache+pos)))->value->mask) ) 
     147                  { 
     148                    ((RuleDefPtr)(*(rulesCache+pos)))->check = 1; 
     149                  } 
     150                prefixKey.beginning = *((unsigned long*)&buffer4); 
     151                res = bsearch(&prefixKey, V4PTab, nbPV4,  
     152                              sizeof(struct PrefixV4), prefCmp); 
     153                if (res == NULL) 
     154                  fprintf(stderr,"!"); 
     155                else 
     156                  fprintf(stderr,"."); 
     157              }        
     158              /* aggregation */ 
     159 
     160              /* end aggregation */ 
    140161              break; 
    141162            case 16: 
     
    262283              } 
    263284              moreIsNecessary = 1; 
     285              /* aggregation */ 
     286               
     287              /* end aggregation */ 
    264288              break; 
    265289            default: 
     
    286310        case 1: 
    287311          buffer1 = *(buf+(*offV9)); (*offV9)++; 
     312          /* aggregation */ 
     313           
     314          /* end aggregation */ 
    288315          break; 
    289316        case 2: 
    290317          buffer2[1]= *(buf+(*offV9)); (*offV9)++; 
    291318          buffer2[0]= *(buf+(*offV9)); (*offV9)++; 
     319          /* aggregation */ 
     320           
     321          /* end aggregation */ 
    292322          break; 
    293323        case 4: 
     
    296326          buffer4[1]= *(buf+(*offV9)); (*offV9)++; 
    297327          buffer4[0]= *(buf+(*offV9)); (*offV9)++; 
     328          /* aggregation */ 
     329           
     330          /* end aggregation */ 
    298331          break; 
    299332        case 16: 
     
    304337            buffer2[0]= *(buf+(*offV9)); (*offV9)++; 
    305338          } 
     339          /* aggregation */ 
     340           
     341          /* end aggregation */ 
    306342          break; 
    307343        default: 
     
    316352         * end of one flow (not the flowset)  
    317353         */ 
     354        /* put aggregation cache information to tables */ 
     355 
     356        /* end put */ 
    318357        /*  
    319358         * Redirection if needed