static int default_transmission_control(struct dtp_ps * ps, struct pdu * pdu) { struct dtp * dtp = ps->dm; struct dt * dt; struct efcp * efcp; if (!dtp) { LOG_ERR("No instance passed, cannot run policy"); pdu_destroy(pdu); return -1; } dt = dtp_dt(dtp); if (!dt) { LOG_ERR("Passed instance has no parent, cannot run policy"); pdu_destroy(pdu); return -1; } efcp = dt_efcp(dt); if (!efcp) { LOG_ERR("Passed instance has no EFCP, cannot run policy"); pdu_destroy(pdu); return -1; } /* Post SDU to RMT */ LOG_DBG("defaultTxPolicy - sending to rmt"); if (dtp_sv_max_seq_nr_set(dtp, pci_sequence_number_get(pdu_pci_get_ro( pdu)))) LOG_ERR("Problems setting max sequence number received " "in default_transmission"); LOG_DBG("local_soft_irq_pending: %d", local_softirq_pending()); return common_efcp_pdu_send(efcp, dtp_rmt(dtp), pci_destination(pdu_pci_get_ro(pdu)), pci_qos_id(pdu_pci_get_ro(pdu)), pdu); }
int dtcp_pdu_send(struct dtcp * dtcp, struct pdu * pdu) { struct efcp * efcp; ASSERT(dtcp); ASSERT(dtcp->parent); efcp = dt_efcp(dtcp->parent); if (!efcp) { LOG_ERR("Passed instance has no EFCP, dtcp_pdu_send bailing out"); pdu_destroy(pdu); return -1; } return common_efcp_pdu_send(efcp, dtcp->rmt, efcp_dst_addr(efcp), efcp_qos_id(efcp), pdu); }