void flowlet(struct Packet pkt) {
  pkt.new_hop   = hash6(pkt.src_port, pkt.dst_port,
                        pkt.src_addr, pkt.dst_addr,
                        pkt.protocol, pkt.arrival_time);
  pkt.last_time_idx = hash5(pkt.src_port, pkt.dst_port,
                            pkt.src_addr, pkt.dst_addr,
                            pkt.protocol) % NUM_FLOWLETS;
  pkt.saved_hop_idx = hash5(pkt.src_port, pkt.dst_port,
                            pkt.src_addr, pkt.dst_addr,
                            pkt.protocol) % NUM_FLOWLETS;
  if (pkt.arrival_time - last_time[pkt.last_time_idx] >
      FLOWLET_THRESHOLD) {
    saved_hop[pkt.saved_hop_idx] = pkt.new_hop;
  }
  last_time[pkt.last_time_idx] = pkt.arrival_time;
  pkt.next_hop = saved_hop[pkt.saved_hop_idx];
}
示例#2
0
BIGNUM
bloom_hash (bloom * bloom, char *str, int i, int length)
{
  BIGNUM ret = 0;

  ret = (BIGNUM) hash5 (str, seed[i], length) % (BIGNUM) bloom->stat.elements;

  return ret;
}
示例#3
0
int main()
{	int n,m,i,j,q,num,flag=0,falsecases=0;
	float probfalse;
	unsigned int x,y,z;
	scanf("%d",&m);
	n=14.43*m+1;
	for(i=0;i<m;i++)
	{	scanf("%d",&numarr[i]);
		x=murmurhash3_32(numarr[i],n);
		y=fnv1(numarr[i],n);
		z=jenkins_hash(numarr[i],n);
		bitarr[x]=1;
		bitarr[y]=1;
		bitarr[z]=1;
		bitarr[hash4(x,y,z)]=1;
		bitarr[hash5(x,y,z)]=1;
		bitarr[hash6(x,y,z)]=1;
		bitarr[hash7(x,y,z)]=1;
		bitarr[hash8(x,y,z)]=1;
		bitarr[hash9(x,y,z)]=1;
		bitarr[hash10(x,y,z)]=1;
	}
	//printf("Enter no. of queries: ");
	scanf("%d",&q);
	for(i=0;i<q;i++)
	{	//printf("Enter value to check: ");
		scanf("%d",&num);
		x=murmurhash3_32(num,n);
		y=fnv1(num,n);
		z=jenkins_hash(num,n);
		if(bitarr[x]==1 && bitarr[y]==1 && bitarr[z]==1 && bitarr[hash4(x,y,z)]==1 && bitarr[hash5(x,y,z)]==1 && bitarr[hash6(x,y,z)]==1 && bitarr[hash7(x,y,z)]==1 && bitarr[hash8(x,y,z)]==1 && bitarr[hash9(x,y,z)]==1 && bitarr[hash10(x,y,z)]==1)
			found++;
		else
			notfound++;	//printf("Element not in set\n");
	}
	printf("NUMBER OF FLASE OUTPUTS: %d\n",falsecases);
	probfalse=(falsecases*100)/q;
	printf("PROBABILITY OF FLASE OUTPUTS: %.2f %\n",probfalse);
	printf("No. actually there: %d\nNo. actually not there: %d\n",found,notfound);
	return 0;
}