**/
/**
- * frsh_network_message_get_max_size()
+ * frsh_network_get_max_message_size()
*
* This operation gives the maximum number of bytes that can be sent
* at a time through the send function when using the network designated by
* split them.
*
* Some protocols, like IP, are capable of sending large messages
- * (and use fragmentation internally) but other protocols doesn't
- * provide fragmentation features.
+ * (and use fragmentation internally) but other protocols don't.
*
* @param[in] resource_id The network we want the tx time from.
* @param[in] destination The destination address
* @param[out] max_size The maximum number of bytes for each message
*
* @return
- * FRSH_NO_ERROR: in this case it also means contract accepted \n
+ * FRSH_NO_ERROR \n
* FRSH_ERR_INTERNAL_ERROR: protocol dependent internal errors \n
* FRSH_ERR_NOT_INITIALIZED: if the protocol is not initialized \n
- * FRSH_ERR_RESOURCE_ID_INVALID: if we are not in charge of resource_id \n
- * FRSH_ERR_BAD_ARGUMENT: if pointers are NULL \n
+ * FRSH_ERR_RESOURCE_ID_INVALID: if resource id does not represent
+ * a network accessible from the current processing node \n
+ * FRSH_ERR_BAD_ARGUMENT: if pointers are NULL or destination is
+ * invalid \n
*
**/
-int frsh_network_message_get_max_size
+int frsh_network_get_max_message_size
(const frsh_resource_id_t resource_id,
const frsh_network_address_t destination,
size_t *max_size);
* frsh_network_bytes_to_budget()
*
* This operation converts a number of bytes into a temporal budget for
- * a specific network. Network overheads are not included here but internally
- * when negotiating a specific contract.
+ * a specific network. Network overheads are not included here but are
+ * considered internally when negotiating a specific contract.
*
* @param[in] resource_id The network
* @param[in] nbytes Number of bytes
* @param[out] budget The network budget for nbytes
*
* @return
- * FRSH_NO_ERROR: in this case it also means contract accepted \n
+ * FRSH_NO_ERROR \n
* FRSH_ERR_INTERNAL_ERROR: protocol dependent internal errors \n
* FRSH_ERR_NOT_INITIALIZED: if the protocol is not initialized \n
- * FRSH_ERR_RESOURCE_ID_INVALID: if we are not in charge of resource_id \n
- * FRSH_ERR_BAD_ARGUMENT: if pointers are NULL \n
+ * FRSH_ERR_RESOURCE_ID_INVALID: if resource id does not represent
+ * a network accessible from the current processing node \n
+ * FRSH_ERR_BAD_ARGUMENT: if pointers are NULL or nbytes is less
+ * than zero \n
*
**/
int frsh_network_bytes_to_budget
* @param[out] nbytes Number of bytes
*
* @return
- * FRSH_NO_ERROR: in this case it also means contract accepted \n
+ * FRSH_NO_ERROR \n
* FRSH_ERR_INTERNAL_ERROR: protocol dependent internal errors \n
* FRSH_ERR_NOT_INITIALIZED: if the protocol is not initialized \n
- * FRSH_ERR_RESOURCE_ID_INVALID: if we are not in charge of resource_id \n
- * FRSH_ERR_BAD_ARGUMENT: if pointers are NULL \n
+ * FRSH_ERR_RESOURCE_ID_INVALID: if resource id does not represent
+ * a network accessible from the current processing node \n
+ * FRSH_ERR_BAD_ARGUMENT: if pointers are NULL or budget refers to
+ * an invalid time value \n
*
**/
int frsh_network_budget_to_bytes
*
* This operation gets the minimum effective budget for a network. Each message
* consumes a contracted budget in "chunks" (i.e: packets) that we call
- * effective budget.
+ * minimum effective budget.
*
* A negotiated contract, for N bytes in a period T, means that there is a
* virtual resource that reserves for the user:
*
- * (N bytes)/budget_to_bytes(min_effective_budget) "CHUNKS"
+ * Ceiling ((N bytes) / budget_to_bytes (min_effective_budget)) "CHUNKS"
*
* Note that if the user decides not to send these N bytes at once but, say,
- * one byte at a time, it will consume more "CHUNKS" and the reserved budget
- * will become exhausted before sending all the bytes.
+ * one byte at a time, it will consume one "CHUNK" at a time and the reserved
+ * budget will become exhausted before sending all the bytes.
*
* @param[in] resource_id The network
* @param[out] budget The network budget
*
* @return
- * FRSH_NO_ERROR: in this case it also means contract accepted \n
+ * FRSH_NO_ERROR \n
* FRSH_ERR_INTERNAL_ERROR: protocol dependent internal errors \n
* FRSH_ERR_NOT_INITIALIZED: if the protocol is not initialized \n
- * FRSH_ERR_RESOURCE_ID_INVALID: if we are not in charge of resource_id \n
+ * FRSH_ERR_RESOURCE_ID_INVALID: if resource id does not represent
+ * a network accessible from the current processing node \n
* FRSH_ERR_BAD_ARGUMENT: if pointers are NULL \n
*
**/
(frsh_resource_id_t network_id,
frsh_network_address_t destination,
frsh_stream_id_t stream_id,
+ frsh_send_endpoint_protocol_info_t protocol_info,
frsh_send_endpoint_t *endpoint);
/**
(const frsh_send_endpoint_t *endpoint,
frsh_resource_id_t *network_id,
frsh_network_address_t *destination,
- frsh_stream_id_t *stream);
+ frsh_stream_id_t *stream,
+ frsh_send_endpoint_protocol_info_t *protocol_info);
/**
* frsh_send_endpoint_destroy()
void *msg,
size_t size);
-
-
/**
* frsh_send_endpoint_get_status()
*
(frsh_resource_id_t network_id,
frsh_stream_id_t stream_id,
frsh_endpoint_queueing_info_t queueing_info,
- frsh_protocol_info_t protocol_info,
+ frsh_receive_endpoint_protocol_info_t protocol_info,
frsh_receive_endpoint_t *endpoint);
-
/**
* frsh_receive_endpoint_get_params()
*
* endpoint at creation time.
**/
int frsh_receive_endpoint_get_params
- (frsh_resource_id_t *network_id,
+ (const frsh_receive_endpoint_t *endpoint,
+ frsh_resource_id_t *network_id,
frsh_stream_id_t *stream,
frsh_endpoint_queueing_info_t *queueing_info,
- frsh_protocol_info_t *protocol_info,
- const frsh_receive_endpoint_t *endpoint);
+ frsh_receive_endpoint_protocol_info_t *protocol_info);
/**
* frsh_receive_endpoint_destroy()
(const frsh_receive_endpoint_t *endpoint,
void *buffer,
size_t buffer_size,
- size_t *message_size);
+ size_t *message_size,
+ frsh_network_address_t *from);
/**
* frsh_receive_async()
(const frsh_receive_endpoint_t *endpoint,
void *buffer,
size_t buffer_size,
- size_t *message_size);
+ size_t *message_size,
+ frsh_network_address_t *from);
/**