static int serialize_fc_pci(const struct serdes * instance, char * data, const struct pci * pci, int offset) { seq_num_t seq; struct dt_cons * dt_cons; ASSERT(instance); ASSERT(data); ASSERT(pci); ASSERT(offset); dt_cons = instance->dt_cons; ASSERT(dt_cons); /* * Not filling in rate-based fields for now * since they are not defined as a type either * Add them when needed */ seq = pci_control_new_rt_wind_edge(pci); memcpy(data + offset, &seq, dt_cons->seq_num_length); offset += dt_cons->seq_num_length; seq = pci_control_my_left_wind_edge(pci); memcpy(data + offset, &seq, dt_cons->seq_num_length); offset += dt_cons->seq_num_length; seq = pci_control_my_rt_wind_edge(pci); memcpy(data + offset, &seq, dt_cons->seq_num_length); return 0; }
static int serialize_cc_pci(const struct serdes * instance, char * data, const struct pci * pci, int offset) { seq_num_t seq; struct dt_cons * dt_cons; ASSERT(instance); ASSERT(data); ASSERT(pci); ASSERT(offset); dt_cons = instance->dt_cons; ASSERT(dt_cons); seq = pci_control_last_seq_num_rcvd(pci); memcpy(data + offset, &seq, CTRL_SEQ_NR); seq = pci_control_new_left_wind_edge(pci); memcpy(data + offset, &seq, dt_cons->seq_num_length); offset += dt_cons->seq_num_length; seq = pci_control_new_rt_wind_edge(pci); memcpy(data + offset, &seq, dt_cons->seq_num_length); offset += dt_cons->seq_num_length; seq = pci_control_my_left_wind_edge(pci); memcpy(data + offset, &seq, dt_cons->seq_num_length); offset += dt_cons->seq_num_length; seq = pci_control_my_rt_wind_edge(pci); memcpy(data + offset, &seq, dt_cons->seq_num_length); offset += dt_cons->seq_num_length; /* Add MyRcvRate here in the future */ return 0; }
void dump_we(struct dtcp * dtcp, struct pci * pci) { struct dtp * dtp; seq_num_t snd_rt_we; seq_num_t snd_lf_we; seq_num_t rcv_rt_we; seq_num_t rcv_lf_we; seq_num_t new_rt_we; seq_num_t new_lf_we; seq_num_t pci_seqn; seq_num_t my_rt_we; seq_num_t my_lf_we; seq_num_t ack; ASSERT(dtcp); ASSERT(pci); dtp = dt_dtp(dtcp->parent); ASSERT(dtp); snd_rt_we = snd_rt_wind_edge(dtcp); snd_lf_we = dtcp_snd_lf_win(dtcp); rcv_rt_we = rcvr_rt_wind_edge(dtcp); rcv_lf_we = dt_sv_rcv_lft_win(dtcp->parent); new_rt_we = pci_control_new_rt_wind_edge(pci); new_lf_we = pci_control_new_left_wind_edge(pci); my_lf_we = pci_control_my_left_wind_edge(pci); my_rt_we = pci_control_my_rt_wind_edge(pci); pci_seqn = pci_sequence_number_get(pci); ack = pci_control_ack_seq_num(pci); LOG_DBG("SEQN: %u N/Ack: %u SndRWE: %u SndLWE: %u " "RcvRWE: %u RcvLWE: %u " "newRWE: %u newLWE: %u " "myRWE: %u myLWE: %u", pci_seqn, ack, snd_rt_we, snd_lf_we, rcv_rt_we, rcv_lf_we, new_rt_we, new_lf_we, my_rt_we, my_lf_we); }