Operation context used to execute a set operation. More...
#include </home/buildbot/bb-worker/worker/gnunet_firefly/build/src/contrib/service/set/gnunet-service-set.h>
Data Fields | |
struct Operation * | next |
Kept in a DLL of the listener, if listener is non-NULL. More... | |
struct Operation * | prev |
Kept in a DLL of the listener, if listener is non-NULL. More... | |
struct GNUNET_CADET_Channel * | channel |
Channel to the peer. More... | |
struct Listener * | listener |
Port this operation runs on. More... | |
struct GNUNET_MQ_Handle * | mq |
Message queue for the channel. More... | |
struct GNUNET_MessageHeader * | context_msg |
Context message, may be NULL. More... | |
struct Set * | set |
Set associated with the operation, NULL until the spec has been associated with a set. More... | |
struct OperationState * | state |
Operation-specific operation state. More... | |
struct GNUNET_PeerIdentity | peer |
The identity of the requesting peer. More... | |
struct GNUNET_SCHEDULER_Task * | timeout_task |
Timeout task, if the incoming peer has not been accepted after the timeout, it will be disconnected. More... | |
uint32_t | salt |
Salt to use for the operation. More... | |
uint32_t | remote_element_count |
Remote peers element count. More... | |
uint32_t | client_request_id |
ID used to identify an operation between service and client. More... | |
enum GNUNET_SET_ResultMode | result_mode |
When are elements sent to the client, and which elements are sent? More... | |
int | force_delta |
Always use delta operation instead of sending full sets, even it it's less efficient. More... | |
int | force_full |
Always send full sets, even if delta operations would be more efficient. More... | |
int | byzantine |
GNUNET_YES to fail operations where Byzantine faults are suspected More... | |
int | byzantine_lower_bound |
Lower bound for the set size, used only when byzantine mode is enabled. More... | |
uint32_t | suggest_id |
Unique request id for the request from a remote peer, sent to the client, which will accept or reject the request. More... | |
unsigned int | generation_created |
Generation in which the operation handle was created. More... | |
struct GNUNET_HashCode | my_xor |
XOR of the keys of all of the elements (remaining) in my set. More... | |
struct GNUNET_HashCode | other_xor |
XOR of the keys of all of the elements (remaining) in the other peer's set. More... | |
struct GNUNET_CONTAINER_BloomFilter * | remote_bf |
The bf we currently receive. More... | |
struct GNUNET_CONTAINER_BloomFilter * | local_bf |
BF of the set's element. More... | |
struct GNUNET_CONTAINER_MultiHashMap * | my_elements |
Remaining elements in the intersection operation. More... | |
struct GNUNET_CONTAINER_MultiHashMapIterator * | full_result_iter |
Iterator for sending the final set of my_elements to the client. More... | |
char * | bf_data |
For multipart BF transmissions, we have to store the bloomfilter-data until we fully received it. More... | |
uint32_t | bf_data_offset |
How many bytes of bf_data are valid? More... | |
uint32_t | my_element_count |
Current element count contained within my_elements. More... | |
uint32_t | bf_data_size |
size of the bloomfilter in bf_data. More... | |
uint32_t | bf_bits_per_element |
size of the bloomfilter More... | |
enum IntersectionOperationPhase | phase |
Current state of the operation. More... | |
int | client_done_sent |
Did we send the client that we are done? More... | |
int | channel_death_expected |
Set whenever we reach the state where the death of the channel is perfectly find and should NOT result in the operation being cancelled. More... | |
int | return_intersection |
When are elements sent to the client, and which elements are sent? More... | |
uint64_t | initial_size |
Initial size of our set, just before the operation started. More... | |
struct MultiStrataEstimator * | se |
Copy of the set's strata estimator at the time of creation of this operation. More... | |
struct InvertibleBloomFilter * | remote_ibf |
The IBF we currently receive. More... | |
struct InvertibleBloomFilter * | local_ibf |
The IBF with the local set's element. More... | |
struct GNUNET_CONTAINER_MultiHashMap32 * | key_to_element |
Maps unsalted IBF-Keys to elements. More... | |
struct GNUNET_CONTAINER_MultiHashMap * | demanded_hashes |
Hashes for elements that we have demanded from the other peer. More... | |
enum UnionOperationPhase | phase |
Current state of the operation. More... | |
uint64_t | ibf_buckets_received |
Number of ibf buckets already received into the remote_ibf. More... | |
uint32_t | salt_send |
Salt that we're using for sending IBFs. More... | |
uint32_t | salt_receive |
Salt for the IBF we've received and that we're currently decoding. More... | |
uint32_t | received_fresh |
Number of elements we received from the other peer that were not in the local set yet. More... | |
uint32_t | received_total |
Total number of elements received from the other peer. More... | |
int | symmetric |
GNUNET_YES to also send back set elements we are sending to the remote peer. More... | |
uint64_t | byzantine_lower_bound |
Lower bound for the set size, used only when byzantine mode is enabled. More... | |
uint64_t | rtt_bandwidth_tradeoff |
User defined Bandwidth Round Trips Tradeoff. More... | |
uint8_t | ibf_number_buckets_per_element |
Number of Element per bucket in IBF. More... | |
uint8_t | ibf_bucket_number_factor |
Set difference is multiplied with this factor to gennerate large enough IBF. More... | |
uint8_t | peer_site |
Defines which site a client is 0 = Initiating peer 1 = Receiving peer. More... | |
uint64_t | local_element_count |
Local peer element count. More... | |
uint8_t | mode_of_operation |
Mode of operation that was chosen by the algorithm. More... | |
struct GNUNET_CONTAINER_MultiHashMap * | message_control_flow |
Hashmap to keep track of the send/received messages. More... | |
struct GNUNET_CONTAINER_MultiHashMap * | inquiries_sent |
Hashmap to keep track of the send/received inquiries (ibf keys) More... | |
uint64_t | total_elements_size_local |
Total size of local set. More... | |
uint64_t | byzantine_upper_bound |
Limit of number of elements in set. More... | |
uint8_t | differential_sync_iterations |
is the count of already passed differential sync iterations More... | |
uint64_t | remote_set_diff |
Estimated or committed set difference at the start. More... | |
uint64_t | local_set_diff |
Estimated or committed set difference at the start. More... | |
bool | active_passive_switch_required |
Boolean to enforce an active passive switch. More... | |
Operation context used to execute a set operation.
Definition at line 313 of file gnunet-service-set.h.
struct Operation * Operation::next |
Kept in a DLL of the listener, if listener is non-NULL.
Definition at line 318 of file gnunet-service-set.h.
struct Operation * Operation::prev |
Kept in a DLL of the listener, if listener is non-NULL.
Definition at line 323 of file gnunet-service-set.h.
struct GNUNET_CADET_Channel * Operation::channel |
Channel to the peer.
Definition at line 328 of file gnunet-service-set.h.
Referenced by channel_new_cb().
struct Listener * Operation::listener |
Port this operation runs on.
Definition at line 333 of file gnunet-service-set.h.
Referenced by channel_new_cb(), and get_incoming().
struct GNUNET_MQ_Handle * Operation::mq |
Message queue for the channel.
Definition at line 338 of file gnunet-service-set.h.
struct GNUNET_MessageHeader * Operation::context_msg |
Context message, may be NULL.
Definition at line 343 of file gnunet-service-set.h.
struct Set * Operation::set |
Set associated with the operation, NULL until the spec has been associated with a set.
Definition at line 349 of file gnunet-service-set.h.
Referenced by handle_client_cancel().
struct OperationState* Operation::state |
Operation-specific operation state.
Note that the exact type depends on this being a union or intersection operation (and thus on vt).
Definition at line 356 of file gnunet-service-set.h.
struct GNUNET_PeerIdentity Operation::peer |
The identity of the requesting peer.
Needs to be stored here as the op spec might not have been created yet.
Definition at line 362 of file gnunet-service-set.h.
struct GNUNET_SCHEDULER_Task * Operation::timeout_task |
Timeout task, if the incoming peer has not been accepted after the timeout, it will be disconnected.
Definition at line 368 of file gnunet-service-set.h.
uint32_t Operation::salt |
Salt to use for the operation.
Salt currently used for BF construction (by us or the other peer, depending on where we are in the code).
Definition at line 373 of file gnunet-service-set.h.
uint32_t Operation::remote_element_count |
Remote peers element count.
Definition at line 378 of file gnunet-service-set.h.
Referenced by handle_union_p2p_request_full(), and handle_union_p2p_send_full().
uint32_t Operation::client_request_id |
ID used to identify an operation between service and client.
Definition at line 383 of file gnunet-service-set.h.
enum GNUNET_SET_ResultMode Operation::result_mode |
When are elements sent to the client, and which elements are sent?
Definition at line 388 of file gnunet-service-set.h.
int Operation::force_delta |
Always use delta operation instead of sending full sets, even it it's less efficient.
Definition at line 394 of file gnunet-service-set.h.
int Operation::force_full |
Always send full sets, even if delta operations would be more efficient.
Definition at line 400 of file gnunet-service-set.h.
int Operation::byzantine |
GNUNET_YES to fail operations where Byzantine faults are suspected
Definition at line 406 of file gnunet-service-set.h.
int Operation::byzantine_lower_bound |
Lower bound for the set size, used only when byzantine mode is enabled.
Definition at line 412 of file gnunet-service-set.h.
uint32_t Operation::suggest_id |
Unique request id for the request from a remote peer, sent to the client, which will accept or reject the request.
Set to '0' iff the request has not been suggested yet.
Definition at line 419 of file gnunet-service-set.h.
unsigned int Operation::generation_created |
Generation in which the operation handle was created.
Definition at line 425 of file gnunet-service-set.h.
struct GNUNET_HashCode Operation::my_xor |
XOR of the keys of all of the elements (remaining) in my set.
Always updated when elements are added or removed to my_elements.
Definition at line 186 of file gnunet-service-seti.c.
struct GNUNET_HashCode Operation::other_xor |
XOR of the keys of all of the elements (remaining) in the other peer's set.
Updated when we receive the other peer's Bloom filter.
Definition at line 193 of file gnunet-service-seti.c.
struct GNUNET_CONTAINER_BloomFilter* Operation::remote_bf |
The bf we currently receive.
Definition at line 234 of file gnunet-service-seti.c.
struct GNUNET_CONTAINER_BloomFilter* Operation::local_bf |
BF of the set's element.
Definition at line 239 of file gnunet-service-seti.c.
struct GNUNET_CONTAINER_MultiHashMap* Operation::my_elements |
Remaining elements in the intersection operation.
Maps element-id-hashes to 'elements in our set'.
Definition at line 245 of file gnunet-service-seti.c.
struct GNUNET_CONTAINER_MultiHashMapIterator* Operation::full_result_iter |
Iterator for sending the final set of my_elements to the client.
Definition at line 250 of file gnunet-service-seti.c.
char* Operation::bf_data |
For multipart BF transmissions, we have to store the bloomfilter-data until we fully received it.
Definition at line 256 of file gnunet-service-seti.c.
uint32_t Operation::bf_data_offset |
How many bytes of bf_data are valid?
Definition at line 267 of file gnunet-service-seti.c.
uint32_t Operation::my_element_count |
Current element count contained within my_elements.
(May differ briefly during initialization.)
Definition at line 273 of file gnunet-service-seti.c.
uint32_t Operation::bf_data_size |
size of the bloomfilter in bf_data.
Definition at line 278 of file gnunet-service-seti.c.
uint32_t Operation::bf_bits_per_element |
size of the bloomfilter
Definition at line 283 of file gnunet-service-seti.c.
Referenced by handle_intersection_p2p_bf().
enum IntersectionOperationPhase Operation::phase |
Current state of the operation.
Definition at line 294 of file gnunet-service-seti.c.
int Operation::client_done_sent |
Did we send the client that we are done?
Definition at line 304 of file gnunet-service-seti.c.
int Operation::channel_death_expected |
Set whenever we reach the state where the death of the channel is perfectly find and should NOT result in the operation being cancelled.
Definition at line 311 of file gnunet-service-seti.c.
int Operation::return_intersection |
When are elements sent to the client, and which elements are sent?
Definition at line 326 of file gnunet-service-seti.c.
uint64_t Operation::initial_size |
Initial size of our set, just before the operation started.
Definition at line 288 of file gnunet-service-setu.c.
struct MultiStrataEstimator* Operation::se |
Copy of the set's strata estimator at the time of creation of this operation.
Definition at line 330 of file gnunet-service-setu.c.
struct InvertibleBloomFilter* Operation::remote_ibf |
The IBF we currently receive.
Definition at line 335 of file gnunet-service-setu.c.
struct InvertibleBloomFilter* Operation::local_ibf |
The IBF with the local set's element.
Definition at line 340 of file gnunet-service-setu.c.
struct GNUNET_CONTAINER_MultiHashMap32* Operation::key_to_element |
Maps unsalted IBF-Keys to elements.
Used as a multihashmap, the keys being the lower 32bit of the IBF-Key. Colliding IBF-Keys are linked.
Definition at line 347 of file gnunet-service-setu.c.
struct GNUNET_CONTAINER_MultiHashMap* Operation::demanded_hashes |
Hashes for elements that we have demanded from the other peer.
Definition at line 358 of file gnunet-service-setu.c.
enum UnionOperationPhase Operation::phase |
Current state of the operation.
Definition at line 363 of file gnunet-service-setu.c.
uint64_t Operation::ibf_buckets_received |
Number of ibf buckets already received into the remote_ibf.
Definition at line 373 of file gnunet-service-setu.c.
uint32_t Operation::salt_send |
Salt that we're using for sending IBFs.
Definition at line 378 of file gnunet-service-setu.c.
uint32_t Operation::salt_receive |
Salt for the IBF we've received and that we're currently decoding.
Definition at line 383 of file gnunet-service-setu.c.
uint32_t Operation::received_fresh |
Number of elements we received from the other peer that were not in the local set yet.
Definition at line 389 of file gnunet-service-setu.c.
uint32_t Operation::received_total |
Total number of elements received from the other peer.
Definition at line 394 of file gnunet-service-setu.c.
int Operation::symmetric |
GNUNET_YES to also send back set elements we are sending to the remote peer.
Definition at line 433 of file gnunet-service-setu.c.
uint64_t Operation::byzantine_lower_bound |
Lower bound for the set size, used only when byzantine mode is enabled.
Definition at line 439 of file gnunet-service-setu.c.
uint64_t Operation::rtt_bandwidth_tradeoff |
User defined Bandwidth Round Trips Tradeoff.
Definition at line 458 of file gnunet-service-setu.c.
Referenced by handle_union_p2p_request_full(), and handle_union_p2p_send_full().
uint8_t Operation::ibf_number_buckets_per_element |
Number of Element per bucket in IBF.
Definition at line 464 of file gnunet-service-setu.c.
uint8_t Operation::ibf_bucket_number_factor |
Set difference is multiplied with this factor to gennerate large enough IBF.
Definition at line 471 of file gnunet-service-setu.c.
Referenced by handle_union_p2p_request_full(), and handle_union_p2p_send_full().
uint8_t Operation::peer_site |
Defines which site a client is 0 = Initiating peer 1 = Receiving peer.
Definition at line 478 of file gnunet-service-setu.c.
uint64_t Operation::local_element_count |
Local peer element count.
Definition at line 484 of file gnunet-service-setu.c.
Referenced by handle_union_p2p_request_full(), and handle_union_p2p_send_full().
uint8_t Operation::mode_of_operation |
Mode of operation that was chosen by the algorithm.
Definition at line 489 of file gnunet-service-setu.c.
Referenced by handle_union_p2p_request_full(), and handle_union_p2p_send_full().
struct GNUNET_CONTAINER_MultiHashMap* Operation::message_control_flow |
Hashmap to keep track of the send/received messages.
Definition at line 494 of file gnunet-service-setu.c.
struct GNUNET_CONTAINER_MultiHashMap* Operation::inquiries_sent |
Hashmap to keep track of the send/received inquiries (ibf keys)
Definition at line 499 of file gnunet-service-setu.c.
uint64_t Operation::total_elements_size_local |
Total size of local set.
Definition at line 505 of file gnunet-service-setu.c.
uint64_t Operation::byzantine_upper_bound |
Limit of number of elements in set.
Definition at line 510 of file gnunet-service-setu.c.
uint8_t Operation::differential_sync_iterations |
is the count of already passed differential sync iterations
Definition at line 515 of file gnunet-service-setu.c.
uint64_t Operation::remote_set_diff |
Estimated or committed set difference at the start.
Definition at line 520 of file gnunet-service-setu.c.
uint64_t Operation::local_set_diff |
Estimated or committed set difference at the start.
Definition at line 525 of file gnunet-service-setu.c.
bool Operation::active_passive_switch_required |
Boolean to enforce an active passive switch.
Definition at line 530 of file gnunet-service-setu.c.