ndn-lite
forwarder.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2018-2019 Xinyu Ma, Zhiyi Zhang
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v3.0. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
9 #ifndef FORWARDER_FORWARDER_H
10 #define FORWARDER_FORWARDER_H
11 
12 #include "face.h"
13 #include "callback-funcs.h"
14 #include "../util/msg-queue.h"
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
32 void
33 ndn_forwarder_init(void);
34 
39 void
41 
52 int
54 
66 int
68 
78 int
79 ndn_forwarder_add_route(ndn_face_intf_t* face, uint8_t* prefix, size_t length);
80 
90 int
91 ndn_forwarder_remove_route(ndn_face_intf_t* face, uint8_t* prefix, size_t length);
92 
101 int
102 ndn_forwarder_remove_all_routes(uint8_t* prefix, size_t length);
103 
107 int
108 ndn_forwarder_receive(ndn_face_intf_t* face, uint8_t* packet, size_t length);
109 
121 int
122 ndn_forwarder_register_prefix(uint8_t* prefix,
123  size_t length,
124  ndn_on_interest_func on_interest,
125  void* userdata);
126 
134 int
135 ndn_forwarder_unregister_prefix(uint8_t* prefix, size_t length);
136 
150 int
151 ndn_forwarder_express_interest(uint8_t* interest,
152  size_t length,
153  ndn_on_data_func on_data,
154  ndn_on_timeout_func on_timeout,
155  void* userdata);
156 
163 int
164 ndn_forwarder_put_data(uint8_t* data, size_t length);
165 
168 #ifdef __cplusplus
169 }
170 #endif
171 
172 #endif // FORWARDER_FORWARDER_H
void(* ndn_on_data_func)(const uint8_t *data, uint32_t data_size, void *userdata)
The onData callback function.
Definition: callback-funcs.h:34
int ndn_forwarder_receive(ndn_face_intf_t *face, uint8_t *packet, size_t length)
Receive a packet from a face.
Definition: forwarder.c:283
int ndn_forwarder_express_interest(uint8_t *interest, size_t length, ndn_on_data_func on_data, ndn_on_timeout_func on_timeout, void *userdata)
Express an interest.
Definition: forwarder.c:234
int ndn_forwarder_register_prefix(uint8_t *prefix, size_t length, ndn_on_interest_func on_interest, void *userdata)
Register a prefix.
Definition: forwarder.c:198
int ndn_forwarder_remove_all_routes(uint8_t *prefix, size_t length)
Remove all routes of a prefix from FIB.
Definition: forwarder.c:183
void ndn_forwarder_process(void)
Process event messages.
Definition: forwarder.c:108
int ndn_forwarder_unregister_prefix(uint8_t *prefix, size_t length)
Unregister a prefix.
Definition: forwarder.c:218
int ndn_forwarder_put_data(uint8_t *data, size_t length)
Produce a data packet.
Definition: forwarder.c:267
int ndn_forwarder_register_face(ndn_face_intf_t *face)
Register a new face.
Definition: forwarder.c:113
void(* ndn_on_timeout_func)(void *userdata)
The onTimeout callback function.
Definition: callback-funcs.h:40
int ndn_forwarder_remove_route(ndn_face_intf_t *face, uint8_t *prefix, size_t length)
Remove a route from FIB.
Definition: forwarder.c:162
int ndn_forwarder_unregister_face(ndn_face_intf_t *face)
Unregister a face.
Definition: forwarder.c:126
void ndn_forwarder_init(void)
Initialize all components of the forwarder.
Definition: forwarder.c:85
int(* ndn_on_interest_func)(const uint8_t *interest, uint32_t interest_size, void *userdata)
The onInterest callback function.
Definition: callback-funcs.h:24
Abstract NDN network face.
Definition: face.h:62
int ndn_forwarder_add_route(ndn_face_intf_t *face, uint8_t *prefix, size_t length)
Add a route into FIB.
Definition: forwarder.c:142