Hello, I am experimenting with the group "select" feature, for which I have modified "group_best_live_bucket()" function in "ofproto-dpif-xlate.c" to stochastically choose a bucket based on bucket weights (changes shown below). My understanding was that every time a packet arrives at the switch and matches the flow entry it is fowarded to the corresponding group (type=select in my case), which will result in a bucket being triggered. So, I was expecting "xlate_select_group()" function to be called for every packet (which invokes the "group_best_live_bucket()" function). However, I did not see the results I was expecting. Instead, a single bucket was being choosen continuously (when buckets should be choosen probabilitically, based on my changes). Then, I started to a log a message whenever this function was invoked. To my surprise, the logging revealed that this function is not being invoked for every packet. Is this the expected behavior? Am I missing something? Help/directions in this regard will be highly appreciated. Thank you! Note: I have modified "group_best_live_bucket()" function as follows (without logging): // for stochastic switchingstatic const struct ofputil_bucket *group_best_live_bucket(const struct xlate_ctx *ctx, const struct group_dpif *group, uint32_t basis){ const struct ofputil_bucket *best_bucket = NULL; uint32_t rand_num = 0, sum = 0; const struct ofputil_bucket *bucket; const struct list *buckets; // initialize random seed (once only) if (!is_srand_initialized) { srand(time(NULL)); is_srand_initialized = true; } // generate a number number in [1, 10] rand_num = (rand() % 10) + 1; group_dpif_get_buckets(group, &buckets); LIST_FOR_EACH (bucket, list_node, buckets) { sum += bucket->weight; if (rand_num <= sum) { return bucket; // return this bucket } } return best_bucket; // return NULL} FYI, my group table entry corresponds to the following ovs-ofctl command: ovs-ofctl -O OpenFlow13 add-group tcp:127.0.0.1:6641 group_id=0,type=select,bucket=weight=8,mod_dl_src=0A:00:14:01:00:05,mod_dl_dst=0A:00:14:FE:00:02,output=5,bucket=weight=2,mod_dl_src=0A:00:13:01:00:04,mod_dl_dst=0A:00:13:FE:00:02,output=4
_______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev