]> rtime.felk.cvut.cz Git - frescor/fna.git/commitdiff
use frsh_contract_t structure instead of the old frescan_contract_t structure.. we...
authorsangorrin <sangorrin@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Sun, 20 Jul 2008 12:07:31 +0000 (12:07 +0000)
committersangorrin <sangorrin@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Sun, 20 Jul 2008 12:07:31 +0000 (12:07 +0000)
git-svn-id: http://www.frescor.org/private/svn/frescor/fna/trunk@1305 35b4ef3e-fd22-0410-ab77-dab3279adceb

12 files changed:
tests/tests_frescan/test_frescan_bwres_cancel_in_master.c
tests/tests_frescan/test_frescan_bwres_cancel_in_slave.c
tests/tests_frescan/test_frescan_bwres_init.c
tests/tests_frescan/test_frescan_bwres_negotiate_in_master.c
tests/tests_frescan/test_frescan_bwres_negotiate_in_slave.c
tests/tests_frescan/test_frescan_bwres_renegotiate_in_master.c
tests/tests_frescan/test_frescan_bwres_renegotiate_in_slave.c
tests/tests_frescan/test_frescan_fp_send_basic.c
tests/tests_frescan/test_frescan_fp_send_receive_measures.c
tests/tests_frescan/test_frescan_queues.c
tests/tests_frescan/test_frescan_servers_send_basic.c
tests/tests_frescan/test_frescan_servers_send_receive_measures.c

index 5c6e803926094c4ca4c8cde44c8039ff39844bad..49548a0642c91ffc8ba8c9a30881f40e5726f5dc 100644 (file)
@@ -2,11 +2,13 @@
 #include <stdlib.h> // exit
 #include <unistd.h>   // sleep
 
+#include "frsh.h"
+
 #include "frescan.h"
 #include "frescan_bwres.h"
 #include "frescan_servers.h"
 
-#define ERROR(s) {perror (s); exit (-1);}
+#define PUT_ERROR(s) {perror (s); exit (-1);}
 
 #define NETWORK 0
 #define LOCAL_NODE 0
@@ -16,9 +18,10 @@ int main ()
         int ret;
         frescan_init_params_t init_params;
         frescan_ss_t ss1, ss2, ss3;
-        frescan_contract_t contract;
+        frsh_contract_t contract;
         bool accepted;
         frescan_server_params_t server_params;
+        frsh_rel_time_t budget_min, period_max;
 
         init_params.net = NETWORK;
         init_params.node = LOCAL_NODE;
@@ -28,76 +31,112 @@ int main ()
 
         printf("Initializing FRESCAN\n");
         ret = frescan_init(&init_params);
-        if (ret != 0) ERROR ("could not init FRESCAN");
+        if (ret != 0) PUT_ERROR ("could not init FRESCAN");
 
         printf("Initializing BWRES\n");
         ret = frescan_bwres_init(NETWORK);
