Changeset 54 for trunk

Show
Ignore:
Timestamp:
09/10/07 15:27:27 (15 years ago)
Author:
andreu
Message:

add the comparaison with fields 7 and 11 (ports)

Location:
trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/dataFlowSet.c

    r52 r54  
    269269              if (pftmp->fieldType==7){ 
    270270                ipFirstCache.sPort = *((unsigned short*)&buffer2); 
     271                if ( (((RuleDefPtr)(*(myPtrs->rulesAddressPtr+pos)))->value->stor.svalue)  
     272                     == (*((unsigned short*)&buffer2)) 
     273                     ) 
     274                  { 
     275                    ((RuleDefPtr)(*(myPtrs->rulesAddressPtr+pos)))->check = 1; 
     276                  } 
    271277              } 
    272278              if (pftmp->fieldType==11){ 
    273279                ipFirstCache.dPort = *((unsigned short*)&buffer2); 
     280                if ( (((RuleDefPtr)(*(myPtrs->rulesAddressPtr+pos)))->value->stor.svalue)  
     281                     == (*((unsigned short*)&buffer2)) 
     282                     ) 
     283                  { 
     284                    ((RuleDefPtr)(*(myPtrs->rulesAddressPtr+pos)))->check = 1; 
     285                  } 
    274286              } 
    275287#endif 
     
    307319                  } 
    308320              } 
    309 #ifdef IPV4AGG 
    310               if ((pftmp->fieldType==8)){ 
    311                 bool = 1; /* very important, test if we have an IPv4 flow for Agg */ 
    312                 agCache.v4AdS = *((unsigned long*)&buffer4); 
    313               } 
    314               if ((pftmp->fieldType==12)){ 
    315                 agCache.v4AdD = *((unsigned long*)&buffer4); 
    316               } 
    317321              if (pftmp->fieldType==1){ 
    318322                agCache.bytes = *((unsigned long*)&buffer4); 
    319323                if ( 
    320                     ((unsigned long)((((RuleDefPtr)(*(myPtrs->rulesAddressPtr+pos)))->value->stor.svalue) + ( (((RuleDefPtr)(*(myPtrs->rulesAddressPtr+pos)))->value->stor.svalue)*10/100)) 
     324                    ((unsigned long)((((RuleDefPtr)(*(myPtrs->rulesAddressPtr+pos)))->value->stor.lvalue) + ( (((RuleDefPtr)(*(myPtrs->rulesAddressPtr+pos)))->value->stor.lvalue)*10/100)) 
    321325                     >= (*((unsigned long*)&buffer4))) 
    322326                    && 
    323                     ( (unsigned long)((((RuleDefPtr)(*(myPtrs->rulesAddressPtr+pos)))->value->stor.svalue) - ( (((RuleDefPtr)(*(myPtrs->rulesAddressPtr+pos)))->value->stor.svalue)*10/100)) 
     327                    ( (unsigned long)((((RuleDefPtr)(*(myPtrs->rulesAddressPtr+pos)))->value->stor.lvalue) - ( (((RuleDefPtr)(*(myPtrs->rulesAddressPtr+pos)))->value->stor.lvalue)*10/100)) 
    324328                      <= (*((unsigned long*)&buffer4)) ) 
    325329                    ) 
     
    327331                    ((RuleDefPtr)(*(myPtrs->rulesAddressPtr+pos)))->check = 1; 
    328332                  } 
     333              } 
     334#ifdef IPV4AGG 
     335              if ((pftmp->fieldType==8)){ 
     336                bool = 1; /* very important, test if we have an IPv4 flow for Agg */ 
     337                agCache.v4AdS = *((unsigned long*)&buffer4); 
     338              } 
     339              if ((pftmp->fieldType==12)){ 
     340                agCache.v4AdD = *((unsigned long*)&buffer4); 
     341              } 
     342              if (pftmp->fieldType==1){ 
     343                agCache.bytes = *((unsigned long*)&buffer4); 
    329344              } 
    330345              if (pftmp->fieldType==2){ 
  • trunk/src/rules_mgmt.c

    r53 r54  
    467467      tmp->fieldType = ft; 
    468468      tmp->value = NULL; 
    469       if ((ft==25)){ 
     469      if ((ft==25) || (ft==7) || (ft==11) ){ 
    470470          tmp->value = addValue(tmp->value, operatorToNumber, value); 
    471471      } else if ((ft==1)){ 
     
    651651    }    
    652652    tmp->valueLength = 4; 
    653     tmp->stor.lvalue = (unsigned short) atoi(value); 
     653    tmp->stor.lvalue = (unsigned long) atol(value); 
    654654    tmp->next = vPtr; 
    655655  } 
  • trunk/tool/renetcolGUI_0_0_7.py

    r50 r54  
    597597            coll_pbbox = gtk.HButtonBox() 
    598598            coll_hbox.pack_start(coll_pbbox, False, True, 5) 
    599             prefix_entry(45, "Required Format : \n <field> <operation> <address>\nlike 8 = 10.0.0.1 \nor 8 = 10.0.1.0/24 \nor 27 = 2001::1 \nor 27 = 2001::/64 (IPv6 address only on Linux system)\nonly '=' operator for the moment\n------------------------------\nIn this version 0.0.7, you can compare the following fields:\nROUTER_SRC_ADDR: 0\nIPV4_SRC_ADDR: 8\nIPV4_DST_ADDR: 12\nIPV4_NEXT_HOP: 15\nBGP_IPV4_NEXT_HOP: 18\nIPV6_SRC_ADDR: 27\nIPV6_DST_ADDR: 28\nIPV6_NEXT_HOP: 62\nBPG_IPV6_NEXT_HOP: 63\nIP_PROTOCOL_VERSION: 60\n---------------------------", coll_pbbox, "", 0) 
     599            prefix_entry(45, "Required Format : \n <field> <operation> <address>\nlike 8 = 10.0.0.1 \nor 8 = 10.0.1.0/24 \nor 27 = 2001::1 \nor 27 = 2001::/64 (IPv6 address only on Linux system)\nonly '=' operator for the moment\n------------------------------\nIn this version 0.0.7, you can compare the following fields:\nROUTER_SRC_ADDR: 0\nIN_BYTES: 1\nL4_SRC_PORT: 7\nIPV4_SRC_ADDR: 8\nL4_DST_PORT: 11\nIPV4_DST_ADDR: 12\nIPV4_NEXT_HOP: 15\nBGP_IPV4_NEXT_HOP: 18\nIPV6_SRC_ADDR: 27\nIPV6_DST_ADDR: 28\nIPV6_NEXT_HOP: 62\nBPG_IPV6_NEXT_HOP: 63\nIP_PROTOCOL_VERSION: 60\n---------------------------", coll_pbbox, "", 0) 
    600600            coll_frame2 = gtk.Frame("Disable rules") 
    601601            coll_vbox.pack_start(coll_frame2, False, False, 5) 
     
    760760                if (int(value) < 256): 
    761761                    is_good = 1 
     762                else: 
     763                    check_dialog( widget, None, "Wrong value, must be <256!") 
     764                    is_good = 0 
    762765            if (field=='1'): 
    763766                if (int(value) < 4294967295): 
    764767                    is_good = 1 
     768                else: 
     769                    check_dialog( widget, None, "Wrong value, must be <4294967295!") 
     770                    is_good = 0 
     771            if (field=='7' or field=='11'): 
     772                if (int(value) < 65536): 
     773                    is_good = 1 
     774                else: 
     775                    check_dialog( widget, None, "Wrong value, must be <65536!") 
     776                    is_good = 0 
    765777            if (is_good==1): 
    766778                ##collPrefix = adip & mask[1] 
     
    9971009    print "---------------------------------------------------------------" 
    9981010    print "In this version 0.0.7, you can apply rules on the collector based on the following fields:" 
     1011    print "L4_SRC_PORT: 7," 
    9991012    print "IPV4_SRC_ADDR: 8," 
     1013    print "L4_DST_PORT: 11," 
    10001014    print "IPV4_DST_ADDR: 12," 
    10011015    print "IPV4_NEXT_HOP: 15,"