gnunet_dht_block_types.h (3390B)
1 /* 2 This file is part of GNUnet 3 Copyright (C) 2012-2022 GNUnet e.V. 4 5 GNUnet is free software: you can redistribute it and/or modify it 6 under the terms of the GNU Affero General Public License as published 7 by the Free Software Foundation, either version 3 of the License, 8 or (at your option) any later version. 9 10 GNUnet is distributed in the hope that it will be useful, but 11 WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Affero General Public License for more details. 14 15 You should have received a copy of the GNU Affero General Public License 16 along with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 SPDX-License-Identifier: AGPL3.0-or-later 19 */ 20 #ifndef GNUNET_DHT_BLOCK_TYPES_H 21 #define GNUNET_DHT_BLOCK_TYPES_H 22 23 /** 24 * WARNING: 25 * This header is generated! 26 * In order to add DHT block types, you must register 27 * them in GANA, and then use the header generation script 28 * to create an update of this file. You may then replace this 29 * file with the update. 30 */ 31 32 #ifdef __cplusplus 33 extern "C" { 34 #if 0 /* keep Emacsens' auto-indent happy */ 35 } 36 #endif 37 #endif 38 39 /** 40 * Blocks in the datastore and the datacache must have a unique type. 41 */ 42 enum GNUNET_BLOCK_Type 43 { 44 45 46 /** 47 * Identifier for any block. 48 */ 49 GNUNET_BLOCK_TYPE_ANY = 0, 50 51 52 /** 53 * Data block (leaf) in the CHK tree. 54 */ 55 GNUNET_BLOCK_TYPE_FS_DBLOCK = 1, 56 57 58 /** 59 * Inner block in the CHK tree. 60 */ 61 GNUNET_BLOCK_TYPE_FS_IBLOCK = 2, 62 63 64 /** 65 * Type of a block representing a block to be encoded on demand from disk. Should never appear on the network directly. 66 */ 67 GNUNET_BLOCK_TYPE_FS_ONDEMAND = 6, 68 69 70 /** 71 * Legacy type of a block that contains a HELLO for a peer. 72 */ 73 GNUNET_BLOCK_TYPE_LEGACY_HELLO = 7, 74 75 76 /** 77 * Block for testing. 78 */ 79 GNUNET_BLOCK_TYPE_TEST = 8, 80 81 82 /** 83 * Type of a block representing any type of search result (universal). 84 */ 85 GNUNET_BLOCK_TYPE_FS_UBLOCK = 9, 86 87 88 /** 89 * Block for storing DNS exit service advertisements. 90 */ 91 GNUNET_BLOCK_TYPE_DNS = 10, 92 93 94 /** 95 * Block for storing GNS record data. 96 */ 97 GNUNET_BLOCK_TYPE_GNS_NAMERECORD = 11, 98 99 100 /** 101 * Block type for a revocation message by which a key is revoked. 102 */ 103 GNUNET_BLOCK_TYPE_REVOCATION = 12, 104 105 106 /** 107 * Type of a block that contains a DHT-NG HELLO for a peer. 108 */ 109 GNUNET_BLOCK_TYPE_DHT_HELLO = 13, 110 111 112 /** 113 * Block to store a cadet regex state 114 */ 115 GNUNET_BLOCK_TYPE_REGEX = 22, 116 117 118 /** 119 * Block to store a cadet regex accepting state 120 */ 121 GNUNET_BLOCK_TYPE_REGEX_ACCEPT = 23, 122 123 124 /** 125 * Block for testing set/consensus. If first byte of the block is non-zero, the block is considered invalid. 126 */ 127 GNUNET_BLOCK_TYPE_SET_TEST = 24, 128 129 130 /** 131 * Block type for consensus elements. Contains either special marker elements or a nested block. 132 */ 133 GNUNET_BLOCK_TYPE_CONSENSUS_ELEMENT = 25, 134 135 136 /** 137 * Block for testing set intersection. If first byte of the block is non-zero, the block is considered invalid. 138 */ 139 GNUNET_BLOCK_TYPE_SETI_TEST = 26, 140 141 142 /** 143 * Block for testing set union. If first byte of the block is non-zero, the block is considered invalid. 144 */ 145 GNUNET_BLOCK_TYPE_SETU_TEST = 27, 146 }; 147 148 149 #if 0 /* keep Emacsens' auto-indent happy */ 150 { 151 #endif 152 #ifdef __cplusplus 153 } 154 #endif 155 156 #endif