|
52 | 52 | from core.location.mobility import BasicRangeModel
|
53 | 53 | from core.nodes.base import CoreNode, CoreNodeBase, NodeBase
|
54 | 54 | from core.nodes.network import WlanNode
|
| 55 | +from core.nodes.physical import Rj45Node |
55 | 56 | from core.services.coreservices import ServiceManager, ServiceShim
|
56 | 57 |
|
57 | 58 |
|
@@ -787,20 +788,30 @@ def handle_link_message(self, message):
|
787 | 788 | options = LinkOptions()
|
788 | 789 | options.delay = message.get_tlv(LinkTlvs.DELAY.value)
|
789 | 790 | options.bandwidth = message.get_tlv(LinkTlvs.BANDWIDTH.value)
|
790 |
| - options.loss = message.get_tlv(LinkTlvs.LOSS.value) |
791 |
| - options.dup = message.get_tlv(LinkTlvs.DUP.value) |
792 | 791 | options.jitter = message.get_tlv(LinkTlvs.JITTER.value)
|
793 | 792 | options.mer = message.get_tlv(LinkTlvs.MER.value)
|
794 | 793 | options.burst = message.get_tlv(LinkTlvs.BURST.value)
|
795 | 794 | options.mburst = message.get_tlv(LinkTlvs.MBURST.value)
|
796 | 795 | options.unidirectional = message.get_tlv(LinkTlvs.UNIDIRECTIONAL.value)
|
797 | 796 | options.key = message.get_tlv(LinkTlvs.KEY.value)
|
| 797 | + loss = message.get_tlv(LinkTlvs.LOSS.value) |
| 798 | + dup = message.get_tlv(LinkTlvs.DUP.value) |
| 799 | + if loss is not None: |
| 800 | + options.loss = float(loss) |
| 801 | + if dup is not None: |
| 802 | + options.dup = int(dup) |
798 | 803 |
|
799 | 804 | if message.flags & MessageFlags.ADD.value:
|
800 | 805 | self.session.add_link(
|
801 | 806 | node1_id, node2_id, iface1_data, iface2_data, options, link_type
|
802 | 807 | )
|
803 | 808 | elif message.flags & MessageFlags.DELETE.value:
|
| 809 | + node1 = self.session.get_node(node1_id, NodeBase) |
| 810 | + node2 = self.session.get_node(node2_id, NodeBase) |
| 811 | + if isinstance(node1, Rj45Node): |
| 812 | + iface1_data.id = node1.iface_id |
| 813 | + if isinstance(node2, Rj45Node): |
| 814 | + iface2_data.id = node2.iface_id |
804 | 815 | self.session.delete_link(
|
805 | 816 | node1_id, node2_id, iface1_data.id, iface2_data.id, link_type
|
806 | 817 | )
|
@@ -1851,7 +1862,15 @@ def send_objects(self):
|
1851 | 1862 | )
|
1852 | 1863 | self.session.broadcast_config(config_data)
|
1853 | 1864 |
|
1854 |
| - # send emane model info |
| 1865 | + # send global emane config |
| 1866 | + config = self.session.emane.get_configs() |
| 1867 | + logging.debug("global emane config: values(%s)", config) |
| 1868 | + config_data = ConfigShim.config_data( |
| 1869 | + 0, None, ConfigFlags.UPDATE.value, self.session.emane.emane_config, config |
| 1870 | + ) |
| 1871 | + self.session.broadcast_config(config_data) |
| 1872 | + |
| 1873 | + # send emane model configs |
1855 | 1874 | for node_id in self.session.emane.nodes():
|
1856 | 1875 | emane_configs = self.session.emane.get_all_configs(node_id)
|
1857 | 1876 | for model_name in emane_configs:
|
|
0 commit comments