-        if (ret != 0) ERROR ("could not init BWRES");
+        if (ret != 0) PUT_ERROR ("could not init BWRES");
+
+        ret = frsh_contract_init(&contract);
+        if (ret != 0) PUT_ERROR ("could not init contract");
+
+        budget_min.tv_sec = 5;
+        period_max = frsh_msec_to_rel_time(3333);
+
+        ret = frsh_contract_set_basic_params
+                        (&contract,
+                         &budget_min,
+                         &period_max,
+                         FRSH_WT_INDETERMINATE,
+                         FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
 
-        contract.min_values.budget = 5;
-        contract.min_values.period.tv_sec  = 3;
-        contract.min_values.period.tv_nsec = 69;
-        contract.prio = 7;
+#if !FRSH_AUTOMATIC_PRIO_ASSIGN_ENABLE
+        ret = frsh_contract_set_preemption_level(&contract, 7);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+#endif
 
         ret = frescan_bwres_negotiate(NETWORK, &contract, &ss1, &accepted);
-        if (ret != 0) ERROR ("could not negotiate");
+        if (ret != 0) PUT_ERROR ("could not negotiate");
 
         if (accepted) {
                 printf("The contract was accepted, ss:%u\n", ss1);
                 ret = frescan_servers_get_data(NETWORK, &server_params, ss1);
-                if (ret != 0) ERROR ("could not get servers data");
+                if (ret != 0) PUT_ERROR ("could not get servers data");
 
                 printf("B:%u, T=(%u,%u), P:%u\n",
-                       server_params.values.budget,
-                       server_params.values.period.tv_sec,
-                       server_params.values.period.tv_nsec,
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
                        server_params.prio);
         } else {
                 printf("The contract was not accepted\n");
         }
 
-        contract.min_values.budget = 6;
-        contract.min_values.period.tv_sec  = 2;
-        contract.min_values.period.tv_nsec = 6;
-        contract.prio = 4;
+        budget_min.tv_sec = 6;
+        period_max = frsh_msec_to_rel_time(2600);
+
+        ret = frsh_contract_set_basic_params
+                        (&contract,
+                          &budget_min,
+                          &period_max,
+                          FRSH_WT_INDETERMINATE,
+                          FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
+
+#if !FRSH_AUTOMATIC_PRIO_ASSIGN_ENABLE
+        ret = frsh_contract_set_preemption_level(&contract, 4);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+#endif
 
         ret = frescan_bwres_negotiate(NETWORK, &contract, &ss2, &accepted);
-        if (ret != 0) ERROR ("could not negotiate");
+        if (ret != 0) PUT_ERROR ("could not negotiate");
 
         if (accepted) {
                 printf("The contract was accepted, ss:%u\n", ss2);
                 ret = frescan_servers_get_data(NETWORK, &server_params, ss2);
-                if (ret != 0) ERROR ("could not get servers data");
+                if (ret != 0) PUT_ERROR ("could not get servers data");
 
                 printf("B:%u, T=(%u,%u), P:%u\n",
-                       server_params.values.budget,
-                       server_params.values.period.tv_sec,
-                       server_params.values.period.tv_nsec,
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
                        server_params.prio);
         } else {
                 printf("The contract was not accepted\n");
         }
 
         ret = frescan_bwres_cancel(NETWORK, ss1);
-        if (ret != 0) ERROR ("could not cancel server");
+        if (ret != 0) PUT_ERROR ("could not cancel server");
+
+        budget_min.tv_sec = 1;
+        period_max = frsh_msec_to_rel_time(6666);
+
+        ret = frsh_contract_set_basic_params
+                        (&contract,
+                         &budget_min,
+                         &period_max,
+                         FRSH_WT_INDETERMINATE,
+                         FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
 
-        contract.min_values.budget = 1;
-        contract.min_values.period.tv_sec  = 6;
-        contract.min_values.period.tv_nsec = 666;
-        contract.prio = 3;
+#if !FRSH_AUTOMATIC_PRIO_ASSIGN_ENABLE
+        ret = frsh_contract_set_preemption_level(&contract, 3);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+#endif
 
         ret = frescan_bwres_negotiate(NETWORK, &contract, &ss3, &accepted);
-        if (ret != 0) ERROR ("could not negotiate");
+        if (ret != 0) PUT_ERROR ("could not negotiate");
 
         if (accepted) {
                 printf("The contract was accepted, ss:%u\n", ss3);
                 ret = frescan_servers_get_data(NETWORK, &server_params, ss3);
-                if (ret != 0) ERROR ("could not get servers data");
+                if (ret != 0) PUT_ERROR ("could not get servers data");
 
                 printf("B:%u, T=(%u,%u), P:%u\n",
-                       server_params.values.budget,
-                       server_params.values.period.tv_sec,
-                       server_params.values.period.tv_nsec,
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
                        server_params.prio);
         } else {
                 printf("The contract was not accepted\n");
index 4b4c5e22cd0afbf604879b974e2f51f41c013732..b5ca3576d07769015acbbb499efc040807f53ed7 100644 (file)
@@ -2,11 +2,13 @@
 #include <stdlib.h> // exit
 #include <unistd.h>   // sleep
 
+#include "frsh.h"
+
 #include "frescan.h"
 #include "frescan_bwres.h"
 #include "frescan_servers.h"
 
-#define ERROR(s) {perror (s); exit (-1);}
+#define PUT_ERROR(s) {perror (s); exit (-1);}
 
 #define NETWORK 0
 #define LOCAL_NODE 1
@@ -16,9 +18,10 @@ int main ()
         int ret;
         frescan_init_params_t init_params;
         frescan_ss_t ss1, ss2, ss3;
-        frescan_contract_t contract;
+        frsh_contract_t contract;
         frescan_server_params_t server_params;
         bool accepted;
+        frsh_rel_time_t budget_min, period_max;
 
         init_params.net = NETWORK;
         init_params.node = LOCAL_NODE;
@@ -28,53 +31,78 @@ int main ()
 
         printf("Initializing FRESCAN\n");
         ret = frescan_init(&init_params);
-        if (ret != 0) ERROR ("could not init FRESCAN");
+        if (ret != 0) PUT_ERROR ("could not init FRESCAN");
 
         printf("Initializing BWRES\n");
         ret = frescan_bwres_init(NETWORK);
-        if (ret != 0) ERROR ("could not init BWRES");
+        if (ret != 0) PUT_ERROR ("could not init BWRES");
+
+        ret = frsh_contract_init(&contract);
+        if (ret != 0) PUT_ERROR ("could not init contract");
+
+        budget_min.tv_sec = 5;
+        period_max = frsh_msec_to_rel_time(3000);
+
+        ret = frsh_contract_set_basic_params
+                        (&contract,
+                         &budget_min,
+                         &period_max,
+                         FRSH_WT_INDETERMINATE,
+                         FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
 
-        contract.min_values.budget = 5;
-        contract.min_values.period.tv_sec = 3;
-        contract.min_values.period.tv_nsec = 0;
-        contract.prio = 5;
+#if !FRSH_AUTOMATIC_PRIO_ASSIGN_ENABLE
+        ret = frsh_contract_set_preemption_level(&contract, 5);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+#endif
 
         printf("Negotiating a contract 1\n");
         ret = frescan_bwres_negotiate(NETWORK, &contract, &ss1, &accepted);
-        if (ret != 0) ERROR ("could not negotiate succesfully");
+        if (ret != 0) PUT_ERROR ("could not negotiate succesfully");
 
         if (accepted) {
                 printf("The contract was accepted, ss:%u\n", ss1);
                 ret = frescan_servers_get_data(NETWORK, &server_params, ss1);
-                if (ret != 0) ERROR ("could not get servers data");
+                if (ret != 0) PUT_ERROR ("could not get servers data");
 
                 printf("B:%u, T=(%u,%u), P:%u\n",
-                       server_params.values.budget,
-                       server_params.values.period.tv_sec,
-                       server_params.values.period.tv_nsec,
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
                        server_params.prio);
         } else {
                 printf("The contract was not accepted\n");
         }
 
-        contract.min_values.budget = 6;
-        contract.min_values.period.tv_sec  = 2;
-        contract.min_values.period.tv_nsec = 6;
-        contract.prio = 4;
+        budget_min.tv_sec = 6;
+        period_max = frsh_msec_to_rel_time(2600);
+
+        ret = frsh_contract_set_basic_params
+                        (&contract,
+                          &budget_min,
+                          &period_max,
+                          FRSH_WT_INDETERMINATE,
+                          FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
+
+#if !FRSH_AUTOMATIC_PRIO_ASSIGN_ENABLE
+        ret = frsh_contract_set_preemption_level(&contract, 4);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+#endif
 
         printf("Negotiating a contract 2\n");
         ret = frescan_bwres_negotiate(NETWORK, &contract, &ss2, &accepted);
-        if (ret != 0) ERROR ("could not negotiate");
+        if (ret != 0) PUT_ERROR ("could not negotiate");
 
         if (accepted) {
                 printf("The contract was accepted, ss:%u\n", ss2);
                 ret = frescan_servers_get_data(NETWORK, &server_params, ss2);
-                if (ret != 0) ERROR ("could not get servers data");
+                if (ret != 0) PUT_ERROR ("could not get servers data");
 
                 printf("B:%u, T=(%u,%u), P:%u\n",
-                       server_params.values.budget,
-                       server_params.values.period.tv_sec,
-                       server_params.values.period.tv_nsec,
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
                        server_params.prio);
         } else {
                 printf("The contract was not accepted\n");
@@ -82,26 +110,37 @@ int main ()
 
         printf("cancelling contract for ss:%u\n", ss1);
         ret = frescan_bwres_cancel(NETWORK, ss1);
-        if (ret != 0) ERROR ("could not cancel server");
+        if (ret != 0) PUT_ERROR ("could not cancel server");
+
+        budget_min.tv_sec = 1;
+        period_max = frsh_msec_to_rel_time(6666);
+
+        ret = frsh_contract_set_basic_params
+                        (&contract,
+                          &budget_min,
+                          &period_max,
+                          FRSH_WT_INDETERMINATE,
+                          FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
 
-        contract.min_values.budget = 1;
-        contract.min_values.period.tv_sec  = 6;
-        contract.min_values.period.tv_nsec = 666;
-        contract.prio = 3;
+#if !FRSH_AUTOMATIC_PRIO_ASSIGN_ENABLE
+        ret = frsh_contract_set_preemption_level(&contract, 3);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+#endif
 
         printf("Negotiating a contract 3\n");
         ret = frescan_bwres_negotiate(NETWORK, &contract, &ss3, &accepted);
-        if (ret != 0) ERROR ("could not negotiate");
+        if (ret != 0) PUT_ERROR ("could not negotiate");
 
         if (accepted) {
                 printf("The contract was accepted, ss:%u\n", ss3);
                 ret = frescan_servers_get_data(NETWORK, &server_params, ss3);
-                if (ret != 0) ERROR ("could not get servers data");
+                if (ret != 0) PUT_ERROR ("could not get servers data");
 
                 printf("B:%u, T=(%u,%u), P:%u\n",
-                       server_params.values.budget,
-                       server_params.values.period.tv_sec,
-                       server_params.values.period.tv_nsec,
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
                        server_params.prio);
         } else {
                 printf("The contract was not accepted\n");
index 19b1127b5e82e05f10b3d3b724b7b3f7b757510f..8f60f1b7d647c8764940eb8198aee14fd2c02bf7 100644 (file)
@@ -5,7 +5,7 @@
 #include "frescan.h"
 #include "frescan_bwres.h"
 
-#define ERROR(s) {perror (s); exit (-1);}
+#define PUT_ERROR(s) {perror (s); exit (-1);}
 
 #define NETWORK 0
 #define LOCAL_NODE 1
@@ -23,11 +23,11 @@ int main ()
 
         printf("Initializing FRESCAN\n");
         ret = frescan_init(&init_params);
-        if (ret != 0) ERROR ("could not init FRESCAN");
+        if (ret != 0) PUT_ERROR ("could not init FRESCAN");
 
         printf("Initializing BWRES\n");
         ret = frescan_bwres_init(NETWORK);
-        if (ret != 0) ERROR ("could not init BWRES");
+        if (ret != 0) PUT_ERROR ("could not init BWRES");
 
         while (1) {
                 sleep(1);
index 9bea770e98f9d623652abc28d2383fc26350c784..6eb54450709c44631e9da4b45239a6665220b010 100644 (file)
@@ -2,10 +2,13 @@
 #include <stdlib.h> // exit
 #include <unistd.h>   // sleep
 
+#include "frsh.h"
+
 #include "frescan.h"
 #include "frescan_bwres.h"
+#include "frescan_servers.h"
 
-#define ERROR(s) {perror (s); exit (-1);}
+#define PUT_ERROR(s) {perror (s); exit (-1);}
 
 #define NETWORK 0
 #define LOCAL_NODE 0
@@ -15,9 +18,10 @@ int main ()
         int ret;
         frescan_init_params_t init_params;
         frescan_ss_t ss;
-        frescan_contract_t contract;
+        frsh_contract_t contract;
         bool accepted;
         frescan_server_params_t server_params;
+        frsh_rel_time_t budget_min, period_max;
 
         init_params.net = NETWORK;
         init_params.node = LOCAL_NODE;
@@ -27,29 +31,43 @@ int main ()
 
         printf("Initializing FRESCAN\n");
         ret = frescan_init(&init_params);
-        if (ret != 0) ERROR ("could not init FRESCAN");
+        if (ret != 0) PUT_ERROR ("could not init FRESCAN");
 
         printf("Initializing BWRES\n");
         ret = frescan_bwres_init(NETWORK);
-        if (ret != 0) ERROR ("could not init BWRES");
+        if (ret != 0) PUT_ERROR ("could not init BWRES");
+
+        ret = frsh_contract_init(&contract);
+        if (ret != 0) PUT_ERROR ("could not init contract");
+
+        budget_min.tv_sec = 5;
+        period_max = frsh_msec_to_rel_time(3369);
+
+        ret = frsh_contract_set_basic_params
+                        (&contract,
+                         &budget_min,
+                         &period_max,
+                         FRSH_WT_INDETERMINATE,
+                         FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
 
-        contract.min_values.budget = 5;
-        contract.min_values.period.tv_sec  = 3;
-        contract.min_values.period.tv_nsec = 69;
-        contract.prio = 7;
+#if !FRSH_AUTOMATIC_PRIO_ASSIGN_ENABLE
+        ret = frsh_contract_set_preemption_level(&contract, 7);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+#endif
 
         ret = frescan_bwres_negotiate(NETWORK, &contract, &ss, &accepted);
-        if (ret != 0) ERROR ("could not negotiate");
+        if (ret != 0) PUT_ERROR ("could not negotiate");
 
         if (accepted) {
                 printf("The contract was accepted, ss:%u\n", ss);
                 ret = frescan_servers_get_data(NETWORK, &server_params, ss);
-                if (ret != 0) ERROR ("could not get servers data");
+                if (ret != 0) PUT_ERROR ("could not get servers data");
 
                 printf("B:%u, T=(%u,%u), P:%u\n",
-                       server_params.values.budget,
-                       server_params.values.period.tv_sec,
-                       server_params.values.period.tv_nsec,
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
                        server_params.prio);
         } else {
                 printf("The contract was not accepted\n");
index 3a0191541459d2f4cd4d3dc98c5d032beabec141..f950f5c7fe597df35dcf8378add3cd3718a18465 100644 (file)
@@ -2,11 +2,13 @@
 #include <stdlib.h> // exit
 #include <unistd.h>   // sleep
 
+#include "frsh.h"
+
 #include "frescan.h"
 #include "frescan_bwres.h"
 #include "frescan_servers.h"
 
-#define ERROR(s) {perror (s); exit (-1);}
+#define PUT_ERROR(s) {perror (s); exit (-1);}
 
 #define NETWORK 0
 #define LOCAL_NODE 1
@@ -16,9 +18,10 @@ int main ()
         int ret;
         frescan_init_params_t init_params;
         frescan_ss_t ss;
-        frescan_contract_t contract;
+        frsh_contract_t contract;
         frescan_server_params_t server_params;
         bool accepted;
+        frsh_rel_time_t budget_min, period_max;
 
         init_params.net = NETWORK;
         init_params.node = LOCAL_NODE;
@@ -28,33 +31,44 @@ int main ()
 
         printf("Initializing FRESCAN\n");
         ret = frescan_init(&init_params);
-        if (ret != 0) ERROR ("could not init FRESCAN");
+        if (ret != 0) PUT_ERROR ("could not init FRESCAN");
 
         printf("Initializing BWRES\n");
         ret = frescan_bwres_init(NETWORK);
-        if (ret != 0) ERROR ("could not init BWRES");
+        if (ret != 0) PUT_ERROR ("could not init BWRES");
+
+        ret = frsh_contract_init(&contract);
+        if (ret != 0) PUT_ERROR ("could not init contract");
+
+        budget_min.tv_sec = 5;
+        period_max = frsh_msec_to_rel_time(3369);
+
+        ret = frsh_contract_set_basic_params
+                        (&contract,
+                         &budget_min,
+                         &period_max,
+                         FRSH_WT_INDETERMINATE,
+                         FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
 
-        contract.min_values.budget = 5;
-        contract.min_values.period.tv_sec = 3;
-        contract.min_values.period.tv_nsec = 0;
-        contract.max_values.budget = 7;
-        contract.max_values.period.tv_sec = 2;
-        contract.max_values.period.tv_nsec = 0;
-        contract.prio = 5;
+#if !FRSH_AUTOMATIC_PRIO_ASSIGN_ENABLE
+        ret = frsh_contract_set_preemption_level(&contract, 5);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+#endif
 
         printf("Negotiating a contract\n");
         ret = frescan_bwres_negotiate(NETWORK, &contract, &ss, &accepted);
-        if (ret != 0) ERROR ("could not negotiate succesfully");
+        if (ret != 0) PUT_ERROR ("could not negotiate succesfully");
 
         if (accepted) {
                 printf("The contract was accepted, ss:%u\n", ss);
                 ret = frescan_servers_get_data(NETWORK, &server_params, ss);
-                if (ret != 0) ERROR ("could not get servers data");
+                if (ret != 0) PUT_ERROR ("could not get servers data");
 
                 printf("B:%u, T=(%u,%u), P:%u\n",
-                       server_params.values.budget,
-                       server_params.values.period.tv_sec,
-                       server_params.values.period.tv_nsec,
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
                        server_params.prio);
         } else {
                 printf("The contract was not accepted\n");
index 98db77cdfd618e312b67dc72837e14b30ee27980..64ec5833a614af76bd1510edd8a54e94e1e0f1bd 100644 (file)
@@ -2,11 +2,13 @@
 #include <stdlib.h> // exit
 #include <unistd.h>   // sleep
 
+#include "frsh.h"
+
 #include "frescan.h"
 #include "frescan_bwres.h"
 #include "frescan_servers.h"
 
-#define ERROR(s) {perror (s); exit (-1);}
+#define PUT_ERROR(s) {perror (s); exit (-1);}
 
 #define NETWORK 0
 #define LOCAL_NODE 0
@@ -16,9 +18,10 @@ int main ()
         int ret;
         frescan_init_params_t init_params;
         frescan_ss_t ss;
-        frescan_contract_t contract;
+        frsh_contract_t contract;
         bool accepted;
         frescan_server_params_t server_params;
+        frsh_rel_time_t budget_min, period_max;
 
         init_params.net = NETWORK;
         init_params.node = LOCAL_NODE;
@@ -28,29 +31,43 @@ int main ()
 
         printf("Initializing FRESCAN\n");
         ret = frescan_init(&init_params);
-        if (ret != 0) ERROR ("could not init FRESCAN");
+        if (ret != 0) PUT_ERROR ("could not init FRESCAN");
 
         printf("Initializing BWRES\n");
         ret = frescan_bwres_init(NETWORK);
-        if (ret != 0) ERROR ("could not init BWRES");
+        if (ret != 0) PUT_ERROR ("could not init BWRES");
+
+        ret = frsh_contract_init(&contract);
+        if (ret != 0) PUT_ERROR ("could not init contract");
+
+        budget_min.tv_sec = 5;
+        period_max = frsh_msec_to_rel_time(3369);
 
-        contract.min_values.budget = 5;
-        contract.min_values.period.tv_sec  = 3;
-        contract.min_values.period.tv_nsec = 69;
-        contract.prio = 7;
+        ret = frsh_contract_set_basic_params
+                        (&contract,
+                          &budget_min,
+                          &period_max,
+                          FRSH_WT_INDETERMINATE,
+                          FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
+
+#if !FRSH_AUTOMATIC_PRIO_ASSIGN_ENABLE
+        ret = frsh_contract_set_preemption_level(&contract, 7);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+#endif
 
         ret = frescan_bwres_negotiate(NETWORK, &contract, &ss, &accepted);
-        if (ret != 0) ERROR ("could not negotiate");
+        if (ret != 0) PUT_ERROR ("could not negotiate");
 
         if (accepted) {
                 printf("The contract was accepted, ss:%u\n", ss);
                 ret = frescan_servers_get_data(NETWORK, &server_params, ss);
-                if (ret != 0) ERROR ("could not get servers data");
+                if (ret != 0) PUT_ERROR ("could not get servers data");
 
                 printf("B:%u, T=(%u,%u), P:%u\n",
-                       server_params.values.budget,
-                       server_params.values.period.tv_sec,
-                       server_params.values.period.tv_nsec,
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
                        server_params.prio);
         } else {
                 printf("The contract was not accepted\n");
@@ -59,23 +76,34 @@ int main ()
         printf("Renegotiate the contract in 2 seconds\n");
         sleep(2);
 
-        contract.min_values.budget = 7;
-        contract.min_values.period.tv_sec  = 2;
-        contract.min_values.period.tv_nsec = 45;
-        contract.prio = 8;
+        budget_min.tv_sec = 7;
+        period_max = frsh_msec_to_rel_time(2450);
+
+        ret = frsh_contract_set_basic_params
+                        (&contract,
+                          &budget_min,
+                          &period_max,
+                          FRSH_WT_INDETERMINATE,
+                          FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
+
+#if !FRSH_AUTOMATIC_PRIO_ASSIGN_ENABLE
+        ret = frsh_contract_set_preemption_level(&contract, 8);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+#endif
 
         ret = frescan_bwres_renegotiate(NETWORK, &contract, ss, &accepted);
-        if (ret != 0) ERROR ("could not renegotiate");
+        if (ret != 0) PUT_ERROR ("could not renegotiate");
 
         if (accepted) {
                 printf("The contract renegotiation was accepted, ss:%u\n", ss);
                 ret = frescan_servers_get_data(NETWORK, &server_params, ss);
-                if (ret != 0) ERROR ("could not get servers data");
+                if (ret != 0) PUT_ERROR ("could not get servers data");
 
                 printf("B:%u, T=(%u,%u), P:%u\n",
-                       server_params.values.budget,
-                       server_params.values.period.tv_sec,
-                       server_params.values.period.tv_nsec,
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
                        server_params.prio);
         } else {
                 printf("The contract was not accepted\n");
index 0996408fdf2d8d5746bb6dd7b2926c8f1efa405e..3e5fc92ce03f31acc038f6ee9025509741c43e32 100644 (file)
@@ -2,11 +2,13 @@
 #include <stdlib.h> // exit
 #include <unistd.h>   // sleep
 
+#include "frsh.h"
+
 #include "frescan.h"
 #include "frescan_bwres.h"
 #include "frescan_servers.h"
 
-#define ERROR(s) {perror (s); exit (-1);}
+#define PUT_ERROR(s) {perror (s); exit (-1);}
 
 #define NETWORK 0
 #define LOCAL_NODE 1
@@ -16,9 +18,10 @@ int main ()
         int ret;
         frescan_init_params_t init_params;
         frescan_ss_t ss;
-        frescan_contract_t contract;
+        frsh_contract_t contract;
         frescan_server_params_t server_params;
         bool accepted;
+        frsh_rel_time_t budget_min, period_max;
 
         init_params.net = NETWORK;
         init_params.node = LOCAL_NODE;
@@ -28,30 +31,44 @@ int main ()
 
         printf("Initializing FRESCAN\n");
         ret = frescan_init(&init_params);
-        if (ret != 0) ERROR ("could not init FRESCAN");
+        if (ret != 0) PUT_ERROR ("could not init FRESCAN");
 
         printf("Initializing BWRES\n");
         ret = frescan_bwres_init(NETWORK);
-        if (ret != 0) ERROR ("could not init BWRES");
+        if (ret != 0) PUT_ERROR ("could not init BWRES");
+
+        ret = frsh_contract_init(&contract);
+        if (ret != 0) PUT_ERROR ("could not init contract");
+
+        budget_min.tv_sec = 5;
+        period_max = frsh_msec_to_rel_time(3369);
+
+        ret = frsh_contract_set_basic_params
+                        (&contract,
+                          &budget_min,
+                          &period_max,
+                          FRSH_WT_INDETERMINATE,
+                          FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
 
-        contract.min_values.budget = 5;
-        contract.min_values.period.tv_sec = 3;
-        contract.min_values.period.tv_nsec = 0;
-        contract.prio = 5;
+#if !FRSH_AUTOMATIC_PRIO_ASSIGN_ENABLE
+        ret = frsh_contract_set_preemption_level(&contract, 5);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+#endif
 
         printf("Negotiating a contract\n");
         ret = frescan_bwres_negotiate(NETWORK, &contract, &ss, &accepted);
-        if (ret != 0) ERROR ("could not negotiate succesfully");
+        if (ret != 0) PUT_ERROR ("could not negotiate succesfully");
 
         if (accepted) {
                 printf("The contract was accepted, ss:%u\n", ss);
                 ret = frescan_servers_get_data(NETWORK, &server_params, ss);
-                if (ret != 0) ERROR ("could not get servers data");
+                if (ret != 0) PUT_ERROR ("could not get servers data");
 
                 printf("B:%u, T=(%u,%u), P:%u\n",
-                       server_params.values.budget,
-                       server_params.values.period.tv_sec,
-                       server_params.values.period.tv_nsec,
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
                        server_params.prio);
         } else {
                 printf("The contract was not accepted\n");
@@ -60,23 +77,34 @@ int main ()
         printf("Renegotiate the contract in 2 seconds\n");
         sleep(2);
 
-        contract.min_values.budget = 2;
-        contract.min_values.period.tv_sec  = 6;
-        contract.min_values.period.tv_nsec = 43;
-        contract.prio = 2;
+        budget_min.tv_sec = 2;
+        period_max = frsh_msec_to_rel_time(6430);
+
+        ret = frsh_contract_set_basic_params
+                        (&contract,
+                          &budget_min,
+                          &period_max,
+                          FRSH_WT_INDETERMINATE,
+                          FRSH_CT_REGULAR);
+        if (ret != 0) PUT_ERROR ("could not set basic params");
+
+#if !FRSH_AUTOMATIC_PRIO_ASSIGN_ENABLE
+        ret = frsh_contract_set_preemption_level(&contract, 2);
+        if (ret != 0) PUT_ERROR ("could not set preemption level");
+#endif
 
         ret = frescan_bwres_renegotiate(NETWORK, &contract, ss, &accepted);
-        if (ret != 0) ERROR ("could not renegotiate");
+        if (ret != 0) PUT_ERROR ("could not renegotiate");
 
         if (accepted) {
                 printf("The contract renegotiation was accepted, ss:%u\n", ss);
                 ret = frescan_servers_get_data(NETWORK, &server_params, ss);
-                if (ret != 0) ERROR ("could not get servers data");
+                if (ret != 0) PUT_ERROR ("could not get servers data");
 
                 printf("B:%u, T=(%u,%u), P:%u\n",
-                       server_params.values.budget,
-                       server_params.values.period.tv_sec,
-                       server_params.values.period.tv_nsec,
+                       server_params.budget,
+                       server_params.period.tv_sec,
+                       server_params.period.tv_nsec,
                        server_params.prio);
         } else {
                 printf("The contract was not accepted\n");
@@ -88,5 +116,3 @@ int main ()
 
         return 0;
 }
-
-
index 9ea285e9f1bb99bfb39e3ee41b039f33f741951d..b950efaa2eb6da6a22c042bf864be3a052006d27 100644 (file)
@@ -7,7 +7,7 @@
 
 #include "frescan.h"
 
-#define ERROR(s) {perror (s); exit (-1);}
+#define PUT_ERROR(s) {perror (s); exit (-1);}
 
 #define NETWORK 0
 
@@ -58,7 +58,7 @@ int main ()
 #endif
 
         ret = frescan_init(&init_params);
-        if (ret != 0) ERROR ("could not init FRESCAN");
+        if (ret != 0) PUT_ERROR ("could not init FRESCAN");
 
         printf("FRESCAN initialized (local node: %u)\n", LOCAL_NODE);
 
@@ -73,7 +73,7 @@ int main ()
                 for (i=0; i<=2; i++) {
                         written = snprintf(msg, sizeof(msg), "his number is... %d", i);
                         ret = frescan_send(&params, (uint8_t *)msg, written);
-                        if (ret != 0) ERROR ("could not send message\n");
+                        if (ret != 0) PUT_ERROR ("could not send message\n");
                         printf("SENT: %d\n", i);
                 }
 #ifdef ENABLE_LOGGING
@@ -105,7 +105,7 @@ int main ()
         init_params.rx_channel_max_prio = NULL;
 
         ret = frescan_init(&init_params);
-        if (ret != 0) ERROR ("could not init FRESCAN");
+        if (ret != 0) PUT_ERROR ("could not init FRESCAN");
 
         printf("FRESCAN initialized (local node: %u)\n", LOCAL_NODE);
 
@@ -117,7 +117,7 @@ int main ()
                 printf("RECEIVING...\n");
                 ret = frescan_recv(&params, (uint8_t *)msg, sizeof(msg),
                                     &recv_bytes, &from, &prio);
-                if (ret != 0) ERROR ("could not send message");
+                if (ret != 0) PUT_ERROR ("could not send message");
 
                 msg[recv_bytes] = '\0';
                 printf("RECEIVED: %s with prio:%u from:%u\n", msg, prio, from);
index 2d4e41efb6ef3cbbbead0b5464a8a79b69e3c739..c9679be4bc35014e8e810db704723c22de3de420 100644 (file)
@@ -45,7 +45,7 @@ int main ()
         init_params.rx_channel_max_prio = NULL;
 
         ret = frescan_init(&init_params);
-        if (ret != 0) ERROR ("could not init FRESCAN");
+        if (ret != 0) FRESCAN_ERROR ("could not init FRESCAN");
 
         DEBUG(ENABLE_DEBUG, ">> Enter in loop for sending packets\n");
 
@@ -79,7 +79,7 @@ int main ()
                         ret = frescan_send(&send_params,
                                            (uint8_t *)msg,
                                            NUM_MSG_BYTES);
-                        if (ret != 0) ERROR ("could not send message\n");
+                        if (ret != 0) FRESCAN_ERROR ("could not send message\n");
 
                         ret = frescan_recv(&recv_params,
                                            (uint8_t *)msg,
@@ -87,7 +87,7 @@ int main ()
                                            &recv_bytes,
                                            &from,
                                            &prio);
-                        if (ret != 0) ERROR ("could not receive message");
+                        if (ret != 0) FRESCAN_ERROR ("could not receive message");
 
                         time_measure_hwtime_set_timestamp(END);
 
@@ -112,12 +112,12 @@ int main ()
                                            &recv_bytes,
                                            &from,
                                            &prio);
-                        if (ret != 0) ERROR ("could not receive message");
+                        if (ret != 0) FRESCAN_ERROR ("could not receive message");
 
                         ret = frescan_send(&send_params,
                                            (uint8_t *)msg,
                                            recv_bytes);
-                        if (ret != 0) ERROR ("could not send message\n");
+                        if (ret != 0) FRESCAN_ERROR ("could not send message\n");
                 }
         }
 
index a556601994fb1c2aa1656271aabb8798b5412f11..a809f3e4aa9f11711181db503d27811f75564844 100644 (file)
@@ -4,12 +4,10 @@
 #include <stdint.h> // uint32_t
 
 #include "frescan_queues.h"
+#include "frescan_debug.h"
 #include <drivers/can.h>
 #include <misc/linux_list.h>
 
-#define ERROR(s) {perror (s); exit (-1);}
-#define DEBUG(enable,x,args...) if(enable) {printf("\t>> %s: " x, __func__ , ##args);} // pause();}
-
 #define DEBUG_ENABLE 1
 
 // static void pause(){
@@ -32,10 +30,10 @@ int main ()
         DEBUG(DEBUG_ENABLE, "init frames and packets pool\n");
 
         // ret = can_framespool_init();
-        // if (ret != 0) ERROR ("could not init frames pool\n");
+        // if (ret != 0) FRESCAN_ERROR ("could not init frames pool\n");
 
         ret = frescan_packets_init();
-        if (ret != 0) ERROR ("could not init packet pool\n");
+        if (ret != 0) FRESCAN_ERROR ("could not init packet pool\n");
 
         DEBUG(DEBUG_ENABLE, "init queues\n");
 
@@ -44,7 +42,7 @@ int main ()
         init_params.rx_channel_max_prio = NULL;
 
         ret = frescan_queues_init(&queues, &init_params);
-        if (ret != 0) ERROR("could not initialize the queues\n");
+        if (ret != 0) FRESCAN_ERROR("could not initialize the queues\n");
 
         head = NULL;
 
@@ -52,7 +50,7 @@ int main ()
 
         for (i=0; i<5; i++) {
                 frame = can_framespool_alloc();
-                if (frame == NULL) ERROR ("frames pool is exhausted\n");
+                if (frame == NULL) FRESCAN_ERROR ("frames pool is exhausted\n");
 
                 frame->is_extended_format = 1;
                 frame->is_rtr = 0;
@@ -62,14 +60,14 @@ int main ()
                 frame->data[7] = 69;
 
                 packet = frescan_packets_alloc();
-                if (packet == NULL) ERROR ("could not alloc packet\n");
+                if (packet == NULL) FRESCAN_ERROR ("could not alloc packet\n");
 
                 packet->frame = frame;
 
                 if (head == NULL) {
                         DEBUG(DEBUG_ENABLE, "head was null\n");
                         head = frescan_packets_alloc();
-                        if (head == NULL) ERROR ("could not alloc packet\n");
+                        if (head == NULL) FRESCAN_ERROR ("could not alloc packet\n");
                         INIT_LIST_HEAD(&head->msg_list);
                 }
 
@@ -80,20 +78,20 @@ int main ()
 
         pqueue = queues.rx_channel_queues[0];
         ret = frescan_pqueue_enqueue(pqueue, head, 7);
-        if (ret != 0) ERROR ("could not enqueue packet\n");
+        if (ret != 0) FRESCAN_ERROR ("could not enqueue packet\n");
 
         blocking = true;
 
         DEBUG(DEBUG_ENABLE, "dequeue head from priority queue\n");
 
         ret = frescan_pqueue_dequeue(pqueue, &head, &prio, blocking);
-        if (ret != 0) ERROR ("could not dequeue packet\n");
+        if (ret != 0) FRESCAN_ERROR ("could not dequeue packet\n");
 
         if (head == NULL) {
                 if (blocking == false) {
-                        ERROR ("blocking false packet null\n");
+                        FRESCAN_ERROR ("blocking false packet null\n");
                 } else {
-                        ERROR ("blocking true, and packet = null\n");
+                        FRESCAN_ERROR ("blocking true, and packet = null\n");
                 }
         }
 
@@ -105,17 +103,17 @@ int main ()
                        packet->frame->dlc, packet->frame->pool_pos);
 
                 ret = can_framespool_free(packet->frame);
-                if (ret != 0) ERROR("could not free frame\n");
+                if (ret != 0) FRESCAN_ERROR("could not free frame\n");
 
                 ret = frescan_packets_free(packet);
-                if (ret != 0) ERROR("could not free packet\n");
+                if (ret != 0) FRESCAN_ERROR("could not free packet\n");
         }
 
         DEBUG(DEBUG_ENABLE, "free head\n");
 
         ret = frescan_packets_free(head);
         if (ret != 0) {
-                ERROR("could not free head packet\n");
+                FRESCAN_ERROR("could not free head packet\n");
                 return -1;
         }
 
index 900f799f48f87aa0467f7c56f43e56a304d17730..89d01c707d90bb3714c0f80b270505b6161ebe24 100644 (file)
@@ -8,7 +8,7 @@
 #include "frescan.h"
 #include "frescan_servers.h"
 
-#define ERROR(s) {perror (s); exit (-1);}
+#define PUT_ERROR(s) {perror (s); exit (-1);}
 
 #define NETWORK 0
 
@@ -59,19 +59,19 @@ int main ()
         init_params.rx_channel_max_prio = NULL;
 
         ret = frescan_init(&init_params);
-        if (ret != 0) ERROR ("could not init FRESCAN");
+        if (ret != 0) PUT_ERROR ("could not init FRESCAN");
 
         printf(">> Creating a Server\n");
 
-        server_params.values.budget = 3;
-        server_params.values.period.tv_sec  = 3;
-        server_params.values.period.tv_nsec = 0;
+        server_params.budget = 3;
+        server_params.period.tv_sec  = 3;
+        server_params.period.tv_nsec = 0;
         server_params.prio = 4;
 
         ret = frescan_servers_create(NETWORK,
                                      &server_params,
                                      &params.ss);
-        if (ret != 0) ERROR ("could not create server");
+        if (ret != 0) PUT_ERROR ("could not create server");
 
         printf(">> Enter in loop for sending packets\n");
 
@@ -85,7 +85,7 @@ int main ()
                 for (i=0; i<=2; i++) {
                         written = snprintf(msg, sizeof(msg), "his number is: %d", i);
                         ret = frescan_send(&params, (uint8_t *)msg, written);
-                        if (ret != 0) ERROR ("could not send message\n");
+                        if (ret != 0) PUT_ERROR ("could not send message\n");
                         printf("SENT: %d\n", i);
 }
 #ifdef ENABLE_LOGGING
@@ -117,7 +117,7 @@ int main ()
         init_params.rx_channel_max_prio = NULL;
 
         ret = frescan_init(&init_params);
-        if (ret != 0) ERROR ("could not init FRESCAN");
+        if (ret != 0) PUT_ERROR ("could not init FRESCAN");
 
         printf("FRESCAN initialized\n");
 
@@ -129,7 +129,7 @@ int main ()
                 printf("RECEIVING...\n");
                 ret = frescan_recv(&params, (uint8_t *)msg, sizeof(msg),
                                    &recv_bytes, &from, &prio);
-                if (ret != 0) ERROR ("could not send message");
+                if (ret != 0) PUT_ERROR ("could not send message");
 
                 msg[recv_bytes] = '\0';
                 printf("RECEIVED: %s with prio:%u\n", msg, prio);
index 0c6f55bbf05eb0e0d66ae4266b3235ae9a8644e7..a581f89537321accb3294493f0290556b815a224 100644 (file)
@@ -48,19 +48,19 @@ int main ()
         init_params.rx_channel_max_prio = NULL;
 
         ret = frescan_init(&init_params);
-        if (ret != 0) ERROR ("could not init FRESCAN");
+        if (ret != 0) FRESCAN_ERROR ("could not init FRESCAN");
 
         DEBUG(ENABLE_DEBUG, ">> Creating a Server\n");
 
-        server_params.values.budget = NUM_MSG_BYTES / 8;
-        server_params.values.period.tv_sec  = 0;
-        server_params.values.period.tv_nsec = 500000000;
+        server_params.budget = NUM_MSG_BYTES / 8;
+        server_params.period.tv_sec  = 0;
+        server_params.period.tv_nsec = 500000000;
         server_params.prio = 4;
 
         ret = frescan_servers_create(NETWORK,
                                      &server_params,
                                      &send_params.ss);
-        if (ret != 0) ERROR ("could not create server");
+        if (ret != 0) FRESCAN_ERROR ("could not create server");
 
         DEBUG(ENABLE_DEBUG, ">> Enter in loop for sending packets\n");
 
@@ -95,7 +95,7 @@ int main ()
                         ret = frescan_send(&send_params,
                                            (uint8_t *)msg,
                                            NUM_MSG_BYTES);
-                        if (ret != 0) ERROR ("could not send message\n");
+                        if (ret != 0) FRESCAN_ERROR ("could not send message\n");
 
                         ret = frescan_recv(&recv_params,
                                            (uint8_t *)msg,
@@ -103,7 +103,7 @@ int main ()
                                            &recv_bytes,
                                            &from,
                                            &prio);
-                        if (ret != 0) ERROR ("could not receive message");
+                        if (ret != 0) FRESCAN_ERROR ("could not receive message");
 #ifndef DISABLE_MEASURES
                         time_measure_hwtime_set_timestamp(END);
 #endif
@@ -129,12 +129,12 @@ int main ()
                                            &recv_bytes,
                                            &from,
                                            &prio);
-                        if (ret != 0) ERROR ("could not receive message");
+                        if (ret != 0) FRESCAN_ERROR ("could not receive message");
 
                         ret = frescan_send(&send_params,
                                            (uint8_t *)msg,
                                            recv_bytes);
-                        if (ret != 0) ERROR ("could not send message\n");
+                        if (ret != 0) FRESCAN_ERROR ("could not send message\n");
                 }
         }