Previous: , Up: Proposed Solution   [Contents][Index]


A.3.8 grad_instr_forward

Instruction: grad_instr_forward_t server_list
struct grad_instr_forward
{
  grad_list_t server_list;
};
typedef struct grad_instr_forward grad_instr_forward_t;

This node forwards the request to each servers from server_list. Forwarding differs from proxying in that the requests are sent to the remote servers and processed locally. The remote server is not expected to reply. See forwarding, for more information on this subject.

In contrast to grad_instr_proxy, this instruction type does not cause the execution to stop.

Elements of server_list are of type grad_server_t.

Currently forwarding is performed by forward_request function (forward.c), which could be used with little modifications. Namely, it will be rewritten to get server list as argument, instead of using static variable forward_list. Consequently, the functions responsible for creating and initializing this static variable will disappear along with the variable itself. .

A.3.9 RPL representation

RPL defun: FORWARD server-list