- int groupidx = FIRSTGROUPID;\r
- parse(hosts)\r
- {\r
- str=_;\r
-\r
- if(*str<'0' || *str>'9')\r
- continue;\r
- \r
- //Does this IP share QoS class with some other ?\r
- substring=strstr(str,"sharing-");\r
- if(substring)\r
- { \r
- substring+=8; //"sharing-"\r
- parse_ip(str);\r
- ip_count++;\r
- ip->sharing=substring;\r
- ip->keyword=defaultkeyword; /* settings for default keyword */\r
- while(*substring && *substring!='\n')\r
- substring++;\r
- *substring=0; \r
- }\r
- else\r
- {\r
- //Do we have to create new QoS class for this IP ?\r
-\r
- find(keyword,keywords,(substring=strstr(str,keyword->key)))\r
- {\r
- parse_ip(str);\r
- ip_count++;\r
- ip->keyword=keyword;\r
- keyword->ip_count++;\r
- ip->prio=keyword->default_prio;\r
- substring+=strlen(keyword->key)+1;\r
- ptr=substring;\r
- while(*ptr && *ptr!='-')\r
- ptr++;\r
- if(*ptr=='-')\r
- {\r
- *ptr=0;\r
- ip->max=ip->desired=atoi(ptr+1);\r
- }\r
- ip->min=atoi(substring);\r
- if(ip->min<=0)\r
- {\r
- printf(" %s: Illegal value of minimum bandwidth 0 kbps, using %d kbps\n",str,free_min);\r
- ip->min=free_min;\r
- }\r
- if(ip->max<=ip->min)\r
- {\r
- ip->fixedprio=1;\r
- ip->max=ip->min+ip->keyword->reserve_min;\r
- }\r
- else \r
- {\r
- ip->max-=ip->keyword->reserve_max;\r
-\r
-/*\r
- if(ip->keyword->divide_max>1)\r
- ip->max=ip->min+(ip->max-ip->min)/ip->keyword->divide_max;\r
- if(ip->keyword->htb_ceil_bonus_divide>0)\r
- ip->max+=ip->max/ip->keyword->htb_ceil_bonus_divide;\r
-*/\r
- if(ip->max<ip->min)\r
- ip->max=ip->min;\r
- }\r
- ip->mark=FIRSTIPCLASS+1+class_count++;\r
-\r
- find(group,groups,group->min==ip->min) \r
- { \r
- group->count++; \r
- group->desired+=ip->min;\r
- ip->group = group->id; \r
- }\r
- else\r
- {\r
- create(group,Group);\r
- group->min=ip->min;\r
- group->id = groupidx++;\r
- ip->group = group->id;\r
-\r
- if(group->min<8) group->min=8;\r
- /* Warning - this is maybe because of primitive tc namespace, can be fixed */\r
- /* it is because class IDs are derived from min. bandwidth. - xCh */\r
- //if(group->min>MAX_GUARANTED_KBPS) group->min=MAX_GUARANTED_KBPS;\r
- \r
- group->count=1;\r
- group->desired=ip->min; \r
- insert(group,groups,desc_order_by,min);\r
- }\r
- }//endif keyword-\r
- }//endif sharing-\r
- }\r
- fail\r
- {\r
- perror(hosts);\r
- exit(-1);\r
- }\r
- done;\r