ipmininet.host package

This module defines a modular host that is able to support multiple daemons

class ipmininet.host.IPHost(name, config: Union[Type[ipmininet.host.config.base.HostConfig], Tuple[Type[ipmininet.host.config.base.HostConfig], Dict[KT, VT]]] = <class 'ipmininet.host.config.base.HostConfig'>, *args, **kwargs)

Bases: ipmininet.router.__router.IPNode

A Host which manages a set of daemons

createDefaultRoutes()
setDefaultRoute(intf: Union[ipmininet.link.IPIntf, str, None] = None, v6=False)

Set the default routes to go through the intfs. intf: Intf or {dev <intfname> via <gw-ip> …}

class ipmininet.host.CPULimitedHost(name, sched='cfs', **kwargs)

Bases: ipmininet.host.__host.IPHost

CPU limited host

cfsInfo(f)

Internal method: return parameters for CFS bandwidth

cgroupDel()

Clean up our cgroup

cgroupGet(param, resource='cpu')

Return value of cgroup parameter

cgroupSet(param, value, resource='cpu')

Set a cgroup parameter and return its value

classmethod checkRtGroupSched()

Check (Ubuntu,Debian) kernel config for CONFIG_RT_GROUP_SCHED for RT

chrt()

Set RT scheduling priority

cleanup()

Clean up Node, then clean up our cgroup

config(cpu=-1, cores=None, **params)

cpu: desired overall system CPU fraction cores: (real) core(s) this host can run on params: parameters for Node.config()

classmethod init()

Initialization for CPULimitedHost class

inited = False
popen(*args, **kwargs)

Return a Popen() object in node’s namespace args: Popen() args, single list, or string kwargs: Popen() keyword args

rtInfo(f)

Internal method: return parameters for RT bandwidth

setCPUFrac(f, sched=None)

Set overall CPU fraction for this host f: CPU bandwidth limit (positive fraction, or -1 for cfs unlimited) sched: ‘rt’ or ‘cfs’ Note ‘cfs’ requires CONFIG_CFS_BANDWIDTH, and ‘rt’ requires CONFIG_RT_GROUP_SCHED

setCPUs(cores, mems=0)

Specify (real) cores that our cgroup can run on