ext_msg
EXT_MSG ext_msg;
(u_int16_t *) & ext_msg, sizeof(EXT_MSG) >> 1);
if (ext_msg.msg_type == MS_EXTEND &&
ext_msg.msg_req == MS_SDTR_CODE &&
ext_msg.msg_len == MS_SDTR_LEN) {
if (ext_msg.req_ack_offset > ASC_SYN_MAX_OFFSET) {
ext_msg.req_ack_offset = ASC_SYN_MAX_OFFSET;
if ((ext_msg.xfer_period <
(ext_msg.xfer_period >
ext_msg.xfer_period = sc->sdtr_period_tbl[sc->host_init_sdtr_index];
sdtr_data = AscCalSDTRData(sc, ext_msg.xfer_period,
ext_msg.req_ack_offset);
if (ext_msg.req_ack_offset == 0) {
sdtr_data = AscCalSDTRData(sc, ext_msg.xfer_period,
ext_msg.req_ack_offset);
AscMsgOutSDTR(sc, ext_msg.xfer_period,
ext_msg.req_ack_offset);
sdtr_data = AscCalSDTRData(sc, ext_msg.xfer_period,
ext_msg.req_ack_offset);
} else if (ext_msg.msg_type == MS_EXTEND &&
ext_msg.msg_req == MS_WDTR_CODE &&
ext_msg.msg_len == MS_WDTR_LEN) {
ext_msg.wdtr_width = 0;
(u_int16_t *) & ext_msg, sizeof(EXT_MSG) >> 1);
ext_msg.msg_type = M1_MSG_REJECT;
(u_int16_t *) & ext_msg, sizeof(EXT_MSG) >> 1);
p->capa.peer.ext_msg) {
if (p->capa.peer.ext_msg)
p->capa.neg.ext_msg) {
if (p->capa.neg.ext_msg)
!capa->ext_msg)
json_do_bool("extended_message", capa->ext_msg);
int8_t ext_msg; /* Extended Msg, RFC 8654 */
curpeer->conf.capabilities.ext_msg = $4;
if (p->capabilities.ext_msg == 2)
else if (p->capabilities.ext_msg == 1)
return peer->capa.ext_msg;
p->capa.neg.ext_msg =
(p->capa.ann.ext_msg && p->capa.peer.ext_msg) != 0;
if (p->capa.ann.ext_msg == 2 && p->capa.neg.ext_msg == 0) {
if (p->capa.ann.ext_msg) /* no data */
if (p->capa.neg.ext_msg)
if (peer->capa.ann.ext_msg)
peer->capa.peer.ext_msg = 1;