Line data Source code
1 : #ifndef HEADER_fd_src_discof_repair_fd_repair_tile_h 2 : #define HEADER_fd_src_discof_repair_fd_repair_tile_h 3 : 4 : #include "../../disco/tiles.h" 5 : #include "../../disco/shred/fd_shred_tile.h" 6 : 7 : /* Repair tile forwards all FEC completes received by the shred tile. 8 : It forwards the FEC completes with new sigs: 9 : - REPAIR_SIG_FEC: FEC set complete 10 : - REPAIR_SIG_FEC_LEADER: Leader FEC set complete 11 : - REPAIR_SIG_FEC_INVALID: FEC set detected as invalid based on duplicate confirmations 12 : 13 : Note that invalidity is very strict. i.e., sometimes replay may not 14 : want FEC set at the root / or older than the root to be inserted. 15 : Repair should still forward these as REPAIR_SIG_FEC, because they are 16 : FEC sets that are either valid, or cannot be verified as invalid. 17 : Similarly, repair may have received two versions of one FEC, but is 18 : unsure which one is canonical. These are also forwarded as 19 : REPAIR_SIG_FEC. It's up to replay tile to arbitrate whether to insert 20 : these FEC sets. 21 : 22 : A FEC set forwarded as REPAIR_SIG_FEC_INVALID is with confidence 23 : guaranteed to be not part of the canonical chain. */ 24 : 25 0 : #define REPAIR_SIG_FEC (0UL) /* FEC set complete */ 26 0 : #define REPAIR_SIG_FEC_LEADER (1UL) /* Leader FEC set complete */ 27 0 : #define REPAIR_SIG_FEC_INVALID (2UL) /* FEC set detected as invalid based on duplicate confirmations */ 28 : 29 : #endif /* HEADER_fd_src_discof_repair_fd_repair_tile_h */