combined core.emulator.data and core.emulator.emudata, updated LinkData to leverage InterfaceData, instead of repeated interface fields, removed session from LinkData and LinkOptions

This commit is contained in:
Blake Harnden 2020-06-16 12:50:24 -07:00
parent 0725199d6d
commit eeca33e722
39 changed files with 332 additions and 399 deletions

View file

@ -92,7 +92,7 @@ from core.api.grpc.wlan_pb2 import (
WlanLinkRequest,
WlanLinkResponse,
)
from core.emulator.emudata import IpPrefixes
from core.emulator.data import IpPrefixes
class InterfaceHelper:

View file

@ -11,8 +11,7 @@ from core.api.grpc import common_pb2, core_pb2
from core.api.grpc.services_pb2 import NodeServiceData, ServiceConfig
from core.config import ConfigurableOptions
from core.emane.nodes import EmaneNet
from core.emulator.data import LinkData
from core.emulator.emudata import InterfaceData, LinkOptions, NodeOptions
from core.emulator.data import InterfaceData, LinkData, LinkOptions, NodeOptions
from core.emulator.enumerations import LinkTypes, NodeTypes
from core.emulator.session import Session
from core.nodes.base import CoreNode, NodeBase
@ -308,6 +307,18 @@ def parse_emane_model_id(_id: int) -> Tuple[int, int]:
return node_id, iface_id
def convert_iface(iface_data: InterfaceData) -> core_pb2.Interface:
return core_pb2.Interface(
id=iface_data.id,
name=iface_data.name,
mac=iface_data.mac,
ip4=iface_data.ip4,
ip4mask=iface_data.ip4_mask,
ip6=iface_data.ip6,
ip6mask=iface_data.ip6_mask,
)
def convert_link(link_data: LinkData) -> core_pb2.Link:
"""
Convert link_data into core protobuf link.
@ -316,27 +327,11 @@ def convert_link(link_data: LinkData) -> core_pb2.Link:
:return: core protobuf Link
"""
iface1 = None
if link_data.iface1_id is not None:
iface1 = core_pb2.Interface(
id=link_data.iface1_id,
name=link_data.iface1_name,
mac=convert_value(link_data.iface1_mac),
ip4=convert_value(link_data.iface1_ip4),
ip4mask=link_data.iface1_ip4_mask,
ip6=convert_value(link_data.iface1_ip6),
ip6mask=link_data.iface1_ip6_mask,
)
if link_data.iface1 is not None:
iface1 = convert_iface(link_data.iface1)
iface2 = None
if link_data.iface2_id is not None:
iface2 = core_pb2.Interface(
id=link_data.iface2_id,
name=link_data.iface2_name,
mac=convert_value(link_data.iface2_mac),
ip4=convert_value(link_data.iface2_ip4),
ip4mask=link_data.iface2_ip4_mask,
ip6=convert_value(link_data.iface2_ip6),
ip6mask=link_data.iface2_ip6_mask,
)
if link_data.iface2 is not None:
iface2 = convert_iface(link_data.iface2)
options = core_pb2.LinkOptions(
opaque=link_data.opaque,
jitter=link_data.jitter,

View file

@ -108,8 +108,7 @@ from core.api.grpc.wlan_pb2 import (
WlanLinkResponse,
)
from core.emulator.coreemu import CoreEmu
from core.emulator.data import LinkData
from core.emulator.emudata import LinkOptions, NodeOptions
from core.emulator.data import LinkData, LinkOptions, NodeOptions
from core.emulator.enumerations import EventTypes, LinkTypes, MessageFlags
from core.emulator.session import NT, Session
from core.errors import CoreCommandError, CoreError

View file

@ -29,8 +29,15 @@ from core.api.tlv.enumerations import (
NodeTlvs,
SessionTlvs,
)
from core.emulator.data import ConfigData, EventData, ExceptionData, FileData
from core.emulator.emudata import InterfaceData, LinkOptions, NodeOptions
from core.emulator.data import (
ConfigData,
EventData,
ExceptionData,
FileData,
InterfaceData,
LinkOptions,
NodeOptions,
)
from core.emulator.enumerations import (
ConfigDataTypes,
EventTypes,
@ -342,6 +349,12 @@ class CoreHandler(socketserver.BaseRequestHandler):
dup = ""
if link_data.dup is not None:
dup = str(link_data.dup)
iface1 = link_data.iface1
if iface1 is None:
iface1 = InterfaceData()
iface2 = link_data.iface2
if iface2 is None:
iface2 = InterfaceData()
tlv_data = structutils.pack_values(
coreapi.CoreLinkTlv,
@ -355,7 +368,6 @@ class CoreHandler(socketserver.BaseRequestHandler):
(LinkTlvs.JITTER, link_data.jitter),
(LinkTlvs.MER, link_data.mer),
(LinkTlvs.BURST, link_data.burst),
(LinkTlvs.SESSION, link_data.session),
(LinkTlvs.MBURST, link_data.mburst),
(LinkTlvs.TYPE, link_data.link_type.value),
(LinkTlvs.GUI_ATTRIBUTES, link_data.gui_attributes),
@ -363,18 +375,18 @@ class CoreHandler(socketserver.BaseRequestHandler):
(LinkTlvs.EMULATION_ID, link_data.emulation_id),
(LinkTlvs.NETWORK_ID, link_data.network_id),
(LinkTlvs.KEY, link_data.key),
(LinkTlvs.IFACE1_NUMBER, link_data.iface1_id),
(LinkTlvs.IFACE1_IP4, link_data.iface1_ip4),
(LinkTlvs.IFACE1_IP4_MASK, link_data.iface1_ip4_mask),
(LinkTlvs.IFACE1_MAC, link_data.iface1_mac),
(LinkTlvs.IFACE1_IP6, link_data.iface1_ip6),
(LinkTlvs.IFACE1_IP6_MASK, link_data.iface1_ip6_mask),
(LinkTlvs.IFACE2_NUMBER, link_data.iface2_id),
(LinkTlvs.IFACE2_IP4, link_data.iface2_ip4),
(LinkTlvs.IFACE2_IP4_MASK, link_data.iface2_ip4_mask),
(LinkTlvs.IFACE2_MAC, link_data.iface2_mac),
(LinkTlvs.IFACE2_IP6, link_data.iface2_ip6),
(LinkTlvs.IFACE2_IP6_MASK, link_data.iface2_ip6_mask),
(LinkTlvs.IFACE1_NUMBER, iface1.id),
(LinkTlvs.IFACE1_IP4, iface1.ip4),
(LinkTlvs.IFACE1_IP4_MASK, iface1.ip4_mask),
(LinkTlvs.IFACE1_MAC, iface1.mac),
(LinkTlvs.IFACE1_IP6, iface1.ip6),
(LinkTlvs.IFACE1_IP6_MASK, iface1.ip6_mask),
(LinkTlvs.IFACE2_NUMBER, iface2.id),
(LinkTlvs.IFACE2_IP4, iface2.ip4),
(LinkTlvs.IFACE2_IP4_MASK, iface2.ip4_mask),
(LinkTlvs.IFACE2_MAC, iface2.mac),
(LinkTlvs.IFACE2_IP6, iface2.ip6),
(LinkTlvs.IFACE2_IP6_MASK, iface2.ip6_mask),
(LinkTlvs.OPAQUE, link_data.opaque),
],
)
@ -774,7 +786,6 @@ class CoreHandler(socketserver.BaseRequestHandler):
options = LinkOptions(type=link_type)
options.delay = message.get_tlv(LinkTlvs.DELAY.value)
options.bandwidth = message.get_tlv(LinkTlvs.BANDWIDTH.value)
options.session = message.get_tlv(LinkTlvs.SESSION.value)
options.loss = message.get_tlv(LinkTlvs.LOSS.value)
options.dup = message.get_tlv(LinkTlvs.DUP.value)
options.jitter = message.get_tlv(LinkTlvs.JITTER.value)