tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

conflux.h (21393B)


      1 /* conflux.h -- generated by Trunnel v1.5.3.
      2 * https://gitweb.torproject.org/trunnel.git
      3 * You probably shouldn't edit this file.
      4 */
      5 #ifndef TRUNNEL_CONFLUX_H
      6 #define TRUNNEL_CONFLUX_H
      7 
      8 #include <stdint.h>
      9 #include "trunnel.h"
     10 
     11 #define CONFLUX_UX_NO_OPINION 0
     12 #define CONFLUX_UX_MIN_LATENCY 1
     13 #define CONFLUX_UX_LOW_MEM_LATENCY 2
     14 #define CONFLUX_UX_HIGH_THROUGHPUT 3
     15 #define CONFLUX_UX_LOW_MEM_THROUGHPUT 4
     16 #if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_TRN_CELL_CONFLUX_LINK)
     17 struct trn_cell_conflux_link_st {
     18  uint8_t version;
     19  TRUNNEL_DYNARRAY_HEAD(, uint8_t) payload;
     20  uint8_t trunnel_error_code_;
     21 };
     22 #endif
     23 typedef struct trn_cell_conflux_link_st trn_cell_conflux_link_t;
     24 #if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_TRN_CELL_CONFLUX_LINK_PAYLOAD_V1)
     25 struct trn_cell_conflux_link_payload_v1_st {
     26  uint8_t nonce[32];
     27  uint64_t last_seqno_sent;
     28  uint64_t last_seqno_recv;
     29  uint8_t desired_ux;
     30  uint8_t trunnel_error_code_;
     31 };
     32 #endif
     33 typedef struct trn_cell_conflux_link_payload_v1_st trn_cell_conflux_link_payload_v1_t;
     34 #if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_TRN_CELL_CONFLUX_LINKED)
     35 struct trn_cell_conflux_linked_st {
     36  uint8_t version;
     37  TRUNNEL_DYNARRAY_HEAD(, uint8_t) payload;
     38  uint8_t trunnel_error_code_;
     39 };
     40 #endif
     41 typedef struct trn_cell_conflux_linked_st trn_cell_conflux_linked_t;
     42 #if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_TRN_CELL_CONFLUX_LINKED_ACK)
     43 struct trn_cell_conflux_linked_ack_st {
     44  TRUNNEL_DYNARRAY_HEAD(, uint8_t) payload;
     45  uint8_t trunnel_error_code_;
     46 };
     47 #endif
     48 typedef struct trn_cell_conflux_linked_ack_st trn_cell_conflux_linked_ack_t;
     49 #if !defined(TRUNNEL_OPAQUE) && !defined(TRUNNEL_OPAQUE_TRN_CELL_CONFLUX_SWITCH)
     50 struct trn_cell_conflux_switch_st {
     51  uint32_t seqnum;
     52  uint8_t trunnel_error_code_;
     53 };
     54 #endif
     55 typedef struct trn_cell_conflux_switch_st trn_cell_conflux_switch_t;
     56 /** Return a newly allocated trn_cell_conflux_link with all elements
     57 * set to zero.
     58 */
     59 trn_cell_conflux_link_t *trn_cell_conflux_link_new(void);
     60 /** Release all storage held by the trn_cell_conflux_link in 'victim'.
     61 * (Do nothing if 'victim' is NULL.)
     62 */
     63 void trn_cell_conflux_link_free(trn_cell_conflux_link_t *victim);
     64 /** Try to parse a trn_cell_conflux_link from the buffer in 'input',
     65 * using up to 'len_in' bytes from the input buffer. On success,
     66 * return the number of bytes consumed and set *output to the newly
     67 * allocated trn_cell_conflux_link_t. On failure, return -2 if the
     68 * input appears truncated, and -1 if the input is otherwise invalid.
     69 */
     70 ssize_t trn_cell_conflux_link_parse(trn_cell_conflux_link_t **output, const uint8_t *input, const size_t len_in);
     71 /** Return the number of bytes we expect to need to encode the
     72 * trn_cell_conflux_link in 'obj'. On failure, return a negative
     73 * value. Note that this value may be an overestimate, and can even be
     74 * an underestimate for certain unencodeable objects.
     75 */
     76 ssize_t trn_cell_conflux_link_encoded_len(const trn_cell_conflux_link_t *obj);
     77 /** Try to encode the trn_cell_conflux_link from 'input' into the
     78 * buffer at 'output', using up to 'avail' bytes of the output buffer.
     79 * On success, return the number of bytes used. On failure, return -2
     80 * if the buffer was not long enough, and -1 if the input was invalid.
     81 */
     82 ssize_t trn_cell_conflux_link_encode(uint8_t *output, size_t avail, const trn_cell_conflux_link_t *input);
     83 /** Check whether the internal state of the trn_cell_conflux_link in
     84 * 'obj' is consistent. Return NULL if it is, and a short message if
     85 * it is not.
     86 */
     87 const char *trn_cell_conflux_link_check(const trn_cell_conflux_link_t *obj);
     88 /** Clear any errors that were set on the object 'obj' by its setter
     89 * functions. Return true iff errors were cleared.
     90 */
     91 int trn_cell_conflux_link_clear_errors(trn_cell_conflux_link_t *obj);
     92 /** Return the value of the version field of the
     93 * trn_cell_conflux_link_t in 'inp'
     94 */
     95 uint8_t trn_cell_conflux_link_get_version(const trn_cell_conflux_link_t *inp);
     96 /** Set the value of the version field of the trn_cell_conflux_link_t
     97 * in 'inp' to 'val'. Return 0 on success; return -1 and set the error
     98 * code on 'inp' on failure.
     99 */
    100 int trn_cell_conflux_link_set_version(trn_cell_conflux_link_t *inp, uint8_t val);
    101 /** Return the length of the dynamic array holding the payload field
    102 * of the trn_cell_conflux_link_t in 'inp'.
    103 */
    104 size_t trn_cell_conflux_link_getlen_payload(const trn_cell_conflux_link_t *inp);
    105 /** Return the element at position 'idx' of the dynamic array field
    106 * payload of the trn_cell_conflux_link_t in 'inp'.
    107 */
    108 uint8_t trn_cell_conflux_link_get_payload(trn_cell_conflux_link_t *inp, size_t idx);
    109 /** As trn_cell_conflux_link_get_payload, but take and return a const
    110 * pointer
    111 */
    112 uint8_t trn_cell_conflux_link_getconst_payload(const trn_cell_conflux_link_t *inp, size_t idx);
    113 /** Change the element at position 'idx' of the dynamic array field
    114 * payload of the trn_cell_conflux_link_t in 'inp', so that it will
    115 * hold the value 'elt'.
    116 */
    117 int trn_cell_conflux_link_set_payload(trn_cell_conflux_link_t *inp, size_t idx, uint8_t elt);
    118 /** Append a new element 'elt' to the dynamic array field payload of
    119 * the trn_cell_conflux_link_t in 'inp'.
    120 */
    121 int trn_cell_conflux_link_add_payload(trn_cell_conflux_link_t *inp, uint8_t elt);
    122 /** Return a pointer to the variable-length array field payload of
    123 * 'inp'.
    124 */
    125 uint8_t * trn_cell_conflux_link_getarray_payload(trn_cell_conflux_link_t *inp);
    126 /** As trn_cell_conflux_link_get_payload, but take and return a const
    127 * pointer
    128 */
    129 const uint8_t  * trn_cell_conflux_link_getconstarray_payload(const trn_cell_conflux_link_t *inp);
    130 /** Change the length of the variable-length array field payload of
    131 * 'inp' to 'newlen'.Fill extra elements with 0. Return 0 on success;
    132 * return -1 and set the error code on 'inp' on failure.
    133 */
    134 int trn_cell_conflux_link_setlen_payload(trn_cell_conflux_link_t *inp, size_t newlen);
    135 /** Return a newly allocated trn_cell_conflux_link_payload_v1 with all
    136 * elements set to zero.
    137 */
    138 trn_cell_conflux_link_payload_v1_t *trn_cell_conflux_link_payload_v1_new(void);
    139 /** Release all storage held by the trn_cell_conflux_link_payload_v1
    140 * in 'victim'. (Do nothing if 'victim' is NULL.)
    141 */
    142 void trn_cell_conflux_link_payload_v1_free(trn_cell_conflux_link_payload_v1_t *victim);
    143 /** Try to parse a trn_cell_conflux_link_payload_v1 from the buffer in
    144 * 'input', using up to 'len_in' bytes from the input buffer. On
    145 * success, return the number of bytes consumed and set *output to the
    146 * newly allocated trn_cell_conflux_link_payload_v1_t. On failure,
    147 * return -2 if the input appears truncated, and -1 if the input is
    148 * otherwise invalid.
    149 */
    150 ssize_t trn_cell_conflux_link_payload_v1_parse(trn_cell_conflux_link_payload_v1_t **output, const uint8_t *input, const size_t len_in);
    151 /** Return the number of bytes we expect to need to encode the
    152 * trn_cell_conflux_link_payload_v1 in 'obj'. On failure, return a
    153 * negative value. Note that this value may be an overestimate, and
    154 * can even be an underestimate for certain unencodeable objects.
    155 */
    156 ssize_t trn_cell_conflux_link_payload_v1_encoded_len(const trn_cell_conflux_link_payload_v1_t *obj);
    157 /** Try to encode the trn_cell_conflux_link_payload_v1 from 'input'
    158 * into the buffer at 'output', using up to 'avail' bytes of the
    159 * output buffer. On success, return the number of bytes used. On
    160 * failure, return -2 if the buffer was not long enough, and -1 if the
    161 * input was invalid.
    162 */
    163 ssize_t trn_cell_conflux_link_payload_v1_encode(uint8_t *output, size_t avail, const trn_cell_conflux_link_payload_v1_t *input);
    164 /** Check whether the internal state of the
    165 * trn_cell_conflux_link_payload_v1 in 'obj' is consistent. Return
    166 * NULL if it is, and a short message if it is not.
    167 */
    168 const char *trn_cell_conflux_link_payload_v1_check(const trn_cell_conflux_link_payload_v1_t *obj);
    169 /** Clear any errors that were set on the object 'obj' by its setter
    170 * functions. Return true iff errors were cleared.
    171 */
    172 int trn_cell_conflux_link_payload_v1_clear_errors(trn_cell_conflux_link_payload_v1_t *obj);
    173 /** Return the (constant) length of the array holding the nonce field
    174 * of the trn_cell_conflux_link_payload_v1_t in 'inp'.
    175 */
    176 size_t trn_cell_conflux_link_payload_v1_getlen_nonce(const trn_cell_conflux_link_payload_v1_t *inp);
    177 /** Return the element at position 'idx' of the fixed array field
    178 * nonce of the trn_cell_conflux_link_payload_v1_t in 'inp'.
    179 */
    180 uint8_t trn_cell_conflux_link_payload_v1_get_nonce(trn_cell_conflux_link_payload_v1_t *inp, size_t idx);
    181 /** As trn_cell_conflux_link_payload_v1_get_nonce, but take and return
    182 * a const pointer
    183 */
    184 uint8_t trn_cell_conflux_link_payload_v1_getconst_nonce(const trn_cell_conflux_link_payload_v1_t *inp, size_t idx);
    185 /** Change the element at position 'idx' of the fixed array field
    186 * nonce of the trn_cell_conflux_link_payload_v1_t in 'inp', so that
    187 * it will hold the value 'elt'.
    188 */
    189 int trn_cell_conflux_link_payload_v1_set_nonce(trn_cell_conflux_link_payload_v1_t *inp, size_t idx, uint8_t elt);
    190 /** Return a pointer to the 32-element array field nonce of 'inp'.
    191 */
    192 uint8_t * trn_cell_conflux_link_payload_v1_getarray_nonce(trn_cell_conflux_link_payload_v1_t *inp);
    193 /** As trn_cell_conflux_link_payload_v1_get_nonce, but take and return
    194 * a const pointer
    195 */
    196 const uint8_t  * trn_cell_conflux_link_payload_v1_getconstarray_nonce(const trn_cell_conflux_link_payload_v1_t *inp);
    197 /** Return the value of the last_seqno_sent field of the
    198 * trn_cell_conflux_link_payload_v1_t in 'inp'
    199 */
    200 uint64_t trn_cell_conflux_link_payload_v1_get_last_seqno_sent(const trn_cell_conflux_link_payload_v1_t *inp);
    201 /** Set the value of the last_seqno_sent field of the
    202 * trn_cell_conflux_link_payload_v1_t in 'inp' to 'val'. Return 0 on
    203 * success; return -1 and set the error code on 'inp' on failure.
    204 */
    205 int trn_cell_conflux_link_payload_v1_set_last_seqno_sent(trn_cell_conflux_link_payload_v1_t *inp, uint64_t val);
    206 /** Return the value of the last_seqno_recv field of the
    207 * trn_cell_conflux_link_payload_v1_t in 'inp'
    208 */
    209 uint64_t trn_cell_conflux_link_payload_v1_get_last_seqno_recv(const trn_cell_conflux_link_payload_v1_t *inp);
    210 /** Set the value of the last_seqno_recv field of the
    211 * trn_cell_conflux_link_payload_v1_t in 'inp' to 'val'. Return 0 on
    212 * success; return -1 and set the error code on 'inp' on failure.
    213 */
    214 int trn_cell_conflux_link_payload_v1_set_last_seqno_recv(trn_cell_conflux_link_payload_v1_t *inp, uint64_t val);
    215 /** Return the value of the desired_ux field of the
    216 * trn_cell_conflux_link_payload_v1_t in 'inp'
    217 */
    218 uint8_t trn_cell_conflux_link_payload_v1_get_desired_ux(const trn_cell_conflux_link_payload_v1_t *inp);
    219 /** Set the value of the desired_ux field of the
    220 * trn_cell_conflux_link_payload_v1_t in 'inp' to 'val'. Return 0 on
    221 * success; return -1 and set the error code on 'inp' on failure.
    222 */
    223 int trn_cell_conflux_link_payload_v1_set_desired_ux(trn_cell_conflux_link_payload_v1_t *inp, uint8_t val);
    224 /** Return a newly allocated trn_cell_conflux_linked with all elements
    225 * set to zero.
    226 */
    227 trn_cell_conflux_linked_t *trn_cell_conflux_linked_new(void);
    228 /** Release all storage held by the trn_cell_conflux_linked in
    229 * 'victim'. (Do nothing if 'victim' is NULL.)
    230 */
    231 void trn_cell_conflux_linked_free(trn_cell_conflux_linked_t *victim);
    232 /** Try to parse a trn_cell_conflux_linked from the buffer in 'input',
    233 * using up to 'len_in' bytes from the input buffer. On success,
    234 * return the number of bytes consumed and set *output to the newly
    235 * allocated trn_cell_conflux_linked_t. On failure, return -2 if the
    236 * input appears truncated, and -1 if the input is otherwise invalid.
    237 */
    238 ssize_t trn_cell_conflux_linked_parse(trn_cell_conflux_linked_t **output, const uint8_t *input, const size_t len_in);
    239 /** Return the number of bytes we expect to need to encode the
    240 * trn_cell_conflux_linked in 'obj'. On failure, return a negative
    241 * value. Note that this value may be an overestimate, and can even be
    242 * an underestimate for certain unencodeable objects.
    243 */
    244 ssize_t trn_cell_conflux_linked_encoded_len(const trn_cell_conflux_linked_t *obj);
    245 /** Try to encode the trn_cell_conflux_linked from 'input' into the
    246 * buffer at 'output', using up to 'avail' bytes of the output buffer.
    247 * On success, return the number of bytes used. On failure, return -2
    248 * if the buffer was not long enough, and -1 if the input was invalid.
    249 */
    250 ssize_t trn_cell_conflux_linked_encode(uint8_t *output, size_t avail, const trn_cell_conflux_linked_t *input);
    251 /** Check whether the internal state of the trn_cell_conflux_linked in
    252 * 'obj' is consistent. Return NULL if it is, and a short message if
    253 * it is not.
    254 */
    255 const char *trn_cell_conflux_linked_check(const trn_cell_conflux_linked_t *obj);
    256 /** Clear any errors that were set on the object 'obj' by its setter
    257 * functions. Return true iff errors were cleared.
    258 */
    259 int trn_cell_conflux_linked_clear_errors(trn_cell_conflux_linked_t *obj);
    260 /** Return the value of the version field of the
    261 * trn_cell_conflux_linked_t in 'inp'
    262 */
    263 uint8_t trn_cell_conflux_linked_get_version(const trn_cell_conflux_linked_t *inp);
    264 /** Set the value of the version field of the
    265 * trn_cell_conflux_linked_t in 'inp' to 'val'. Return 0 on success;
    266 * return -1 and set the error code on 'inp' on failure.
    267 */
    268 int trn_cell_conflux_linked_set_version(trn_cell_conflux_linked_t *inp, uint8_t val);
    269 /** Return the length of the dynamic array holding the payload field
    270 * of the trn_cell_conflux_linked_t in 'inp'.
    271 */
    272 size_t trn_cell_conflux_linked_getlen_payload(const trn_cell_conflux_linked_t *inp);
    273 /** Return the element at position 'idx' of the dynamic array field
    274 * payload of the trn_cell_conflux_linked_t in 'inp'.
    275 */
    276 uint8_t trn_cell_conflux_linked_get_payload(trn_cell_conflux_linked_t *inp, size_t idx);
    277 /** As trn_cell_conflux_linked_get_payload, but take and return a
    278 * const pointer
    279 */
    280 uint8_t trn_cell_conflux_linked_getconst_payload(const trn_cell_conflux_linked_t *inp, size_t idx);
    281 /** Change the element at position 'idx' of the dynamic array field
    282 * payload of the trn_cell_conflux_linked_t in 'inp', so that it will
    283 * hold the value 'elt'.
    284 */
    285 int trn_cell_conflux_linked_set_payload(trn_cell_conflux_linked_t *inp, size_t idx, uint8_t elt);
    286 /** Append a new element 'elt' to the dynamic array field payload of
    287 * the trn_cell_conflux_linked_t in 'inp'.
    288 */
    289 int trn_cell_conflux_linked_add_payload(trn_cell_conflux_linked_t *inp, uint8_t elt);
    290 /** Return a pointer to the variable-length array field payload of
    291 * 'inp'.
    292 */
    293 uint8_t * trn_cell_conflux_linked_getarray_payload(trn_cell_conflux_linked_t *inp);
    294 /** As trn_cell_conflux_linked_get_payload, but take and return a
    295 * const pointer
    296 */
    297 const uint8_t  * trn_cell_conflux_linked_getconstarray_payload(const trn_cell_conflux_linked_t *inp);
    298 /** Change the length of the variable-length array field payload of
    299 * 'inp' to 'newlen'.Fill extra elements with 0. Return 0 on success;
    300 * return -1 and set the error code on 'inp' on failure.
    301 */
    302 int trn_cell_conflux_linked_setlen_payload(trn_cell_conflux_linked_t *inp, size_t newlen);
    303 /** Return a newly allocated trn_cell_conflux_linked_ack with all
    304 * elements set to zero.
    305 */
    306 trn_cell_conflux_linked_ack_t *trn_cell_conflux_linked_ack_new(void);
    307 /** Release all storage held by the trn_cell_conflux_linked_ack in
    308 * 'victim'. (Do nothing if 'victim' is NULL.)
    309 */
    310 void trn_cell_conflux_linked_ack_free(trn_cell_conflux_linked_ack_t *victim);
    311 /** Try to parse a trn_cell_conflux_linked_ack from the buffer in
    312 * 'input', using up to 'len_in' bytes from the input buffer. On
    313 * success, return the number of bytes consumed and set *output to the
    314 * newly allocated trn_cell_conflux_linked_ack_t. On failure, return
    315 * -2 if the input appears truncated, and -1 if the input is otherwise
    316 * invalid.
    317 */
    318 ssize_t trn_cell_conflux_linked_ack_parse(trn_cell_conflux_linked_ack_t **output, const uint8_t *input, const size_t len_in);
    319 /** Return the number of bytes we expect to need to encode the
    320 * trn_cell_conflux_linked_ack in 'obj'. On failure, return a negative
    321 * value. Note that this value may be an overestimate, and can even be
    322 * an underestimate for certain unencodeable objects.
    323 */
    324 ssize_t trn_cell_conflux_linked_ack_encoded_len(const trn_cell_conflux_linked_ack_t *obj);
    325 /** Try to encode the trn_cell_conflux_linked_ack from 'input' into
    326 * the buffer at 'output', using up to 'avail' bytes of the output
    327 * buffer. On success, return the number of bytes used. On failure,
    328 * return -2 if the buffer was not long enough, and -1 if the input
    329 * was invalid.
    330 */
    331 ssize_t trn_cell_conflux_linked_ack_encode(uint8_t *output, size_t avail, const trn_cell_conflux_linked_ack_t *input);
    332 /** Check whether the internal state of the
    333 * trn_cell_conflux_linked_ack in 'obj' is consistent. Return NULL if
    334 * it is, and a short message if it is not.
    335 */
    336 const char *trn_cell_conflux_linked_ack_check(const trn_cell_conflux_linked_ack_t *obj);
    337 /** Clear any errors that were set on the object 'obj' by its setter
    338 * functions. Return true iff errors were cleared.
    339 */
    340 int trn_cell_conflux_linked_ack_clear_errors(trn_cell_conflux_linked_ack_t *obj);
    341 /** Return the length of the dynamic array holding the payload field
    342 * of the trn_cell_conflux_linked_ack_t in 'inp'.
    343 */
    344 size_t trn_cell_conflux_linked_ack_getlen_payload(const trn_cell_conflux_linked_ack_t *inp);
    345 /** Return the element at position 'idx' of the dynamic array field
    346 * payload of the trn_cell_conflux_linked_ack_t in 'inp'.
    347 */
    348 uint8_t trn_cell_conflux_linked_ack_get_payload(trn_cell_conflux_linked_ack_t *inp, size_t idx);
    349 /** As trn_cell_conflux_linked_ack_get_payload, but take and return a
    350 * const pointer
    351 */
    352 uint8_t trn_cell_conflux_linked_ack_getconst_payload(const trn_cell_conflux_linked_ack_t *inp, size_t idx);
    353 /** Change the element at position 'idx' of the dynamic array field
    354 * payload of the trn_cell_conflux_linked_ack_t in 'inp', so that it
    355 * will hold the value 'elt'.
    356 */
    357 int trn_cell_conflux_linked_ack_set_payload(trn_cell_conflux_linked_ack_t *inp, size_t idx, uint8_t elt);
    358 /** Append a new element 'elt' to the dynamic array field payload of
    359 * the trn_cell_conflux_linked_ack_t in 'inp'.
    360 */
    361 int trn_cell_conflux_linked_ack_add_payload(trn_cell_conflux_linked_ack_t *inp, uint8_t elt);
    362 /** Return a pointer to the variable-length array field payload of
    363 * 'inp'.
    364 */
    365 uint8_t * trn_cell_conflux_linked_ack_getarray_payload(trn_cell_conflux_linked_ack_t *inp);
    366 /** As trn_cell_conflux_linked_ack_get_payload, but take and return a
    367 * const pointer
    368 */
    369 const uint8_t  * trn_cell_conflux_linked_ack_getconstarray_payload(const trn_cell_conflux_linked_ack_t *inp);
    370 /** Change the length of the variable-length array field payload of
    371 * 'inp' to 'newlen'.Fill extra elements with 0. Return 0 on success;
    372 * return -1 and set the error code on 'inp' on failure.
    373 */
    374 int trn_cell_conflux_linked_ack_setlen_payload(trn_cell_conflux_linked_ack_t *inp, size_t newlen);
    375 /** Return a newly allocated trn_cell_conflux_switch with all elements
    376 * set to zero.
    377 */
    378 trn_cell_conflux_switch_t *trn_cell_conflux_switch_new(void);
    379 /** Release all storage held by the trn_cell_conflux_switch in
    380 * 'victim'. (Do nothing if 'victim' is NULL.)
    381 */
    382 void trn_cell_conflux_switch_free(trn_cell_conflux_switch_t *victim);
    383 /** Try to parse a trn_cell_conflux_switch from the buffer in 'input',
    384 * using up to 'len_in' bytes from the input buffer. On success,
    385 * return the number of bytes consumed and set *output to the newly
    386 * allocated trn_cell_conflux_switch_t. On failure, return -2 if the
    387 * input appears truncated, and -1 if the input is otherwise invalid.
    388 */
    389 ssize_t trn_cell_conflux_switch_parse(trn_cell_conflux_switch_t **output, const uint8_t *input, const size_t len_in);
    390 /** Return the number of bytes we expect to need to encode the
    391 * trn_cell_conflux_switch in 'obj'. On failure, return a negative
    392 * value. Note that this value may be an overestimate, and can even be
    393 * an underestimate for certain unencodeable objects.
    394 */
    395 ssize_t trn_cell_conflux_switch_encoded_len(const trn_cell_conflux_switch_t *obj);
    396 /** Try to encode the trn_cell_conflux_switch from 'input' into the
    397 * buffer at 'output', using up to 'avail' bytes of the output buffer.
    398 * On success, return the number of bytes used. On failure, return -2
    399 * if the buffer was not long enough, and -1 if the input was invalid.
    400 */
    401 ssize_t trn_cell_conflux_switch_encode(uint8_t *output, size_t avail, const trn_cell_conflux_switch_t *input);
    402 /** Check whether the internal state of the trn_cell_conflux_switch in
    403 * 'obj' is consistent. Return NULL if it is, and a short message if
    404 * it is not.
    405 */
    406 const char *trn_cell_conflux_switch_check(const trn_cell_conflux_switch_t *obj);
    407 /** Clear any errors that were set on the object 'obj' by its setter
    408 * functions. Return true iff errors were cleared.
    409 */
    410 int trn_cell_conflux_switch_clear_errors(trn_cell_conflux_switch_t *obj);
    411 /** Return the value of the seqnum field of the
    412 * trn_cell_conflux_switch_t in 'inp'
    413 */
    414 uint32_t trn_cell_conflux_switch_get_seqnum(const trn_cell_conflux_switch_t *inp);
    415 /** Set the value of the seqnum field of the trn_cell_conflux_switch_t
    416 * in 'inp' to 'val'. Return 0 on success; return -1 and set the error
    417 * code on 'inp' on failure.
    418 */
    419 int trn_cell_conflux_switch_set_seqnum(trn_cell_conflux_switch_t *inp, uint32_t val);
    420 
    421 
    422 #endif