initial sweeping changes to call all usages of various interface related variables and functions (netif, interface, if, ifc, etc) to use a consistent name iface
This commit is contained in:
parent
0462c1b084
commit
0725199d6d
93 changed files with 1955 additions and 2156 deletions
|
@ -110,27 +110,27 @@ class InterfaceHelper:
|
|||
"""
|
||||
self.prefixes: IpPrefixes = IpPrefixes(ip4_prefix, ip6_prefix)
|
||||
|
||||
def create_interface(
|
||||
self, node_id: int, interface_id: int, name: str = None, mac: str = None
|
||||
def create_iface(
|
||||
self, node_id: int, iface_id: int, name: str = None, mac: str = None
|
||||
) -> core_pb2.Interface:
|
||||
"""
|
||||
Create an interface protobuf object.
|
||||
|
||||
:param node_id: node id to create interface for
|
||||
:param interface_id: interface id
|
||||
:param iface_id: interface id
|
||||
:param name: name of interface
|
||||
:param mac: mac address for interface
|
||||
:return: interface protobuf
|
||||
"""
|
||||
interface_data = self.prefixes.gen_interface(node_id, name, mac)
|
||||
iface_data = self.prefixes.gen_iface(node_id, name, mac)
|
||||
return core_pb2.Interface(
|
||||
id=interface_id,
|
||||
name=interface_data.name,
|
||||
ip4=interface_data.ip4,
|
||||
ip4mask=interface_data.ip4_mask,
|
||||
ip6=interface_data.ip6,
|
||||
ip6mask=interface_data.ip6_mask,
|
||||
mac=interface_data.mac,
|
||||
id=iface_id,
|
||||
name=iface_data.name,
|
||||
ip4=iface_data.ip4,
|
||||
ip4mask=iface_data.ip4_mask,
|
||||
ip6=iface_data.ip6,
|
||||
ip6mask=iface_data.ip6_mask,
|
||||
mac=iface_data.mac,
|
||||
)
|
||||
|
||||
|
||||
|
@ -611,8 +611,8 @@ class CoreGrpcClient:
|
|||
session_id: int,
|
||||
node1_id: int,
|
||||
node2_id: int,
|
||||
interface1: core_pb2.Interface = None,
|
||||
interface2: core_pb2.Interface = None,
|
||||
iface1: core_pb2.Interface = None,
|
||||
iface2: core_pb2.Interface = None,
|
||||
options: core_pb2.LinkOptions = None,
|
||||
) -> core_pb2.AddLinkResponse:
|
||||
"""
|
||||
|
@ -621,8 +621,8 @@ class CoreGrpcClient:
|
|||
:param session_id: session id
|
||||
:param node1_id: node one id
|
||||
:param node2_id: node two id
|
||||
:param interface1: node one interface data
|
||||
:param interface2: node two interface data
|
||||
:param iface1: node one interface data
|
||||
:param iface2: node two interface data
|
||||
:param options: options for link (jitter, bandwidth, etc)
|
||||
:return: response with result of success or failure
|
||||
:raises grpc.RpcError: when session or one of the nodes don't exist
|
||||
|
@ -631,8 +631,8 @@ class CoreGrpcClient:
|
|||
node1_id=node1_id,
|
||||
node2_id=node2_id,
|
||||
type=core_pb2.LinkType.WIRED,
|
||||
interface1=interface1,
|
||||
interface2=interface2,
|
||||
iface1=iface1,
|
||||
iface2=iface2,
|
||||
options=options,
|
||||
)
|
||||
request = core_pb2.AddLinkRequest(session_id=session_id, link=link)
|
||||
|
@ -644,8 +644,8 @@ class CoreGrpcClient:
|
|||
node1_id: int,
|
||||
node2_id: int,
|
||||
options: core_pb2.LinkOptions,
|
||||
interface1_id: int = None,
|
||||
interface2_id: int = None,
|
||||
iface1_id: int = None,
|
||||
iface2_id: int = None,
|
||||
) -> core_pb2.EditLinkResponse:
|
||||
"""
|
||||
Edit a link between nodes.
|
||||
|
@ -654,8 +654,8 @@ class CoreGrpcClient:
|
|||
:param node1_id: node one id
|
||||
:param node2_id: node two id
|
||||
:param options: options for link (jitter, bandwidth, etc)
|
||||
:param interface1_id: node one interface id
|
||||
:param interface2_id: node two interface id
|
||||
:param iface1_id: node one interface id
|
||||
:param iface2_id: node two interface id
|
||||
:return: response with result of success or failure
|
||||
:raises grpc.RpcError: when session or one of the nodes don't exist
|
||||
"""
|
||||
|
@ -664,8 +664,8 @@ class CoreGrpcClient:
|
|||
node1_id=node1_id,
|
||||
node2_id=node2_id,
|
||||
options=options,
|
||||
interface1_id=interface1_id,
|
||||
interface2_id=interface2_id,
|
||||
iface1_id=iface1_id,
|
||||
iface2_id=iface2_id,
|
||||
)
|
||||
return self.stub.EditLink(request)
|
||||
|
||||
|
@ -674,8 +674,8 @@ class CoreGrpcClient:
|
|||
session_id: int,
|
||||
node1_id: int,
|
||||
node2_id: int,
|
||||
interface1_id: int = None,
|
||||
interface2_id: int = None,
|
||||
iface1_id: int = None,
|
||||
iface2_id: int = None,
|
||||
) -> core_pb2.DeleteLinkResponse:
|
||||
"""
|
||||
Delete a link between nodes.
|
||||
|
@ -683,8 +683,8 @@ class CoreGrpcClient:
|
|||
:param session_id: session id
|
||||
:param node1_id: node one id
|
||||
:param node2_id: node two id
|
||||
:param interface1_id: node one interface id
|
||||
:param interface2_id: node two interface id
|
||||
:param iface1_id: node one interface id
|
||||
:param iface2_id: node two interface id
|
||||
:return: response with result of success or failure
|
||||
:raises grpc.RpcError: when session doesn't exist
|
||||
"""
|
||||
|
@ -692,8 +692,8 @@ class CoreGrpcClient:
|
|||
session_id=session_id,
|
||||
node1_id=node1_id,
|
||||
node2_id=node2_id,
|
||||
interface1_id=interface1_id,
|
||||
interface2_id=interface2_id,
|
||||
iface1_id=iface1_id,
|
||||
iface2_id=iface2_id,
|
||||
)
|
||||
return self.stub.DeleteLink(request)
|
||||
|
||||
|
@ -1028,7 +1028,7 @@ class CoreGrpcClient:
|
|||
return self.stub.GetEmaneModels(request)
|
||||
|
||||
def get_emane_model_config(
|
||||
self, session_id: int, node_id: int, model: str, interface_id: int = -1
|
||||
self, session_id: int, node_id: int, model: str, iface_id: int = -1
|
||||
) -> GetEmaneModelConfigResponse:
|
||||
"""
|
||||
Get emane model configuration for a node or a node's interface.
|
||||
|
@ -1036,12 +1036,12 @@ class CoreGrpcClient:
|
|||
:param session_id: session id
|
||||
:param node_id: node id
|
||||
:param model: emane model name
|
||||
:param interface_id: node interface id
|
||||
:param iface_id: node interface id
|
||||
:return: response with a list of configuration groups
|
||||
:raises grpc.RpcError: when session doesn't exist
|
||||
"""
|
||||
request = GetEmaneModelConfigRequest(
|
||||
session_id=session_id, node_id=node_id, model=model, interface=interface_id
|
||||
session_id=session_id, node_id=node_id, model=model, iface_id=iface_id
|
||||
)
|
||||
return self.stub.GetEmaneModelConfig(request)
|
||||
|
||||
|
@ -1051,7 +1051,7 @@ class CoreGrpcClient:
|
|||
node_id: int,
|
||||
model: str,
|
||||
config: Dict[str, str] = None,
|
||||
interface_id: int = -1,
|
||||
iface_id: int = -1,
|
||||
) -> SetEmaneModelConfigResponse:
|
||||
"""
|
||||
Set emane model configuration for a node or a node's interface.
|
||||
|
@ -1060,12 +1060,12 @@ class CoreGrpcClient:
|
|||
:param node_id: node id
|
||||
:param model: emane model name
|
||||
:param config: emane model configuration
|
||||
:param interface_id: node interface id
|
||||
:param iface_id: node interface id
|
||||
:return: response with result of success or failure
|
||||
:raises grpc.RpcError: when session doesn't exist
|
||||
"""
|
||||
model_config = EmaneModelConfig(
|
||||
node_id=node_id, model=model, config=config, interface_id=interface_id
|
||||
node_id=node_id, model=model, config=config, iface_id=iface_id
|
||||
)
|
||||
request = SetEmaneModelConfigRequest(
|
||||
session_id=session_id, emane_model_config=model_config
|
||||
|
@ -1128,7 +1128,7 @@ class CoreGrpcClient:
|
|||
)
|
||||
return self.stub.EmaneLink(request)
|
||||
|
||||
def get_interfaces(self) -> core_pb2.GetInterfacesResponse:
|
||||
def get_ifaces(self) -> core_pb2.GetInterfacesResponse:
|
||||
"""
|
||||
Retrieves a list of interfaces available on the host machine that are not
|
||||
a part of a CORE session.
|
||||
|
|
|
@ -82,7 +82,7 @@ def handle_config_event(event: ConfigData) -> core_pb2.ConfigEvent:
|
|||
data_values=event.data_values,
|
||||
possible_values=event.possible_values,
|
||||
groups=event.groups,
|
||||
interface=event.interface_number,
|
||||
iface_id=event.iface_id,
|
||||
network_id=event.network_id,
|
||||
opaque=event.opaque,
|
||||
data_types=event.data_types,
|
||||
|
|
|
@ -52,29 +52,29 @@ def add_node_data(node_proto: core_pb2.Node) -> Tuple[NodeTypes, int, NodeOption
|
|||
return _type, _id, options
|
||||
|
||||
|
||||
def link_interface(interface_proto: core_pb2.Interface) -> InterfaceData:
|
||||
def link_iface(iface_proto: core_pb2.Interface) -> InterfaceData:
|
||||
"""
|
||||
Create interface data from interface proto.
|
||||
|
||||
:param interface_proto: interface proto
|
||||
:param iface_proto: interface proto
|
||||
:return: interface data
|
||||
"""
|
||||
interface_data = None
|
||||
if interface_proto:
|
||||
name = interface_proto.name if interface_proto.name else None
|
||||
mac = interface_proto.mac if interface_proto.mac else None
|
||||
ip4 = interface_proto.ip4 if interface_proto.ip4 else None
|
||||
ip6 = interface_proto.ip6 if interface_proto.ip6 else None
|
||||
interface_data = InterfaceData(
|
||||
id=interface_proto.id,
|
||||
iface_data = None
|
||||
if iface_proto:
|
||||
name = iface_proto.name if iface_proto.name else None
|
||||
mac = iface_proto.mac if iface_proto.mac else None
|
||||
ip4 = iface_proto.ip4 if iface_proto.ip4 else None
|
||||
ip6 = iface_proto.ip6 if iface_proto.ip6 else None
|
||||
iface_data = InterfaceData(
|
||||
id=iface_proto.id,
|
||||
name=name,
|
||||
mac=mac,
|
||||
ip4=ip4,
|
||||
ip4_mask=interface_proto.ip4mask,
|
||||
ip4_mask=iface_proto.ip4mask,
|
||||
ip6=ip6,
|
||||
ip6_mask=interface_proto.ip6mask,
|
||||
ip6_mask=iface_proto.ip6mask,
|
||||
)
|
||||
return interface_data
|
||||
return iface_data
|
||||
|
||||
|
||||
def add_link_data(
|
||||
|
@ -86,8 +86,8 @@ def add_link_data(
|
|||
:param link_proto: link proto
|
||||
:return: link interfaces and options
|
||||
"""
|
||||
interface1_data = link_interface(link_proto.interface1)
|
||||
interface2_data = link_interface(link_proto.interface2)
|
||||
iface1_data = link_iface(link_proto.iface1)
|
||||
iface2_data = link_iface(link_proto.iface2)
|
||||
link_type = LinkTypes(link_proto.type)
|
||||
options = LinkOptions(type=link_type)
|
||||
options_data = link_proto.options
|
||||
|
@ -103,7 +103,7 @@ def add_link_data(
|
|||
options.unidirectional = options_data.unidirectional
|
||||
options.key = options_data.key
|
||||
options.opaque = options_data.opaque
|
||||
return interface1_data, interface2_data, options
|
||||
return iface1_data, iface2_data, options
|
||||
|
||||
|
||||
def create_nodes(
|
||||
|
@ -143,8 +143,8 @@ def create_links(
|
|||
for link_proto in link_protos:
|
||||
node1_id = link_proto.node1_id
|
||||
node2_id = link_proto.node2_id
|
||||
interface1, interface2, options = add_link_data(link_proto)
|
||||
args = (node1_id, node2_id, interface1, interface2, options)
|
||||
iface1, iface2, options = add_link_data(link_proto)
|
||||
args = (node1_id, node2_id, iface1, iface2, options)
|
||||
funcs.append((session.add_link, args, {}))
|
||||
start = time.monotonic()
|
||||
results, exceptions = utils.threadpool(funcs)
|
||||
|
@ -167,8 +167,8 @@ def edit_links(
|
|||
for link_proto in link_protos:
|
||||
node1_id = link_proto.node1_id
|
||||
node2_id = link_proto.node2_id
|
||||
interface1, interface2, options = add_link_data(link_proto)
|
||||
args = (node1_id, node2_id, interface1.id, interface2.id, options)
|
||||
iface1, iface2, options = add_link_data(link_proto)
|
||||
args = (node1_id, node2_id, iface1.id, iface2.id, options)
|
||||
funcs.append((session.update_link, args, {}))
|
||||
start = time.monotonic()
|
||||
results, exceptions = utils.threadpool(funcs)
|
||||
|
@ -279,16 +279,16 @@ def get_links(node: NodeBase):
|
|||
return links
|
||||
|
||||
|
||||
def get_emane_model_id(node_id: int, interface_id: int) -> int:
|
||||
def get_emane_model_id(node_id: int, iface_id: int) -> int:
|
||||
"""
|
||||
Get EMANE model id
|
||||
|
||||
:param node_id: node id
|
||||
:param interface_id: interface id
|
||||
:param iface_id: interface id
|
||||
:return: EMANE model id
|
||||
"""
|
||||
if interface_id >= 0:
|
||||
return node_id * 1000 + interface_id
|
||||
if iface_id >= 0:
|
||||
return node_id * 1000 + iface_id
|
||||
else:
|
||||
return node_id
|
||||
|
||||
|
@ -300,12 +300,12 @@ def parse_emane_model_id(_id: int) -> Tuple[int, int]:
|
|||
:param _id: id to parse
|
||||
:return: node id and interface id
|
||||
"""
|
||||
interface = -1
|
||||
iface_id = -1
|
||||
node_id = _id
|
||||
if _id >= 1000:
|
||||
interface = _id % 1000
|
||||
iface_id = _id % 1000
|
||||
node_id = int(_id / 1000)
|
||||
return node_id, interface
|
||||
return node_id, iface_id
|
||||
|
||||
|
||||
def convert_link(link_data: LinkData) -> core_pb2.Link:
|
||||
|
@ -315,27 +315,27 @@ def convert_link(link_data: LinkData) -> core_pb2.Link:
|
|||
:param link_data: link to convert
|
||||
:return: core protobuf Link
|
||||
"""
|
||||
interface1 = None
|
||||
if link_data.interface1_id is not None:
|
||||
interface1 = core_pb2.Interface(
|
||||
id=link_data.interface1_id,
|
||||
name=link_data.interface1_name,
|
||||
mac=convert_value(link_data.interface1_mac),
|
||||
ip4=convert_value(link_data.interface1_ip4),
|
||||
ip4mask=link_data.interface1_ip4_mask,
|
||||
ip6=convert_value(link_data.interface1_ip6),
|
||||
ip6mask=link_data.interface1_ip6_mask,
|
||||
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,
|
||||
)
|
||||
interface2 = None
|
||||
if link_data.interface2_id is not None:
|
||||
interface2 = core_pb2.Interface(
|
||||
id=link_data.interface2_id,
|
||||
name=link_data.interface2_name,
|
||||
mac=convert_value(link_data.interface2_mac),
|
||||
ip4=convert_value(link_data.interface2_ip4),
|
||||
ip4mask=link_data.interface2_ip4_mask,
|
||||
ip6=convert_value(link_data.interface2_ip6),
|
||||
ip6mask=link_data.interface2_ip6_mask,
|
||||
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,
|
||||
)
|
||||
options = core_pb2.LinkOptions(
|
||||
opaque=link_data.opaque,
|
||||
|
@ -354,8 +354,8 @@ def convert_link(link_data: LinkData) -> core_pb2.Link:
|
|||
type=link_data.link_type.value,
|
||||
node1_id=link_data.node1_id,
|
||||
node2_id=link_data.node2_id,
|
||||
interface1=interface1,
|
||||
interface2=interface2,
|
||||
iface1=iface1,
|
||||
iface2=iface2,
|
||||
options=options,
|
||||
network_id=link_data.network_id,
|
||||
label=link_data.label,
|
||||
|
@ -440,20 +440,20 @@ def get_service_configuration(service: CoreService) -> NodeServiceData:
|
|||
)
|
||||
|
||||
|
||||
def interface_to_proto(interface: CoreInterface) -> core_pb2.Interface:
|
||||
def iface_to_proto(iface: CoreInterface) -> core_pb2.Interface:
|
||||
"""
|
||||
Convenience for converting a core interface to the protobuf representation.
|
||||
:param interface: interface to convert
|
||||
:param iface: interface to convert
|
||||
:return: interface proto
|
||||
"""
|
||||
net_id = None
|
||||
if interface.net:
|
||||
net_id = interface.net.id
|
||||
if iface.net:
|
||||
net_id = iface.net.id
|
||||
ip4 = None
|
||||
ip4mask = None
|
||||
ip6 = None
|
||||
ip6mask = None
|
||||
for addr in interface.addrlist:
|
||||
for addr in iface.addrlist:
|
||||
network = netaddr.IPNetwork(addr)
|
||||
mask = network.prefixlen
|
||||
ip = str(network.ip)
|
||||
|
@ -464,12 +464,12 @@ def interface_to_proto(interface: CoreInterface) -> core_pb2.Interface:
|
|||
ip6 = ip
|
||||
ip6mask = mask
|
||||
return core_pb2.Interface(
|
||||
id=interface.netindex,
|
||||
id=iface.node_id,
|
||||
netid=net_id,
|
||||
name=interface.name,
|
||||
mac=str(interface.hwaddr),
|
||||
mtu=interface.mtu,
|
||||
flowid=interface.flow_id,
|
||||
name=iface.name,
|
||||
mac=str(iface.hwaddr),
|
||||
mtu=iface.mtu,
|
||||
flowid=iface.flow_id,
|
||||
ip4=ip4,
|
||||
ip4mask=ip4mask,
|
||||
ip6=ip6,
|
||||
|
@ -477,21 +477,21 @@ def interface_to_proto(interface: CoreInterface) -> core_pb2.Interface:
|
|||
)
|
||||
|
||||
|
||||
def get_nem_id(node: CoreNode, netif_id: int, context: ServicerContext) -> int:
|
||||
def get_nem_id(node: CoreNode, iface_id: int, context: ServicerContext) -> int:
|
||||
"""
|
||||
Get nem id for a given node and interface id.
|
||||
|
||||
:param node: node to get nem id for
|
||||
:param netif_id: id of interface on node to get nem id for
|
||||
:param iface_id: id of interface on node to get nem id for
|
||||
:param context: request context
|
||||
:return: nem id
|
||||
"""
|
||||
netif = node.netif(netif_id)
|
||||
if not netif:
|
||||
message = f"{node.name} missing interface {netif_id}"
|
||||
iface = node.ifaces.get(iface_id)
|
||||
if not iface:
|
||||
message = f"{node.name} missing interface {iface_id}"
|
||||
context.abort(grpc.StatusCode.NOT_FOUND, message)
|
||||
net = netif.net
|
||||
net = iface.net
|
||||
if not isinstance(net, EmaneNet):
|
||||
message = f"{node.name} interface {netif_id} is not an EMANE network"
|
||||
message = f"{node.name} interface {iface_id} is not an EMANE network"
|
||||
context.abort(grpc.StatusCode.INVALID_ARGUMENT, message)
|
||||
return net.getnemid(netif)
|
||||
return net.getnemid(iface)
|
||||
|
|
|
@ -246,7 +246,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
config = session.emane.get_configs()
|
||||
config.update(request.emane_config)
|
||||
for config in request.emane_model_configs:
|
||||
_id = get_emane_model_id(config.node_id, config.interface_id)
|
||||
_id = get_emane_model_id(config.node_id, config.iface_id)
|
||||
session.emane.set_model_config(_id, config.model, config.config)
|
||||
|
||||
# wlan configs
|
||||
|
@ -625,16 +625,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
key = key.split(".")
|
||||
node_id = _INTERFACE_REGEX.search(key[0]).group("node")
|
||||
node_id = int(node_id, base=16)
|
||||
interface_id = int(key[1], base=16)
|
||||
iface_id = int(key[1], base=16)
|
||||
session_id = int(key[2], base=16)
|
||||
if session.id != session_id:
|
||||
continue
|
||||
interface_throughput = (
|
||||
throughputs_event.interface_throughputs.add()
|
||||
)
|
||||
interface_throughput.node_id = node_id
|
||||
interface_throughput.interface_id = interface_id
|
||||
interface_throughput.throughput = throughput
|
||||
iface_throughput = throughputs_event.iface_throughputs.add()
|
||||
iface_throughput.node_id = node_id
|
||||
iface_throughput.iface_id = iface_id
|
||||
iface_throughput.throughput = throughput
|
||||
elif key.startswith("b."):
|
||||
try:
|
||||
key = key.split(".")
|
||||
|
@ -686,13 +684,13 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
logging.debug("get node: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
node = self.get_node(session, request.node_id, context, NodeBase)
|
||||
interfaces = []
|
||||
for interface_id in node._netif:
|
||||
interface = node._netif[interface_id]
|
||||
interface_proto = grpcutils.interface_to_proto(interface)
|
||||
interfaces.append(interface_proto)
|
||||
ifaces = []
|
||||
for iface_id in node.ifaces:
|
||||
iface = node.ifaces[iface_id]
|
||||
iface_proto = grpcutils.iface_to_proto(iface)
|
||||
ifaces.append(iface_proto)
|
||||
node_proto = grpcutils.get_node_proto(session, node)
|
||||
return core_pb2.GetNodeResponse(node=node_proto, interfaces=interfaces)
|
||||
return core_pb2.GetNodeResponse(node=node_proto, ifaces=ifaces)
|
||||
|
||||
def MoveNodes(
|
||||
self,
|
||||
|
@ -850,18 +848,18 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
node2_id = request.link.node2_id
|
||||
self.get_node(session, node1_id, context, NodeBase)
|
||||
self.get_node(session, node2_id, context, NodeBase)
|
||||
interface1, interface2, options = grpcutils.add_link_data(request.link)
|
||||
node1_interface, node2_interface = session.add_link(
|
||||
node1_id, node2_id, interface1, interface2, options=options
|
||||
iface1_data, iface2_data, options = grpcutils.add_link_data(request.link)
|
||||
node1_iface, node2_iface = session.add_link(
|
||||
node1_id, node2_id, iface1_data, iface2_data, options=options
|
||||
)
|
||||
interface1_proto = None
|
||||
interface2_proto = None
|
||||
if node1_interface:
|
||||
interface1_proto = grpcutils.interface_to_proto(node1_interface)
|
||||
if node2_interface:
|
||||
interface2_proto = grpcutils.interface_to_proto(node2_interface)
|
||||
iface1_proto = None
|
||||
iface2_proto = None
|
||||
if node1_iface:
|
||||
iface1_proto = grpcutils.iface_to_proto(node1_iface)
|
||||
if node2_iface:
|
||||
iface2_proto = grpcutils.iface_to_proto(node2_iface)
|
||||
return core_pb2.AddLinkResponse(
|
||||
result=True, interface1=interface1_proto, interface2=interface2_proto
|
||||
result=True, iface1=iface1_proto, iface2=iface2_proto
|
||||
)
|
||||
|
||||
def EditLink(
|
||||
|
@ -878,8 +876,8 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
session = self.get_session(request.session_id, context)
|
||||
node1_id = request.node1_id
|
||||
node2_id = request.node2_id
|
||||
interface1_id = request.interface1_id
|
||||
interface2_id = request.interface2_id
|
||||
iface1_id = request.iface1_id
|
||||
iface2_id = request.iface2_id
|
||||
options_data = request.options
|
||||
options = LinkOptions(
|
||||
delay=options_data.delay,
|
||||
|
@ -894,7 +892,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
key=options_data.key,
|
||||
opaque=options_data.opaque,
|
||||
)
|
||||
session.update_link(node1_id, node2_id, interface1_id, interface2_id, options)
|
||||
session.update_link(node1_id, node2_id, iface1_id, iface2_id, options)
|
||||
return core_pb2.EditLinkResponse(result=True)
|
||||
|
||||
def DeleteLink(
|
||||
|
@ -911,9 +909,9 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
session = self.get_session(request.session_id, context)
|
||||
node1_id = request.node1_id
|
||||
node2_id = request.node2_id
|
||||
interface1_id = request.interface1_id
|
||||
interface2_id = request.interface2_id
|
||||
session.delete_link(node1_id, node2_id, interface1_id, interface2_id)
|
||||
iface1_id = request.iface1_id
|
||||
iface2_id = request.iface2_id
|
||||
session.delete_link(node1_id, node2_id, iface1_id, iface2_id)
|
||||
return core_pb2.DeleteLinkResponse(result=True)
|
||||
|
||||
def GetHooks(
|
||||
|
@ -1371,7 +1369,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
logging.debug("get emane model config: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
model = session.emane.models[request.model]
|
||||
_id = get_emane_model_id(request.node_id, request.interface)
|
||||
_id = get_emane_model_id(request.node_id, request.iface_id)
|
||||
current_config = session.emane.get_model_config(_id, request.model)
|
||||
config = get_config_options(current_config, model)
|
||||
return GetEmaneModelConfigResponse(config=config)
|
||||
|
@ -1390,7 +1388,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
logging.debug("set emane model config: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
model_config = request.emane_model_config
|
||||
_id = get_emane_model_id(model_config.node_id, model_config.interface_id)
|
||||
_id = get_emane_model_id(model_config.node_id, model_config.iface_id)
|
||||
session.emane.set_model_config(_id, model_config.model, model_config.config)
|
||||
return SetEmaneModelConfigResponse(result=True)
|
||||
|
||||
|
@ -1419,12 +1417,9 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
model = session.emane.models[model_name]
|
||||
current_config = session.emane.get_model_config(_id, model_name)
|
||||
config = get_config_options(current_config, model)
|
||||
node_id, interface = grpcutils.parse_emane_model_id(_id)
|
||||
node_id, iface_id = grpcutils.parse_emane_model_id(_id)
|
||||
model_config = GetEmaneModelConfigsResponse.ModelConfig(
|
||||
node_id=node_id,
|
||||
model=model_name,
|
||||
interface=interface,
|
||||
config=config,
|
||||
node_id=node_id, model=model_name, iface_id=iface_id, config=config
|
||||
)
|
||||
configs.append(model_config)
|
||||
return GetEmaneModelConfigsResponse(configs=configs)
|
||||
|
@ -1489,16 +1484,12 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
:param context: context object
|
||||
:return: get-interfaces response that has all the system's interfaces
|
||||
"""
|
||||
interfaces = []
|
||||
for interface in os.listdir("/sys/class/net"):
|
||||
if (
|
||||
interface.startswith("b.")
|
||||
or interface.startswith("veth")
|
||||
or interface == "lo"
|
||||
):
|
||||
ifaces = []
|
||||
for iface in os.listdir("/sys/class/net"):
|
||||
if iface.startswith("b.") or iface.startswith("veth") or iface == "lo":
|
||||
continue
|
||||
interfaces.append(interface)
|
||||
return core_pb2.GetInterfacesResponse(interfaces=interfaces)
|
||||
ifaces.append(iface)
|
||||
return core_pb2.GetInterfacesResponse(ifaces=ifaces)
|
||||
|
||||
def EmaneLink(
|
||||
self, request: EmaneLinkRequest, context: ServicerContext
|
||||
|
@ -1513,16 +1504,16 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
logging.debug("emane link: %s", request)
|
||||
session = self.get_session(request.session_id, context)
|
||||
nem1 = request.nem1
|
||||
emane1, netif = session.emane.nemlookup(nem1)
|
||||
if not emane1 or not netif:
|
||||
emane1, iface = session.emane.nemlookup(nem1)
|
||||
if not emane1 or not iface:
|
||||
context.abort(grpc.StatusCode.NOT_FOUND, f"nem one {nem1} not found")
|
||||
node1 = netif.node
|
||||
node1 = iface.node
|
||||
|
||||
nem2 = request.nem2
|
||||
emane2, netif = session.emane.nemlookup(nem2)
|
||||
if not emane2 or not netif:
|
||||
emane2, iface = session.emane.nemlookup(nem2)
|
||||
if not emane2 or not iface:
|
||||
context.abort(grpc.StatusCode.NOT_FOUND, f"nem two {nem2} not found")
|
||||
node2 = netif.node
|
||||
node2 = iface.node
|
||||
|
||||
if emane1.id == emane2.id:
|
||||
if request.linked:
|
||||
|
@ -1734,21 +1725,19 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
)
|
||||
node1 = self.get_node(session, request.node1_id, context, CoreNode)
|
||||
node2 = self.get_node(session, request.node2_id, context, CoreNode)
|
||||
node1_interface, node2_interface = None, None
|
||||
for net, interface1, interface2 in node1.commonnets(node2):
|
||||
node1_iface, node2_iface = None, None
|
||||
for net, iface1, iface2 in node1.commonnets(node2):
|
||||
if net == wlan:
|
||||
node1_interface = interface1
|
||||
node2_interface = interface2
|
||||
node1_iface = iface1
|
||||
node2_iface = iface2
|
||||
break
|
||||
result = False
|
||||
if node1_interface and node2_interface:
|
||||
if node1_iface and node2_iface:
|
||||
if request.linked:
|
||||
wlan.link(node1_interface, node2_interface)
|
||||
wlan.link(node1_iface, node2_iface)
|
||||
else:
|
||||
wlan.unlink(node1_interface, node2_interface)
|
||||
wlan.model.sendlinkmsg(
|
||||
node1_interface, node2_interface, unlink=not request.linked
|
||||
)
|
||||
wlan.unlink(node1_iface, node2_iface)
|
||||
wlan.model.sendlinkmsg(node1_iface, node2_iface, unlink=not request.linked)
|
||||
result = True
|
||||
return WlanLinkResponse(result=result)
|
||||
|
||||
|
@ -1760,8 +1749,8 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
for request in request_iterator:
|
||||
session = self.get_session(request.session_id, context)
|
||||
node1 = self.get_node(session, request.node1_id, context, CoreNode)
|
||||
nem1 = grpcutils.get_nem_id(node1, request.interface1_id, context)
|
||||
nem1 = grpcutils.get_nem_id(node1, request.iface1_id, context)
|
||||
node2 = self.get_node(session, request.node2_id, context, CoreNode)
|
||||
nem2 = grpcutils.get_nem_id(node2, request.interface2_id, context)
|
||||
nem2 = grpcutils.get_nem_id(node2, request.iface2_id, context)
|
||||
session.emane.publish_pathloss(nem1, nem2, request.rx1, request.rx2)
|
||||
return EmanePathlossesResponse()
|
||||
|
|
|
@ -508,18 +508,18 @@ class CoreLinkTlv(CoreTlv):
|
|||
LinkTlvs.EMULATION_ID.value: CoreTlvDataUint32,
|
||||
LinkTlvs.NETWORK_ID.value: CoreTlvDataUint32,
|
||||
LinkTlvs.KEY.value: CoreTlvDataUint32,
|
||||
LinkTlvs.INTERFACE1_NUMBER.value: CoreTlvDataUint16,
|
||||
LinkTlvs.INTERFACE1_IP4.value: CoreTlvDataIpv4Addr,
|
||||
LinkTlvs.INTERFACE1_IP4_MASK.value: CoreTlvDataUint16,
|
||||
LinkTlvs.INTERFACE1_MAC.value: CoreTlvDataMacAddr,
|
||||
LinkTlvs.INTERFACE1_IP6.value: CoreTlvDataIPv6Addr,
|
||||
LinkTlvs.INTERFACE1_IP6_MASK.value: CoreTlvDataUint16,
|
||||
LinkTlvs.INTERFACE2_NUMBER.value: CoreTlvDataUint16,
|
||||
LinkTlvs.INTERFACE2_IP4.value: CoreTlvDataIpv4Addr,
|
||||
LinkTlvs.INTERFACE2_IP4_MASK.value: CoreTlvDataUint16,
|
||||
LinkTlvs.INTERFACE2_MAC.value: CoreTlvDataMacAddr,
|
||||
LinkTlvs.INTERFACE2_IP6.value: CoreTlvDataIPv6Addr,
|
||||
LinkTlvs.INTERFACE2_IP6_MASK.value: CoreTlvDataUint16,
|
||||
LinkTlvs.IFACE1_NUMBER.value: CoreTlvDataUint16,
|
||||
LinkTlvs.IFACE1_IP4.value: CoreTlvDataIpv4Addr,
|
||||
LinkTlvs.IFACE1_IP4_MASK.value: CoreTlvDataUint16,
|
||||
LinkTlvs.IFACE1_MAC.value: CoreTlvDataMacAddr,
|
||||
LinkTlvs.IFACE1_IP6.value: CoreTlvDataIPv6Addr,
|
||||
LinkTlvs.IFACE1_IP6_MASK.value: CoreTlvDataUint16,
|
||||
LinkTlvs.IFACE2_NUMBER.value: CoreTlvDataUint16,
|
||||
LinkTlvs.IFACE2_IP4.value: CoreTlvDataIpv4Addr,
|
||||
LinkTlvs.IFACE2_IP4_MASK.value: CoreTlvDataUint16,
|
||||
LinkTlvs.IFACE2_MAC.value: CoreTlvDataMacAddr,
|
||||
LinkTlvs.IFACE2_IP6.value: CoreTlvDataIPv6Addr,
|
||||
LinkTlvs.IFACE2_IP6_MASK.value: CoreTlvDataUint16,
|
||||
LinkTlvs.INTERFACE1_NAME.value: CoreTlvDataString,
|
||||
LinkTlvs.INTERFACE2_NAME.value: CoreTlvDataString,
|
||||
LinkTlvs.OPAQUE.value: CoreTlvDataString,
|
||||
|
@ -577,7 +577,7 @@ class CoreConfigTlv(CoreTlv):
|
|||
ConfigTlvs.POSSIBLE_VALUES.value: CoreTlvDataString,
|
||||
ConfigTlvs.GROUPS.value: CoreTlvDataString,
|
||||
ConfigTlvs.SESSION.value: CoreTlvDataString,
|
||||
ConfigTlvs.INTERFACE_NUMBER.value: CoreTlvDataUint16,
|
||||
ConfigTlvs.IFACE_ID.value: CoreTlvDataUint16,
|
||||
ConfigTlvs.NETWORK_ID.value: CoreTlvDataUint32,
|
||||
ConfigTlvs.OPAQUE.value: CoreTlvDataString,
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
MessageTypes.REGISTER.value: self.handle_register_message,
|
||||
MessageTypes.CONFIG.value: self.handle_config_message,
|
||||
MessageTypes.FILE.value: self.handle_file_message,
|
||||
MessageTypes.INTERFACE.value: self.handle_interface_message,
|
||||
MessageTypes.INTERFACE.value: self.handle_iface_message,
|
||||
MessageTypes.EVENT.value: self.handle_event_message,
|
||||
MessageTypes.SESSION.value: self.handle_session_message,
|
||||
}
|
||||
|
@ -363,18 +363,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.INTERFACE1_NUMBER, link_data.interface1_id),
|
||||
(LinkTlvs.INTERFACE1_IP4, link_data.interface1_ip4),
|
||||
(LinkTlvs.INTERFACE1_IP4_MASK, link_data.interface1_ip4_mask),
|
||||
(LinkTlvs.INTERFACE1_MAC, link_data.interface1_mac),
|
||||
(LinkTlvs.INTERFACE1_IP6, link_data.interface1_ip6),
|
||||
(LinkTlvs.INTERFACE1_IP6_MASK, link_data.interface1_ip6_mask),
|
||||
(LinkTlvs.INTERFACE2_NUMBER, link_data.interface2_id),
|
||||
(LinkTlvs.INTERFACE2_IP4, link_data.interface2_ip4),
|
||||
(LinkTlvs.INTERFACE2_IP4_MASK, link_data.interface2_ip4_mask),
|
||||
(LinkTlvs.INTERFACE2_MAC, link_data.interface2_mac),
|
||||
(LinkTlvs.INTERFACE2_IP6, link_data.interface2_ip6),
|
||||
(LinkTlvs.INTERFACE2_IP6_MASK, link_data.interface2_ip6_mask),
|
||||
(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.OPAQUE, link_data.opaque),
|
||||
],
|
||||
)
|
||||
|
@ -749,23 +749,23 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
"""
|
||||
node1_id = message.get_tlv(LinkTlvs.N1_NUMBER.value)
|
||||
node2_id = message.get_tlv(LinkTlvs.N2_NUMBER.value)
|
||||
interface1_data = InterfaceData(
|
||||
id=message.get_tlv(LinkTlvs.INTERFACE1_NUMBER.value),
|
||||
iface1_data = InterfaceData(
|
||||
id=message.get_tlv(LinkTlvs.IFACE1_NUMBER.value),
|
||||
name=message.get_tlv(LinkTlvs.INTERFACE1_NAME.value),
|
||||
mac=message.get_tlv(LinkTlvs.INTERFACE1_MAC.value),
|
||||
ip4=message.get_tlv(LinkTlvs.INTERFACE1_IP4.value),
|
||||
ip4_mask=message.get_tlv(LinkTlvs.INTERFACE1_IP4_MASK.value),
|
||||
ip6=message.get_tlv(LinkTlvs.INTERFACE1_IP6.value),
|
||||
ip6_mask=message.get_tlv(LinkTlvs.INTERFACE1_IP6_MASK.value),
|
||||
mac=message.get_tlv(LinkTlvs.IFACE1_MAC.value),
|
||||
ip4=message.get_tlv(LinkTlvs.IFACE1_IP4.value),
|
||||
ip4_mask=message.get_tlv(LinkTlvs.IFACE1_IP4_MASK.value),
|
||||
ip6=message.get_tlv(LinkTlvs.IFACE1_IP6.value),
|
||||
ip6_mask=message.get_tlv(LinkTlvs.IFACE1_IP6_MASK.value),
|
||||
)
|
||||
interface2_data = InterfaceData(
|
||||
id=message.get_tlv(LinkTlvs.INTERFACE2_NUMBER.value),
|
||||
iface2_data = InterfaceData(
|
||||
id=message.get_tlv(LinkTlvs.IFACE2_NUMBER.value),
|
||||
name=message.get_tlv(LinkTlvs.INTERFACE2_NAME.value),
|
||||
mac=message.get_tlv(LinkTlvs.INTERFACE2_MAC.value),
|
||||
ip4=message.get_tlv(LinkTlvs.INTERFACE2_IP4.value),
|
||||
ip4_mask=message.get_tlv(LinkTlvs.INTERFACE2_IP4_MASK.value),
|
||||
ip6=message.get_tlv(LinkTlvs.INTERFACE2_IP6.value),
|
||||
ip6_mask=message.get_tlv(LinkTlvs.INTERFACE2_IP6_MASK.value),
|
||||
mac=message.get_tlv(LinkTlvs.IFACE2_MAC.value),
|
||||
ip4=message.get_tlv(LinkTlvs.IFACE2_IP4.value),
|
||||
ip4_mask=message.get_tlv(LinkTlvs.IFACE2_IP4_MASK.value),
|
||||
ip6=message.get_tlv(LinkTlvs.IFACE2_IP6.value),
|
||||
ip6_mask=message.get_tlv(LinkTlvs.IFACE2_IP6_MASK.value),
|
||||
)
|
||||
link_type = LinkTypes.WIRED
|
||||
link_type_value = message.get_tlv(LinkTlvs.TYPE.value)
|
||||
|
@ -789,16 +789,12 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
options.opaque = message.get_tlv(LinkTlvs.OPAQUE.value)
|
||||
|
||||
if message.flags & MessageFlags.ADD.value:
|
||||
self.session.add_link(
|
||||
node1_id, node2_id, interface1_data, interface2_data, options
|
||||
)
|
||||
self.session.add_link(node1_id, node2_id, iface1_data, iface2_data, options)
|
||||
elif message.flags & MessageFlags.DELETE.value:
|
||||
self.session.delete_link(
|
||||
node1_id, node2_id, interface1_data.id, interface2_data.id
|
||||
)
|
||||
self.session.delete_link(node1_id, node2_id, iface1_data.id, iface2_data.id)
|
||||
else:
|
||||
self.session.update_link(
|
||||
node1_id, node2_id, interface1_data.id, interface2_data.id, options
|
||||
node1_id, node2_id, iface1_data.id, iface2_data.id, options
|
||||
)
|
||||
return ()
|
||||
|
||||
|
@ -1008,7 +1004,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
possible_values=message.get_tlv(ConfigTlvs.POSSIBLE_VALUES.value),
|
||||
groups=message.get_tlv(ConfigTlvs.GROUPS.value),
|
||||
session=message.get_tlv(ConfigTlvs.SESSION.value),
|
||||
interface_number=message.get_tlv(ConfigTlvs.INTERFACE_NUMBER.value),
|
||||
iface_id=message.get_tlv(ConfigTlvs.IFACE_ID.value),
|
||||
network_id=message.get_tlv(ConfigTlvs.NETWORK_ID.value),
|
||||
opaque=message.get_tlv(ConfigTlvs.OPAQUE.value),
|
||||
)
|
||||
|
@ -1325,11 +1321,11 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
replies = []
|
||||
node_id = config_data.node
|
||||
object_name = config_data.object
|
||||
interface_id = config_data.interface_number
|
||||
iface_id = config_data.iface_id
|
||||
values_str = config_data.data_values
|
||||
|
||||
if interface_id is not None:
|
||||
node_id = node_id * 1000 + interface_id
|
||||
if iface_id is not None:
|
||||
node_id = node_id * 1000 + iface_id
|
||||
|
||||
logging.debug(
|
||||
"received configure message for %s nodenum: %s", object_name, node_id
|
||||
|
@ -1375,11 +1371,11 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
replies = []
|
||||
node_id = config_data.node
|
||||
object_name = config_data.object
|
||||
interface_id = config_data.interface_number
|
||||
iface_id = config_data.iface_id
|
||||
values_str = config_data.data_values
|
||||
|
||||
if interface_id is not None:
|
||||
node_id = node_id * 1000 + interface_id
|
||||
if iface_id is not None:
|
||||
node_id = node_id * 1000 + iface_id
|
||||
|
||||
logging.debug(
|
||||
"received configure message for %s nodenum: %s", object_name, node_id
|
||||
|
@ -1407,11 +1403,11 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
replies = []
|
||||
node_id = config_data.node
|
||||
object_name = config_data.object
|
||||
interface_id = config_data.interface_number
|
||||
iface_id = config_data.iface_id
|
||||
values_str = config_data.data_values
|
||||
|
||||
if interface_id is not None:
|
||||
node_id = node_id * 1000 + interface_id
|
||||
if iface_id is not None:
|
||||
node_id = node_id * 1000 + iface_id
|
||||
|
||||
logging.debug(
|
||||
"received configure message for %s nodenum: %s", object_name, node_id
|
||||
|
@ -1505,7 +1501,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
|
||||
return ()
|
||||
|
||||
def handle_interface_message(self, message):
|
||||
def handle_iface_message(self, message):
|
||||
"""
|
||||
Interface Message handler.
|
||||
|
||||
|
@ -1950,7 +1946,7 @@ class CoreUdpHandler(CoreHandler):
|
|||
MessageTypes.REGISTER.value: self.handle_register_message,
|
||||
MessageTypes.CONFIG.value: self.handle_config_message,
|
||||
MessageTypes.FILE.value: self.handle_file_message,
|
||||
MessageTypes.INTERFACE.value: self.handle_interface_message,
|
||||
MessageTypes.INTERFACE.value: self.handle_iface_message,
|
||||
MessageTypes.EVENT.value: self.handle_event_message,
|
||||
MessageTypes.SESSION.value: self.handle_session_message,
|
||||
}
|
||||
|
|
|
@ -75,7 +75,7 @@ def convert_config(config_data):
|
|||
(ConfigTlvs.POSSIBLE_VALUES, config_data.possible_values),
|
||||
(ConfigTlvs.GROUPS, config_data.groups),
|
||||
(ConfigTlvs.SESSION, session),
|
||||
(ConfigTlvs.INTERFACE_NUMBER, config_data.interface_number),
|
||||
(ConfigTlvs.IFACE_ID, config_data.iface_id),
|
||||
(ConfigTlvs.NETWORK_ID, config_data.network_id),
|
||||
(ConfigTlvs.OPAQUE, config_data.opaque),
|
||||
],
|
||||
|
|
|
@ -72,18 +72,18 @@ class LinkTlvs(Enum):
|
|||
EMULATION_ID = 0x23
|
||||
NETWORK_ID = 0x24
|
||||
KEY = 0x25
|
||||
INTERFACE1_NUMBER = 0x30
|
||||
INTERFACE1_IP4 = 0x31
|
||||
INTERFACE1_IP4_MASK = 0x32
|
||||
INTERFACE1_MAC = 0x33
|
||||
INTERFACE1_IP6 = 0x34
|
||||
INTERFACE1_IP6_MASK = 0x35
|
||||
INTERFACE2_NUMBER = 0x36
|
||||
INTERFACE2_IP4 = 0x37
|
||||
INTERFACE2_IP4_MASK = 0x38
|
||||
INTERFACE2_MAC = 0x39
|
||||
INTERFACE2_IP6 = 0x40
|
||||
INTERFACE2_IP6_MASK = 0x41
|
||||
IFACE1_NUMBER = 0x30
|
||||
IFACE1_IP4 = 0x31
|
||||
IFACE1_IP4_MASK = 0x32
|
||||
IFACE1_MAC = 0x33
|
||||
IFACE1_IP6 = 0x34
|
||||
IFACE1_IP6_MASK = 0x35
|
||||
IFACE2_NUMBER = 0x36
|
||||
IFACE2_IP4 = 0x37
|
||||
IFACE2_IP4_MASK = 0x38
|
||||
IFACE2_MAC = 0x39
|
||||
IFACE2_IP6 = 0x40
|
||||
IFACE2_IP6_MASK = 0x41
|
||||
INTERFACE1_NAME = 0x42
|
||||
INTERFACE2_NAME = 0x43
|
||||
OPAQUE = 0x50
|
||||
|
@ -118,7 +118,7 @@ class ConfigTlvs(Enum):
|
|||
POSSIBLE_VALUES = 0x08
|
||||
GROUPS = 0x09
|
||||
SESSION = 0x0A
|
||||
INTERFACE_NUMBER = 0x0B
|
||||
IFACE_ID = 0x0B
|
||||
NETWORK_ID = 0x24
|
||||
OPAQUE = 0x50
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue