diff --git a/src/lte/bindings/modulegen__gcc_ILP32.py b/src/lte/bindings/modulegen__gcc_ILP32.py index c547e2072..3a5d93458 100644 --- a/src/lte/bindings/modulegen__gcc_ILP32.py +++ b/src/lte/bindings/modulegen__gcc_ILP32.py @@ -6087,15 +6087,15 @@ def register_Ns3LteMacSapUser_methods(root_module, cls): 'void', [], is_pure_virtual=True, is_virtual=True) - ## lte-mac-sap.h (module 'lte'): void ns3::LteMacSapUser::NotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId) [member function] + ## lte-mac-sap.h (module 'lte'): void ns3::LteMacSapUser::NotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('NotifyTxOpportunity', 'void', - [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId')], + [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId'), param('uint8_t', 'componentCarrierId'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_pure_virtual=True, is_virtual=True) - ## lte-mac-sap.h (module 'lte'): void ns3::LteMacSapUser::ReceivePdu(ns3::Ptr p) [member function] + ## lte-mac-sap.h (module 'lte'): void ns3::LteMacSapUser::ReceivePdu(ns3::Ptr p, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('ReceivePdu', 'void', - [param('ns3::Ptr< ns3::Packet >', 'p')], + [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_pure_virtual=True, is_virtual=True) return @@ -17202,15 +17202,15 @@ def register_Ns3LteRlc_methods(root_module, cls): 'void', [], is_pure_virtual=True, visibility='protected', is_virtual=True) - ## lte-rlc.h (module 'lte'): void ns3::LteRlc::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId) [member function] + ## lte-rlc.h (module 'lte'): void ns3::LteRlc::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoNotifyTxOpportunity', 'void', - [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId')], + [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId'), param('uint8_t', 'componentCarrierId'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_pure_virtual=True, visibility='protected', is_virtual=True) - ## lte-rlc.h (module 'lte'): void ns3::LteRlc::DoReceivePdu(ns3::Ptr p) [member function] + ## lte-rlc.h (module 'lte'): void ns3::LteRlc::DoReceivePdu(ns3::Ptr p, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoReceivePdu', 'void', - [param('ns3::Ptr< ns3::Packet >', 'p')], + [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_pure_virtual=True, visibility='protected', is_virtual=True) ## lte-rlc.h (module 'lte'): void ns3::LteRlc::DoTransmitPdcpPdu(ns3::Ptr p) [member function] cls.add_method('DoTransmitPdcpPdu', @@ -17234,15 +17234,15 @@ def register_Ns3LteRlcAm_methods(root_module, cls): 'void', [], is_virtual=True) - ## lte-rlc-am.h (module 'lte'): void ns3::LteRlcAm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId) [member function] + ## lte-rlc-am.h (module 'lte'): void ns3::LteRlcAm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoNotifyTxOpportunity', 'void', - [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId')], + [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId'), param('uint8_t', 'componentCarrierId'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) - ## lte-rlc-am.h (module 'lte'): void ns3::LteRlcAm::DoReceivePdu(ns3::Ptr p) [member function] + ## lte-rlc-am.h (module 'lte'): void ns3::LteRlcAm::DoReceivePdu(ns3::Ptr p, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoReceivePdu', 'void', - [param('ns3::Ptr< ns3::Packet >', 'p')], + [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) ## lte-rlc-am.h (module 'lte'): void ns3::LteRlcAm::DoTransmitPdcpPdu(ns3::Ptr p) [member function] cls.add_method('DoTransmitPdcpPdu', @@ -17276,15 +17276,15 @@ def register_Ns3LteRlcSm_methods(root_module, cls): 'void', [], is_virtual=True) - ## lte-rlc.h (module 'lte'): void ns3::LteRlcSm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId) [member function] + ## lte-rlc.h (module 'lte'): void ns3::LteRlcSm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoNotifyTxOpportunity', 'void', - [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId')], + [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId'), param('uint8_t', 'componentCarrierId'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) - ## lte-rlc.h (module 'lte'): void ns3::LteRlcSm::DoReceivePdu(ns3::Ptr p) [member function] + ## lte-rlc.h (module 'lte'): void ns3::LteRlcSm::DoReceivePdu(ns3::Ptr p, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoReceivePdu', 'void', - [param('ns3::Ptr< ns3::Packet >', 'p')], + [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) ## lte-rlc.h (module 'lte'): void ns3::LteRlcSm::DoTransmitPdcpPdu(ns3::Ptr p) [member function] cls.add_method('DoTransmitPdcpPdu', @@ -17313,15 +17313,15 @@ def register_Ns3LteRlcTm_methods(root_module, cls): 'void', [], is_virtual=True) - ## lte-rlc-tm.h (module 'lte'): void ns3::LteRlcTm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId) [member function] + ## lte-rlc-tm.h (module 'lte'): void ns3::LteRlcTm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoNotifyTxOpportunity', 'void', - [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId')], + [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId'), param('uint8_t', 'componentCarrierId'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) - ## lte-rlc-tm.h (module 'lte'): void ns3::LteRlcTm::DoReceivePdu(ns3::Ptr p) [member function] + ## lte-rlc-tm.h (module 'lte'): void ns3::LteRlcTm::DoReceivePdu(ns3::Ptr p, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoReceivePdu', 'void', - [param('ns3::Ptr< ns3::Packet >', 'p')], + [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) ## lte-rlc-tm.h (module 'lte'): void ns3::LteRlcTm::DoTransmitPdcpPdu(ns3::Ptr p) [member function] cls.add_method('DoTransmitPdcpPdu', @@ -17350,15 +17350,15 @@ def register_Ns3LteRlcUm_methods(root_module, cls): 'void', [], is_virtual=True) - ## lte-rlc-um.h (module 'lte'): void ns3::LteRlcUm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId) [member function] + ## lte-rlc-um.h (module 'lte'): void ns3::LteRlcUm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoNotifyTxOpportunity', 'void', - [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId')], + [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId'), param('uint8_t', 'componentCarrierId'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) - ## lte-rlc-um.h (module 'lte'): void ns3::LteRlcUm::DoReceivePdu(ns3::Ptr p) [member function] + ## lte-rlc-um.h (module 'lte'): void ns3::LteRlcUm::DoReceivePdu(ns3::Ptr p, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoReceivePdu', 'void', - [param('ns3::Ptr< ns3::Packet >', 'p')], + [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) ## lte-rlc-um.h (module 'lte'): void ns3::LteRlcUm::DoTransmitPdcpPdu(ns3::Ptr p) [member function] cls.add_method('DoTransmitPdcpPdu', diff --git a/src/lte/bindings/modulegen__gcc_LP64.py b/src/lte/bindings/modulegen__gcc_LP64.py index f7616a259..2576c9d38 100644 --- a/src/lte/bindings/modulegen__gcc_LP64.py +++ b/src/lte/bindings/modulegen__gcc_LP64.py @@ -6087,15 +6087,15 @@ def register_Ns3LteMacSapUser_methods(root_module, cls): 'void', [], is_pure_virtual=True, is_virtual=True) - ## lte-mac-sap.h (module 'lte'): void ns3::LteMacSapUser::NotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId) [member function] + ## lte-mac-sap.h (module 'lte'): void ns3::LteMacSapUser::NotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('NotifyTxOpportunity', 'void', - [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId')], + [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId'), param('uint8_t', 'componentCarrierId'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_pure_virtual=True, is_virtual=True) - ## lte-mac-sap.h (module 'lte'): void ns3::LteMacSapUser::ReceivePdu(ns3::Ptr p) [member function] + ## lte-mac-sap.h (module 'lte'): void ns3::LteMacSapUser::ReceivePdu(ns3::Ptr p, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('ReceivePdu', 'void', - [param('ns3::Ptr< ns3::Packet >', 'p')], + [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_pure_virtual=True, is_virtual=True) return @@ -17202,15 +17202,15 @@ def register_Ns3LteRlc_methods(root_module, cls): 'void', [], is_pure_virtual=True, visibility='protected', is_virtual=True) - ## lte-rlc.h (module 'lte'): void ns3::LteRlc::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId) [member function] + ## lte-rlc.h (module 'lte'): void ns3::LteRlc::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoNotifyTxOpportunity', 'void', - [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId')], + [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId'), param('uint8_t', 'componentCarrierId'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_pure_virtual=True, visibility='protected', is_virtual=True) - ## lte-rlc.h (module 'lte'): void ns3::LteRlc::DoReceivePdu(ns3::Ptr p) [member function] + ## lte-rlc.h (module 'lte'): void ns3::LteRlc::DoReceivePdu(ns3::Ptr p, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoReceivePdu', 'void', - [param('ns3::Ptr< ns3::Packet >', 'p')], + [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_pure_virtual=True, visibility='protected', is_virtual=True) ## lte-rlc.h (module 'lte'): void ns3::LteRlc::DoTransmitPdcpPdu(ns3::Ptr p) [member function] cls.add_method('DoTransmitPdcpPdu', @@ -17234,15 +17234,15 @@ def register_Ns3LteRlcAm_methods(root_module, cls): 'void', [], is_virtual=True) - ## lte-rlc-am.h (module 'lte'): void ns3::LteRlcAm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId) [member function] + ## lte-rlc-am.h (module 'lte'): void ns3::LteRlcAm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoNotifyTxOpportunity', 'void', - [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId')], + [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId'), param('uint8_t', 'componentCarrierId'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) - ## lte-rlc-am.h (module 'lte'): void ns3::LteRlcAm::DoReceivePdu(ns3::Ptr p) [member function] + ## lte-rlc-am.h (module 'lte'): void ns3::LteRlcAm::DoReceivePdu(ns3::Ptr p, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoReceivePdu', 'void', - [param('ns3::Ptr< ns3::Packet >', 'p')], + [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) ## lte-rlc-am.h (module 'lte'): void ns3::LteRlcAm::DoTransmitPdcpPdu(ns3::Ptr p) [member function] cls.add_method('DoTransmitPdcpPdu', @@ -17276,15 +17276,15 @@ def register_Ns3LteRlcSm_methods(root_module, cls): 'void', [], is_virtual=True) - ## lte-rlc.h (module 'lte'): void ns3::LteRlcSm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId) [member function] + ## lte-rlc.h (module 'lte'): void ns3::LteRlcSm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoNotifyTxOpportunity', 'void', - [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId')], + [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId'), param('uint8_t', 'componentCarrierId'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) - ## lte-rlc.h (module 'lte'): void ns3::LteRlcSm::DoReceivePdu(ns3::Ptr p) [member function] + ## lte-rlc.h (module 'lte'): void ns3::LteRlcSm::DoReceivePdu(ns3::Ptr p, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoReceivePdu', 'void', - [param('ns3::Ptr< ns3::Packet >', 'p')], + [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) ## lte-rlc.h (module 'lte'): void ns3::LteRlcSm::DoTransmitPdcpPdu(ns3::Ptr p) [member function] cls.add_method('DoTransmitPdcpPdu', @@ -17313,15 +17313,15 @@ def register_Ns3LteRlcTm_methods(root_module, cls): 'void', [], is_virtual=True) - ## lte-rlc-tm.h (module 'lte'): void ns3::LteRlcTm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId) [member function] + ## lte-rlc-tm.h (module 'lte'): void ns3::LteRlcTm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoNotifyTxOpportunity', 'void', - [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId')], + [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId'), param('uint8_t', 'componentCarrierId'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) - ## lte-rlc-tm.h (module 'lte'): void ns3::LteRlcTm::DoReceivePdu(ns3::Ptr p) [member function] + ## lte-rlc-tm.h (module 'lte'): void ns3::LteRlcTm::DoReceivePdu(ns3::Ptr p, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoReceivePdu', 'void', - [param('ns3::Ptr< ns3::Packet >', 'p')], + [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) ## lte-rlc-tm.h (module 'lte'): void ns3::LteRlcTm::DoTransmitPdcpPdu(ns3::Ptr p) [member function] cls.add_method('DoTransmitPdcpPdu', @@ -17350,15 +17350,15 @@ def register_Ns3LteRlcUm_methods(root_module, cls): 'void', [], is_virtual=True) - ## lte-rlc-um.h (module 'lte'): void ns3::LteRlcUm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId) [member function] + ## lte-rlc-um.h (module 'lte'): void ns3::LteRlcUm::DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoNotifyTxOpportunity', 'void', - [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId')], + [param('uint32_t', 'bytes'), param('uint8_t', 'layer'), param('uint8_t', 'harqId'), param('uint8_t', 'componentCarrierId'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) - ## lte-rlc-um.h (module 'lte'): void ns3::LteRlcUm::DoReceivePdu(ns3::Ptr p) [member function] + ## lte-rlc-um.h (module 'lte'): void ns3::LteRlcUm::DoReceivePdu(ns3::Ptr p, uint16_t rnti, uint8_t lcid) [member function] cls.add_method('DoReceivePdu', 'void', - [param('ns3::Ptr< ns3::Packet >', 'p')], + [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint16_t', 'rnti'), param('uint8_t', 'lcid')], is_virtual=True) ## lte-rlc-um.h (module 'lte'): void ns3::LteRlcUm::DoTransmitPdcpPdu(ns3::Ptr p) [member function] cls.add_method('DoTransmitPdcpPdu', diff --git a/src/lte/model/lte-enb-mac.cc b/src/lte/model/lte-enb-mac.cc index 21ef6f42d..050dbad28 100644 --- a/src/lte/model/lte-enb-mac.cc +++ b/src/lte/model/lte-enb-mac.cc @@ -731,7 +731,7 @@ LteEnbMac::DoReceivePhyPdu (Ptr p) //Receive PDU only if LCID is found if (lcidIt != rntiIt->second.end ()) { - (*lcidIt).second->ReceivePdu (p); + (*lcidIt).second->ReceivePdu (p, rnti, lcid); } } @@ -1017,7 +1017,7 @@ LteEnbMac::DoSchedDlConfigInd (FfMacSchedSapUser::SchedDlConfigIndParameters ind std::map::iterator lcidIt = rntiIt->second.find (lcid); NS_ASSERT_MSG (lcidIt != rntiIt->second.end (), "could not find LCID" << (uint32_t)lcid<<" carrier id:"<<(uint16_t)m_componentCarrierId); NS_LOG_DEBUG (this << " rnti= " << rnti << " lcid= " << (uint32_t) lcid << " layer= " << k); - (*lcidIt).second->NotifyTxOpportunity (ind.m_buildDataList.at (i).m_rlcPduList.at (j).at (k).m_size, k, ind.m_buildDataList.at (i).m_dci.m_harqProcess); + (*lcidIt).second->NotifyTxOpportunity (ind.m_buildDataList.at (i).m_rlcPduList.at (j).at (k).m_size, k, ind.m_buildDataList.at (i).m_dci.m_harqProcess, m_componentCarrierId, rnti, lcid); } else { diff --git a/src/lte/model/lte-mac-sap.h b/src/lte/model/lte-mac-sap.h index f8476dbea..0c215fbfa 100644 --- a/src/lte/model/lte-mac-sap.h +++ b/src/lte/model/lte-mac-sap.h @@ -103,7 +103,7 @@ public: * \param bytes the number of bytes to transmit * \param layer the layer of transmission (MIMO) */ - virtual void NotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) = 0; + virtual void NotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) = 0; /** * Called by the MAC to notify the RLC that an HARQ process related @@ -119,7 +119,7 @@ public: * * \param p */ - virtual void ReceivePdu (Ptr p) = 0; + virtual void ReceivePdu (Ptr p, uint16_t rnti, uint8_t lcid) = 0; }; diff --git a/src/lte/model/lte-rlc-am.cc b/src/lte/model/lte-rlc-am.cc index f60fddf99..4ff7c3030 100644 --- a/src/lte/model/lte-rlc-am.cc +++ b/src/lte/model/lte-rlc-am.cc @@ -186,7 +186,7 @@ LteRlcAm::DoTransmitPdcpPdu (Ptr p) */ void -LteRlcAm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) +LteRlcAm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) { NS_LOG_FUNCTION (this << m_rnti << (uint32_t) m_lcid << bytes); @@ -269,7 +269,7 @@ LteRlcAm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) params.lcid = m_lcid; params.layer = layer; params.harqProcessId = harqId; - params.componentCarrierId = 0; + params.componentCarrierId = componentCarrierId; m_macSapProvider->TransmitPdu (params); @@ -357,7 +357,7 @@ LteRlcAm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) params.lcid = m_lcid; params.layer = layer; params.harqProcessId = harqId; - params.componentCarrierId = 0; + params.componentCarrierId = componentCarrierId; m_macSapProvider->TransmitPdu (params); @@ -738,7 +738,7 @@ LteRlcAm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) params.lcid = m_lcid; params.layer = layer; params.harqProcessId = harqId; - params.componentCarrierId = 0; + params.componentCarrierId = componentCarrierId; m_macSapProvider->TransmitPdu (params); } @@ -751,7 +751,7 @@ LteRlcAm::DoNotifyHarqDeliveryFailure () void -LteRlcAm::DoReceivePdu (Ptr p) +LteRlcAm::DoReceivePdu (Ptr p, uint16_t rnti, uint8_t lcid) { NS_LOG_FUNCTION (this << m_rnti << (uint32_t) m_lcid << p->GetSize ()); diff --git a/src/lte/model/lte-rlc-am.h b/src/lte/model/lte-rlc-am.h index 4516d1fb9..f41841116 100644 --- a/src/lte/model/lte-rlc-am.h +++ b/src/lte/model/lte-rlc-am.h @@ -49,9 +49,9 @@ public: /** * MAC SAP */ - virtual void DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId); + virtual void DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid); virtual void DoNotifyHarqDeliveryFailure (); - virtual void DoReceivePdu (Ptr p); + virtual void DoReceivePdu (Ptr p, uint16_t rnti, uint8_t lcid); private: /** diff --git a/src/lte/model/lte-rlc-tm.cc b/src/lte/model/lte-rlc-tm.cc index b6e05f98b..dc30cc479 100644 --- a/src/lte/model/lte-rlc-tm.cc +++ b/src/lte/model/lte-rlc-tm.cc @@ -111,7 +111,7 @@ LteRlcTm::DoTransmitPdcpPdu (Ptr p) */ void -LteRlcTm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) +LteRlcTm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) { NS_LOG_FUNCTION (this << m_rnti << (uint32_t) m_lcid << bytes << (uint32_t) layer << (uint32_t) harqId); @@ -150,7 +150,7 @@ LteRlcTm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) params.lcid = m_lcid; params.layer = layer; params.harqProcessId = harqId; - params.componentCarrierId = 0; + params.componentCarrierId = componentCarrierId; m_macSapProvider->TransmitPdu (params); @@ -168,7 +168,7 @@ LteRlcTm::DoNotifyHarqDeliveryFailure () } void -LteRlcTm::DoReceivePdu (Ptr p) +LteRlcTm::DoReceivePdu (Ptr p, uint16_t rnti, uint8_t lcid) { NS_LOG_FUNCTION (this << m_rnti << (uint32_t) m_lcid << p->GetSize ()); diff --git a/src/lte/model/lte-rlc-tm.h b/src/lte/model/lte-rlc-tm.h index c2d6d5a58..fe68bd598 100644 --- a/src/lte/model/lte-rlc-tm.h +++ b/src/lte/model/lte-rlc-tm.h @@ -48,9 +48,9 @@ public: /** * MAC SAP */ - virtual void DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId); + virtual void DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid); virtual void DoNotifyHarqDeliveryFailure (); - virtual void DoReceivePdu (Ptr p); + virtual void DoReceivePdu (Ptr p, uint16_t rnti, uint8_t lcid); private: void ExpireRbsTimer (void); diff --git a/src/lte/model/lte-rlc-um.cc b/src/lte/model/lte-rlc-um.cc index 86f49de9c..0ec6fd33a 100644 --- a/src/lte/model/lte-rlc-um.cc +++ b/src/lte/model/lte-rlc-um.cc @@ -124,7 +124,7 @@ LteRlcUm::DoTransmitPdcpPdu (Ptr p) */ void -LteRlcUm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) +LteRlcUm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) { NS_LOG_FUNCTION (this << m_rnti << (uint32_t) m_lcid << bytes); @@ -389,7 +389,7 @@ LteRlcUm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) params.lcid = m_lcid; params.layer = layer; params.harqProcessId = harqId; - params.componentCarrierId = 0; + params.componentCarrierId = componentCarrierId; m_macSapProvider->TransmitPdu (params); @@ -407,7 +407,7 @@ LteRlcUm::DoNotifyHarqDeliveryFailure () } void -LteRlcUm::DoReceivePdu (Ptr p) +LteRlcUm::DoReceivePdu (Ptr p, uint16_t rnti, uint8_t lcid) { NS_LOG_FUNCTION (this << m_rnti << (uint32_t) m_lcid << p->GetSize ()); diff --git a/src/lte/model/lte-rlc-um.h b/src/lte/model/lte-rlc-um.h index e68d4a262..a192de479 100644 --- a/src/lte/model/lte-rlc-um.h +++ b/src/lte/model/lte-rlc-um.h @@ -48,9 +48,9 @@ public: /** * MAC SAP */ - virtual void DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId); + virtual void DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid); virtual void DoNotifyHarqDeliveryFailure (); - virtual void DoReceivePdu (Ptr p); + virtual void DoReceivePdu (Ptr p, uint16_t rnti, uint8_t lcid); private: void ExpireReorderingTimer (void); diff --git a/src/lte/model/lte-rlc.cc b/src/lte/model/lte-rlc.cc index cb5e1fdcf..a342bad37 100644 --- a/src/lte/model/lte-rlc.cc +++ b/src/lte/model/lte-rlc.cc @@ -41,9 +41,9 @@ public: LteRlcSpecificLteMacSapUser (LteRlc* rlc); // Interface implemented from LteMacSapUser - virtual void NotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId); + virtual void NotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid); virtual void NotifyHarqDeliveryFailure (); - virtual void ReceivePdu (Ptr p); + virtual void ReceivePdu (Ptr p, uint16_t rnti, uint8_t lcid); private: LteRlcSpecificLteMacSapUser (); @@ -60,9 +60,9 @@ LteRlcSpecificLteMacSapUser::LteRlcSpecificLteMacSapUser () } void -LteRlcSpecificLteMacSapUser::NotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) +LteRlcSpecificLteMacSapUser::NotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) { - m_rlc->DoNotifyTxOpportunity (bytes, layer, harqId); + m_rlc->DoNotifyTxOpportunity (bytes, layer, harqId, componentCarrierId, rnti, lcid); } void @@ -72,9 +72,9 @@ LteRlcSpecificLteMacSapUser::NotifyHarqDeliveryFailure () } void -LteRlcSpecificLteMacSapUser::ReceivePdu (Ptr p) +LteRlcSpecificLteMacSapUser::ReceivePdu (Ptr p, uint16_t rnti, uint8_t lcid) { - m_rlc->DoReceivePdu (p); + m_rlc->DoReceivePdu (p, rnti, lcid); } @@ -213,7 +213,7 @@ LteRlcSm::DoTransmitPdcpPdu (Ptr p) } void -LteRlcSm::DoReceivePdu (Ptr p) +LteRlcSm::DoReceivePdu (Ptr p, uint16_t rnti, uint8_t lcid) { NS_LOG_FUNCTION (this << p); // RLC Performance evaluation @@ -230,7 +230,7 @@ LteRlcSm::DoReceivePdu (Ptr p) } void -LteRlcSm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) +LteRlcSm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) { NS_LOG_FUNCTION (this << bytes); LteMacSapProvider::TransmitPduParameters params; @@ -239,7 +239,7 @@ LteRlcSm::DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) params.lcid = m_lcid; params.layer = layer; params.harqProcessId = harqId; - params.componentCarrierId = 0; + params.componentCarrierId = componentCarrierId; // RLC Performance evaluation RlcTag tag (Simulator::Now()); diff --git a/src/lte/model/lte-rlc.h b/src/lte/model/lte-rlc.h index 2d44bfd79..cd5f2a162 100644 --- a/src/lte/model/lte-rlc.h +++ b/src/lte/model/lte-rlc.h @@ -134,9 +134,9 @@ protected: LteRlcSapProvider* m_rlcSapProvider; // Interface forwarded by LteMacSapUser - virtual void DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId) = 0; + virtual void DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) = 0; virtual void DoNotifyHarqDeliveryFailure () = 0; - virtual void DoReceivePdu (Ptr p) = 0; + virtual void DoReceivePdu (Ptr p, uint16_t rnti, uint8_t lcid) = 0; LteMacSapUser* m_macSapUser; LteMacSapProvider* m_macSapProvider; @@ -175,9 +175,9 @@ public: virtual void DoDispose (); virtual void DoTransmitPdcpPdu (Ptr p); - virtual void DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId); + virtual void DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid); virtual void DoNotifyHarqDeliveryFailure (); - virtual void DoReceivePdu (Ptr p); + virtual void DoReceivePdu (Ptr p, uint16_t rnti, uint8_t lcid); diff --git a/src/lte/model/lte-ue-mac.cc b/src/lte/model/lte-ue-mac.cc index e1852b53a..8ca722e9d 100644 --- a/src/lte/model/lte-ue-mac.cc +++ b/src/lte/model/lte-ue-mac.cc @@ -434,7 +434,12 @@ LteUeMac::RecvRaResponse (BuildRarListElement_s raResponse) { NS_ASSERT_MSG (raResponse.m_grant.m_tbSize > lc0BsrIt->second.txQueueSize, "segmentation of Message 3 is not allowed"); - lc0InfoIt->second.macSapUser->NotifyTxOpportunity (raResponse.m_grant.m_tbSize, 0, 0); + // this function can be called only from primary carrier + if (m_componentCarrierId > 0) + { + NS_FATAL_ERROR ("Function called on wrong componentCarrier"); + } + lc0InfoIt->second.macSapUser->NotifyTxOpportunity (raResponse.m_grant.m_tbSize, 0, 0, m_componentCarrierId, m_rnti, lc0Lcid); lc0BsrIt->second.txQueueSize = 0; } } @@ -552,7 +557,7 @@ LteUeMac::DoReceivePhyPdu (Ptr p) std::map ::const_iterator it = m_lcInfoMap.find (tag.GetLcid ()); if (it != m_lcInfoMap.end ()) { - it->second.macSapUser->ReceivePdu (p); + it->second.macSapUser->ReceivePdu (p, m_rnti, tag.GetLcid ()); } else { @@ -624,7 +629,7 @@ LteUeMac::DoReceiveLteControlMessage (Ptr msg) { if ((statusPduPriority) && ((*itBsr).second.statusPduSize == statusPduMinSize)) { - (*it).second.macSapUser->NotifyTxOpportunity ((*itBsr).second.statusPduSize, 0, 0); + (*it).second.macSapUser->NotifyTxOpportunity ((*itBsr).second.statusPduSize, 0, 0, m_componentCarrierId, m_rnti, (*it).first); NS_LOG_LOGIC (this << "\t" << bytesPerActiveLc << " send " << (*itBsr).second.statusPduSize << " status bytes to LC " << (uint32_t)(*it).first << " statusQueue " << (*itBsr).second.statusPduSize << " retxQueue" << (*itBsr).second.retxQueueSize << " txQueue" << (*itBsr).second.txQueueSize); (*itBsr).second.statusPduSize = 0; break; @@ -635,7 +640,7 @@ LteUeMac::DoReceiveLteControlMessage (Ptr msg) NS_LOG_LOGIC (this << "\t" << bytesPerActiveLc << " bytes to LC " << (uint32_t)(*it).first << " statusQueue " << (*itBsr).second.statusPduSize << " retxQueue" << (*itBsr).second.retxQueueSize << " txQueue" << (*itBsr).second.txQueueSize); if (((*itBsr).second.statusPduSize > 0) && (bytesForThisLc > (*itBsr).second.statusPduSize)) { - (*it).second.macSapUser->NotifyTxOpportunity ((*itBsr).second.statusPduSize, 0, 0); + (*it).second.macSapUser->NotifyTxOpportunity ((*itBsr).second.statusPduSize, 0, 0, m_componentCarrierId, m_rnti, (*it).first); bytesForThisLc -= (*itBsr).second.statusPduSize; NS_LOG_DEBUG (this << " serve STATUS " << (*itBsr).second.statusPduSize); (*itBsr).second.statusPduSize = 0; @@ -655,7 +660,7 @@ LteUeMac::DoReceiveLteControlMessage (Ptr msg) if ((*itBsr).second.retxQueueSize > 0) { NS_LOG_DEBUG (this << " serve retx DATA, bytes " << bytesForThisLc); - (*it).second.macSapUser->NotifyTxOpportunity (bytesForThisLc, 0, 0); + (*it).second.macSapUser->NotifyTxOpportunity (bytesForThisLc, 0, 0, m_componentCarrierId, m_rnti, (*it).first); if ((*itBsr).second.retxQueueSize >= bytesForThisLc) { (*itBsr).second.retxQueueSize -= bytesForThisLc; @@ -683,7 +688,7 @@ LteUeMac::DoReceiveLteControlMessage (Ptr msg) rlcOverhead = 2; } NS_LOG_DEBUG (this << " serve tx DATA, bytes " << bytesForThisLc << ", RLC overhead " << rlcOverhead); - (*it).second.macSapUser->NotifyTxOpportunity (bytesForThisLc, 0, 0); + (*it).second.macSapUser->NotifyTxOpportunity (bytesForThisLc, 0, 0, m_componentCarrierId, m_rnti, (*it).first); if ((*itBsr).second.txQueueSize >= bytesForThisLc - rlcOverhead) { (*itBsr).second.txQueueSize -= bytesForThisLc - rlcOverhead; diff --git a/src/lte/test/lte-test-entities.cc b/src/lte/test/lte-test-entities.cc index a2d818d5c..de5ee1d22 100644 --- a/src/lte/test/lte-test-entities.cc +++ b/src/lte/test/lte-test-entities.cc @@ -486,11 +486,11 @@ LteTestMac::SendTxOpportunity (Time time, uint32_t bytes) } if (haveContext) { - Simulator::ScheduleWithContext (node->GetId (), time, &LteMacSapUser::NotifyTxOpportunity, m_macSapUser, bytes, 0, 0); + Simulator::ScheduleWithContext (node->GetId (), time, &LteMacSapUser::NotifyTxOpportunity, m_macSapUser, bytes, 0, 0, 0, 0, 0); } else { - Simulator::Schedule (time, &LteMacSapUser::NotifyTxOpportunity, m_macSapUser, bytes, 0, 0); + Simulator::Schedule (time, &LteMacSapUser::NotifyTxOpportunity, m_macSapUser, bytes, 0, 0, 0, 0, 0); } if (m_txOpportunityMode == RANDOM_MODE) @@ -565,7 +565,7 @@ LteTestMac::DoTransmitPdu (LteMacSapProvider::TransmitPduParameters params) else if (m_macLoopback) { Simulator::Schedule (Seconds (0.1), &LteMacSapUser::ReceivePdu, - m_macLoopback->m_macSapUser, params.pdu); + m_macLoopback->m_macSapUser, params.pdu, params.rnti, params.lcid); } else { @@ -626,7 +626,7 @@ LteTestMac::DoReportBufferStatus (LteMacSapProvider::ReportBufferStatusParameter { EventId e = Simulator::Schedule (time, &LteMacSapUser::NotifyTxOpportunity, - m_macSapUser, m_txOppSize, 0, 0); + m_macSapUser, m_txOppSize, 0, 0, 0, params.rnti, params.lcid); m_nextTxOppList.push_back (e); size -= m_txOppSize; time += m_txOppTime; @@ -644,7 +644,7 @@ LteTestMac::Receive (Ptr nd, Ptr p, uint16_t protocol, m_rxBytes += p->GetSize (); Ptr packet = p->Copy (); - m_macSapUser->ReceivePdu (packet); + m_macSapUser->ReceivePdu (packet, 0, 0); return true; }