OpenWSN Firmware
rsvp.h
Go to the documentation of this file.
1 
13 #ifndef __RSVP_H
14 #define __RSVP_H
15 
16 #include "stdint.h"
17 #include "openwsn.h"
18 
19 #define RSVP_MAX_SCHED 10 //max cycles combinations that can be transported.
20 
21 enum{
29 };
30 
31 //general header of any rsvp message
32 typedef struct{
33  uint8_t version_flags;//4 high bit version, 4 low flags
34  uint8_t msg_type;
35  uint16_t checksum;
36  uint8_t sendTTL;
37  uint8_t reserved;
38  uint16_t length;
40 
41 //header of any of the rsvp objects
42 typedef struct{
43  uint16_t length;
44  uint8_t class_num;
45  uint8_t c_type;
47 
48 /* identifies a rsvp session- each session describes a path between two nodes.*/
49 typedef struct{
51  open_addr_t ip_dest_address; //dest address
52  uint8_t dest_port; //dest port
53  uint8_t protocol_id; //protocol id
54  uint8_t flags; //
56  uint8_t tunnel_id;
58 
59 /*This object contains the value for the refresh period R used by the creator of the message. This information
60 required in every Path and Resv message.*/
61 
62 typedef struct{
64  uint16_t rsvp_time_values;
66 
67 /* This object defines the reservation style plus style-specific information that is in FLOWSPEC or FILTER_SPEC
68 object and it is required in every Resv message. The RSVP defines four reservation styles, but only three styles, WF, FF,
69 and SE are defined for signaling purpose.
70  *
71  */
72 typedef struct{
74  uint8_t rsvp_style_t;
76 /*
77  * Since two objects, Filter Specification and Sender Template, contain similar parameters we models these object as
78 one Sender Object.. This object presents a subset of session data packets that should receive the desired QoS
79 (specified by a FLOWSPEC object), in a Resv message and contains a sender IP address.
80  *
81  */
82 typedef struct {
84  open_addr_t source_ip_address;//address of the sender.
85  uint8_t source_port; //dest port
86  uint8_t lsp_id; //id of the LSP
87  uint8_t sender_object_id;//id of this object;
89 /* Next or previous hop object -- depending if the msg is upstream or downstream*/
90 typedef struct{
93  uint8_t local_interface_handle; //handle to the use slot LIH_value in the std.
94 }rsvp_hop_t;
95 
96 
97 typedef struct{
99  uint8_t lsp_enc_type;//TDM
100  uint8_t lsp_sw_type; //switching type
102 
103 
104 typedef struct{
105  uint8_t num_cycles;
108 
109 typedef struct{
112 
113 typedef struct{
115  uint8_t level;
116  uint8_t ordering;
117  uint16_t freq_blacklist;//bitmap
118  uint8_t freq_offset;
121 
122 
123 typedef struct{
124  uint8_t offset;
125  uint8_t mode;
127 
128 typedef struct{
130  uint8_t total_demand;
131  uint8_t demand;
134 
135 
136 //reservation request message. Includes QoS requirements. Some required objects are omitted by now.
137 typedef struct{
146 
147 //downstream message including the label information. Some required objects are omitted by now.
148 typedef struct{
157 
158 
159 
160 void rsvp_init(void);
161 void rsvp_qos_request(uint8_t bandwith, uint16_t refresh_period,open_addr_t dest);
162 
163 #endif
164 
rsvp_sender_template_t sender_template
Definition: rsvp.h:154
rsvp_label_object_t label
Definition: rsvp.h:155
uint16_t checksum
Definition: rsvp.h:35
uint8_t level
Definition: rsvp.h:115
#define RSVP_MAX_SCHED
RSVP headers and message structures.
Definition: rsvp.h:19
uint8_t sender_object_id
Definition: rsvp.h:87
uint8_t local_interface_handle
Definition: rsvp.h:93
rsvp_object_header_t header
Definition: rsvp.h:83
uint8_t source_port
Definition: rsvp.h:85
Definition: rsvp.h:24
uint8_t lsp_id
Definition: rsvp.h:86
rsvp_object_header_t header
Definition: rsvp.h:73
rsvp_trans_cycle_table_t cycle_table
Definition: rsvp.h:119
rsvp_session_t session
Definition: rsvp.h:139
open_addr_t ip_dest_address
Definition: rsvp.h:51
Definition: rsvp.h:27
Definition: rsvp.h:148
uint8_t rsvp_style_t
Definition: rsvp.h:74
Definition: rsvp.h:62
uint16_t freq_blacklist
Definition: rsvp.h:117
uint8_t num_cycles
Definition: rsvp.h:105
rsvp_time_values_t time_values
Definition: rsvp.h:141
uint8_t reserved
Definition: rsvp.h:37
Definition: rsvp.h:97
uint8_t demand
Definition: rsvp.h:131
rsvp_msg_header_t header
Definition: rsvp.h:149
Definition: rsvp.h:128
open_addr_t source_ip_address
Definition: rsvp.h:84
uint8_t total_demand
Definition: rsvp.h:130
Definition: rsvp.h:90
rsvp_object_header_t header
Definition: rsvp.h:50
rsvp_sender_llnspec_t sender_llnspec
Definition: rsvp.h:144
rsvp_session_t session
Definition: rsvp.h:150
Definition: rsvp.h:23
rsvp_object_header_t header
Definition: rsvp.h:114
bool isLSP_tunnel_session
Definition: rsvp.h:55
uint8_t sendTTL
Definition: rsvp.h:36
uint16_t rsvp_time_values
Definition: rsvp.h:64
uint8_t mode
Definition: rsvp.h:125
open_addr_t address
Definition: rsvp.h:92
uint8_t flags
Definition: rsvp.h:54
rsvp_object_header_t header
Definition: rsvp.h:63
Definition: rsvp.h:25
Definition: rsvp.h:72
uint16_t length
Definition: rsvp.h:38
Definition: rsvp.h:137
uint8_t tunnel_id
Definition: rsvp.h:56
rsvp_label_request_t label_request
Definition: rsvp.h:142
Definition: rsvp.h:42
void rsvp_init()
Definition: rsvp.c:22
uint8_t offset
Definition: rsvp.h:124
Definition: rsvp.h:32
uint8_t protocol_id
Definition: rsvp.h:53
rsvp_time_values_t time_values
Definition: rsvp.h:152
uint16_t length
Definition: rsvp.h:43
Definition: rsvp.h:109
Definition: rsvp.h:26
rsvp_hop_t hop
Definition: rsvp.h:140
uint8_t class_num
Definition: rsvp.h:44
Definition: rsvp.h:123
void rsvp_qos_request(uint8_t bandwith, uint16_t refresh_period, open_addr_t dest)
Definition: rsvp.c:33
Definition: openwsn.h:276
Definition: rsvp.h:82
uint8_t msg_type
Definition: rsvp.h:34
uint8_t ordering
Definition: rsvp.h:116
Definition: rsvp.h:22
uint8_t lsp_enc_type
Definition: rsvp.h:99
rsvp_style_t style
Definition: rsvp.h:153
Definition: rsvp.h:113
rsvp_enhanced_mode_tuple_t ehmode
Definition: rsvp.h:132
uint8_t lsp_sw_type
Definition: rsvp.h:100
rsvp_object_header_t header
Definition: rsvp.h:91
rsvp_object_header_t header
Definition: rsvp.h:129
rsvp_object_header_t header
Definition: rsvp.h:98
uint8_t version_flags
Definition: rsvp.h:33
rsvp_hop_t hop
Definition: rsvp.h:151
Definition: rsvp.h:28
uint8_t dest_port
Definition: rsvp.h:52
rsvp_msg_header_t header
Definition: rsvp.h:138
uint8_t num_participants
Definition: rsvp.h:106
uint8_t c_type
Definition: rsvp.h:45
Definition: rsvp.h:104
rsvp_sender_template_t sender_template
Definition: rsvp.h:143
Definition: rsvp.h:49
uint8_t freq_offset
Definition: rsvp.h:118