ccnbuzz.c File Reference

Pre-reads stuff written by ccnsendchunks, produces no output. More...

Go to the source code of this file.

Functions

static void usage (const char *progname)
 Pre-reads stuff written by ccnsendchunks, produces no output This is meant to be run in parallel with ccncatchunks to experiment with the benefits of one kind of pipelining.
static void append_bloom_element (struct ccn_charbuf *templ, enum ccn_dtag dtag, struct ccn_bloom *b)
static void append_bf_all (struct ccn_charbuf *c)
static struct ccn_bloom * make_partition (unsigned i, int lg_n)
struct ccn_charbufmake_template (struct mydata *md, struct ccn_upcall_info *info, struct ccn_bloom *b)
static enum ccn_upcall_res incoming_content (struct ccn_closure *selfp, enum ccn_upcall_kind kind, struct ccn_upcall_info *info)
int main (int argc, char **argv)

Detailed Description

Pre-reads stuff written by ccnsendchunks, produces no output.

A CCNx command-line utility.

Copyright (C) 2008-2010 Palo Alto Research Center, Inc.

This work is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. This work is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Definition in file ccnbuzz.c.


Function Documentation

static void append_bf_all ( struct ccn_charbuf c  )  [static]

Definition at line 91 of file ccnbuzz.c.

Referenced by make_template().

static void append_bloom_element ( struct ccn_charbuf templ,
enum ccn_dtag  dtag,
struct ccn_bloom *  b 
) [static]

Definition at line 74 of file ccnbuzz.c.

Referenced by make_template().

static enum ccn_upcall_res incoming_content ( struct ccn_closure selfp,
enum ccn_upcall_kind  kind,
struct ccn_upcall_info info 
) [static]

Definition at line 214 of file ccnbuzz.c.

int main ( int  argc,
char **  argv 
)

Definition at line 272 of file ccnbuzz.c.

static struct ccn_bloom* make_partition ( unsigned  i,
int  lg_n 
) [static, read]

Definition at line 103 of file ccnbuzz.c.

Referenced by main().

struct ccn_charbuf* make_template ( struct mydata md,
struct ccn_upcall_info info,
struct ccn_bloom *  b 
) [read]

Definition at line 125 of file ccnbuzz.c.

Referenced by ask_more(), fill_holes(), incoming_content(), and main().

static void usage ( const char *  progname  )  [static]

Pre-reads stuff written by ccnsendchunks, produces no output This is meant to be run in parallel with ccncatchunks to experiment with the benefits of one kind of pipelining.

The idea is to use the Exclude Bloom filters to artificially divide the possible interests into several different classes. For example, you might use 8 bits per Bloom filter, and just one hash function, so the 8 different filters B0 = 01111111 B1 = 10111111 ... B8 = 11111110 will serve to partition the interests into 8 different classes and so at any given time and node there can be 8 different pending interests for the prefix. When a piece of content arrives at the endpoint, a new interest is issued that uses the same Bloom filter, but is restricted to content with a larger sequence number than the content that just arrived. The "real" consumer gets its content by explicitly using the sequence numbers in its requests; almost all of these will get fullfilled out of a nearby cache and so few of the actual interests will need to propagate out to the network. Note that this scheme does not need to be aware of the sequence numbering algorithm; it only relies on them to be increasing according to the canonical ordering.

Definition at line 58 of file ccnbuzz.c.

Generated on Fri May 13 16:27:09 2011 for Content-Centric Networking in C by  doxygen 1.6.3