1 #include <stdio.h> // perror
2 #include <stdlib.h> // exit
3 #include <unistd.h> // sleep
6 #include "frescan_bwres.h"
7 #include "frescan_servers.h"
9 #define ERROR(s) {perror (s); exit (-1);}
17 frescan_init_params_t init_params;
18 frescan_ss_t ss1, ss2, ss3;
19 frescan_contract_t contract;
20 frescan_server_params_t server_params;
23 init_params.net = NETWORK;
24 init_params.node = LOCAL_NODE;
25 init_params.tx_fp_max_prio = 10;
26 init_params.rx_num_of_channels = 10;
27 init_params.rx_channel_max_prio = NULL;
29 printf("Initializing FRESCAN\n");
30 ret = frescan_init(&init_params);
31 if (ret != 0) ERROR ("could not init FRESCAN");
33 printf("Initializing BWRES\n");
34 ret = frescan_bwres_init(NETWORK);
35 if (ret != 0) ERROR ("could not init BWRES");
37 contract.min_values.budget = 5;
38 contract.min_values.period.tv_sec = 3;
39 contract.min_values.period.tv_nsec = 0;
42 printf("Negotiating a contract 1\n");
43 ret = frescan_bwres_negotiate(NETWORK, &contract, &ss1, &accepted);
44 if (ret != 0) ERROR ("could not negotiate succesfully");
47 printf("The contract was accepted, ss:%u\n", ss1);
48 ret = frescan_servers_get_data(NETWORK, &server_params, ss1);
49 if (ret != 0) ERROR ("could not get servers data");
51 printf("B:%u, T=(%u,%u), P:%u\n",
52 server_params.values.budget,
53 server_params.values.period.tv_sec,
54 server_params.values.period.tv_nsec,
57 printf("The contract was not accepted\n");
60 contract.min_values.budget = 6;
61 contract.min_values.period.tv_sec = 2;
62 contract.min_values.period.tv_nsec = 6;
65 printf("Negotiating a contract 2\n");
66 ret = frescan_bwres_negotiate(NETWORK, &contract, &ss2, &accepted);
67 if (ret != 0) ERROR ("could not negotiate");
70 printf("The contract was accepted, ss:%u\n", ss2);
71 ret = frescan_servers_get_data(NETWORK, &server_params, ss2);
72 if (ret != 0) ERROR ("could not get servers data");
74 printf("B:%u, T=(%u,%u), P:%u\n",
75 server_params.values.budget,
76 server_params.values.period.tv_sec,
77 server_params.values.period.tv_nsec,
80 printf("The contract was not accepted\n");
83 printf("cancelling contract for ss:%u\n", ss1);
84 ret = frescan_bwres_cancel(NETWORK, ss1);
85 if (ret != 0) ERROR ("could not cancel server");
87 contract.min_values.budget = 1;
88 contract.min_values.period.tv_sec = 6;
89 contract.min_values.period.tv_nsec = 666;
92 printf("Negotiating a contract 3\n");
93 ret = frescan_bwres_negotiate(NETWORK, &contract, &ss3, &accepted);
94 if (ret != 0) ERROR ("could not negotiate");
97 printf("The contract was accepted, ss:%u\n", ss3);
98 ret = frescan_servers_get_data(NETWORK, &server_params, ss3);
99 if (ret != 0) ERROR ("could not get servers data");
101 printf("B:%u, T=(%u,%u), P:%u\n",
102 server_params.values.budget,
103 server_params.values.period.tv_sec,
104 server_params.values.period.tv_nsec,
107 printf("The contract was not accepted\n");