• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python util.ipParse函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中mininet.util.ipParse函数的典型用法代码示例。如果您正苦于以下问题:Python ipParse函数的具体用法?Python ipParse怎么用?Python ipParse使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了ipParse函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: buildFromTopo

    def buildFromTopo( self, topo=None ):
        """Build mininet from a topology object
           At the end of this function, everything should be connected
           and up."""

        # Possibly we should clean up here and/or validate
        # the topo
        if self.cleanup:
            pass

        info( '*** Creating network\n' )

        if self.controllers:
            # Add a default controller
            info( '*** Adding controller\n' )
            classes = self.controller
            if type( classes ) is not list:
                classes = [ classes ]
            for i, cls in enumerate( classes ):
                self.addController( 'c%d' % i, cls )

        info( '*** Adding hosts:\n' )
        for hostName in topo.hosts():
            #aqui ele adiciona os hosts mesmo. Funcao self.addHost retorna o host adicionado! So precisa entao pegar esse host, passar pra classe MetricsCollector e ja era. Ou se preferir, tem uma lista com todos os hosts self.hosts.
            self.addHost( hostName, **topo.nodeInfo( hostName ) )
            info( hostName + ' ' )
        #info( hostName + '\n' )

        if self.switches:
            info( '\n*** Adding switches:\n' )
            for switchName in topo.switches():
                self.addSwitch( switchName, **topo.nodeInfo( switchName) )
                info( switchName + ' ' )

        info( '\n*** Adding links:\n' )
	#pdb.set_trace()
        for srcName, dstName in topo.links(sort=True):
            src, dst = self.nameToNode[ srcName ], self.nameToNode[ dstName ]
            params = topo.linkInfo( srcName, dstName )
            srcPort, dstPort = topo.port( srcName, dstName )
            self.addLink( src, dst, srcPort, dstPort, **params )
            if self.isCCNhost(src):
                src.setIP(ipStr(ipParse(self.ccnNetBase) + 1) + '/30', intf=src.name + '-eth' + str(srcPort))
                dst.setIP(ipStr(ipParse(self.ccnNetBase) + 2) + '/30', intf=dst.name + '-eth' + str(dstPort))
                self.ccnNetBase=nextCCNnet(self.ccnNetBase)
                
            info( '(%s, %s) ' % ( src.name, dst.name ) )

        info( '\n' )
开发者ID:chesteve,项目名称:mn-ccnx,代码行数:49,代码来源:net.py


示例2: configureRoutedControlNetwork

 def configureRoutedControlNetwork(self, ip="192.168.123.1", prefixLen=16):
     """Configure a routed control network on controller and switches.
        For use with the user datapath only right now."""
     controller = self.controllers[0]
     info(controller.name + " <->")
     cip = ip
     snum = ipParse(ip)
     for switch in self.switches:
         info(" " + switch.name)
         link = self.link(switch, controller, port1=0)
         sintf, cintf = link.intf1, link.intf2
         switch.controlIntf = sintf
         snum += 1
         while snum & 0xFF in [0, 255]:
             snum += 1
         sip = ipStr(snum)
         cintf.setIP(cip, prefixLen)
         sintf.setIP(sip, prefixLen)
         controller.setHostRoute(sip, cintf)
         switch.setHostRoute(cip, sintf)
     info("\n")
     info("*** Testing control network\n")
     while not cintf.isUp():
         info("*** Waiting for", cintf, "to come up\n")
         sleep(1)
     for switch in self.switches:
         while not sintf.isUp():
             info("*** Waiting for", sintf, "to come up\n")
             sleep(1)
         if self.ping(hosts=[switch, controller]) != 0:
             error("*** Error: control network test failed\n")
             exit(1)
     info("\n")
开发者ID:ruifcardoso,项目名称:mininet,代码行数:33,代码来源:net.py


示例3: configureRoutedControlNetwork

 def configureRoutedControlNetwork( self, ip='192.168.123.1',
     prefixLen=16 ):
     """Configure a routed control network on controller and switches.
        For use with the user datapath only right now.
        """
     controller = self.controllers[ 0 ]
     info( controller.name + ' <->' )
     cip = ip
     snum = ipParse( ip )
     for switch in self.switches:
         info( ' ' + switch.name )
         sintf, cintf = createLink( switch, controller )
         snum += 1
         while snum & 0xff in [ 0, 255 ]:
             snum += 1
         sip = ipStr( snum )
         controller.setIP( cintf, cip, prefixLen )
         switch.setIP( sintf, sip, prefixLen )
         controller.setHostRoute( sip, cintf )
         switch.setHostRoute( cip, sintf )
     info( '\n' )
     info( '*** Testing control network\n' )
     while not controller.intfIsUp( cintf ):
         info( '*** Waiting for', cintf, 'to come up\n' )
         sleep( 1 )
     for switch in self.switches:
         while not switch.intfIsUp( sintf ):
             info( '*** Waiting for', sintf, 'to come up\n' )
             sleep( 1 )
         if self.ping( hosts=[ switch, controller ] ) != 0:
             error( '*** Error: control network test failed\n' )
             exit( 1 )
     info( '\n' )
开发者ID:meiyangbigswitch,项目名称:mininet,代码行数:33,代码来源:net.py


示例4: write_rtablefile

    def write_rtablefile(self, router):
        rtablefile = "rtable.%s" % router.name
        info( '*** Writing rtable file %s\n' % rtablefile)
        visited, path = dijkstra(self.graph, router.name)
        try:
            with open(rtablefile, 'w') as f:
                for i in range(0, len(router.ips)):
                    iface = '%s-eth%d' % (router.name, i+1)
                    ip = router.ips[i]
                    mask = router.masks[i]
                    subnet = ipStr(ipParse(ip) & ipParse(mask))
                    f.write('%s 0.0.0.0 %s eth%d\n' % (subnet, mask, i+1))
                for rt in self.vrouters.values():
                    if (rt.name == router.name):
                        continue
                    local = None
                    remote = None
                    reached = path[rt.name]
                    while (reached != router.name):
                        if (reached.split('.')[0] in self.vrouters):
                            remote = local
                            local = reached
                        reached = path[reached]

                    localrt = self.vrouters[local.split('.')[0]]
                    localport = int(local.split('.')[1])
                    remotert = self.vrouters[remote.split('.')[0]]
                    remoteport = int(remote.split('.')[1])
                    info("Reach %s from %s via %s.%d and %s.%d\n" % (
                            rt.name, router.name, localrt.name, 
                            localport, remotert.name, remoteport))
                    gw = remotert.ips[remoteport-1]
                    for i in range(0, len(rt.ips)):
                        iface = '%s-eth%d' % (rt.name, i+1)
                        ip = rt.ips[i]
                        mask = rt.masks[i]
                        subnet = ipStr(ipParse(ip) & ipParse(mask))
                        if (subnet in router.subnets):
                            continue
                        f.write('%s %s %s eth%d\n' % (subnet, gw, mask, 
                                    localport))
                        router.subnets.append(subnet)


                f.close()
        except EnvironmentError:
            sys.exit("Couldn't write IP file" % ipfile)
开发者ID:Ricky54326,项目名称:CS640,代码行数:47,代码来源:run_mininet.py


示例5: buildFromTopo

    def buildFromTopo( self, topo=None ):
        """Build mininet from a topology object
           At the end of this function, everything should be connected
           and up."""

        # Possibly we should clean up here and/or validate
        # the topo
        if self.cleanup:
            pass

        info( '*** Creating network\n' )

        if not self.controllers and self.controller:
            # Add a default controller
            info( '*** Adding controller\n' )
            classes = self.controller
            if type( classes ) is not list:
                classes = [ classes ]
            for i, cls in enumerate( classes ):
                self.addController( 'c%d' % i, cls )

        info( '*** Adding hosts:\n' )
        for hostName in topo.hosts():
            self.addHost( hostName, **topo.nodeInfo( hostName ) )
            info( hostName + ' ' )

        info( '\n*** Adding switches:\n' )
        for switchName in topo.switches():
            self.addSwitch( switchName, **topo.nodeInfo( switchName) )
            info( switchName + ' ' )

        info( '\n*** Adding links:\n' )
        for srcName, dstName in topo.links(sort=True):
            src, dst = self.nameToNode[ srcName ], self.nameToNode[ dstName ]
            params = topo.linkInfo( srcName, dstName )
            srcPort, dstPort = topo.port( srcName, dstName )
            self.addLink( src, dst, srcPort, dstPort, **params )

            if self.isCCNhost(src):
                src.setIP(ipStr(ipParse(self.ccnNetBase) + 1) + '/30', intf=src.name + '-eth' + str(srcPort))
                dst.setIP(ipStr(ipParse(self.ccnNetBase) + 2) + '/30', intf=dst.name + '-eth' + str(dstPort))
                self.ccnNetBase=nextCCNnet(self.ccnNetBase)

            info( '(%s, %s) ' % ( src.name, dst.name ) )

        info( '\n' )
开发者ID:Phi-Ho,项目名称:mn-ccnx,代码行数:46,代码来源:CCN_net.py


示例6: __init__

 def __init__(self, name, addrs):
     self.name = name
     self.ips = []
     self.prefixes = []
     self.masks = []
     self.subnets = []
     self.ifaces = 0
     self.switch = None
     for addr in addrs:
         ip = addr.split("/")[0]
         prefix = int(addr.split("/")[1])
         mask = prefixToMask(prefix)
         subnet = ipStr(ipParse(ip) & ipParse(mask))
         self.ips.append(ip)
         self.prefixes.append(prefix)
         self.masks.append(mask)
         self.subnets.append(subnet)
开发者ID:Ricky54326,项目名称:CS640,代码行数:17,代码来源:run_mininet.py


示例7: execute

def execute(options):
    "Create a network based on template_file"

    template_file = options.templateFile
    install_dir='/usr/local/etc/mini-ndn/'

    if template_file == '':
        template_file = install_dir + 'default-topology.conf'

    if options.testbed:
        template_file = install_dir + 'minindn.testbed.conf'

    if os.path.exists(template_file) == False:
        info('No template file given and default template file cannot be found. Exiting...\n')
        quit()

    # Update nfd.conf file used by Mini-NDN to match the currently installed version of NFD
    nfdConfFile = "%s/nfd.conf" % install_dir
    os.system("sudo cp /usr/local/etc/ndn/nfd.conf.sample %s" % nfdConfFile)
    os.system("sudo sed -i \'s|default_level [A-Z]*$|default_level $LOG_LEVEL|g\' %s" % nfdConfFile)

    topo = NdnTopo(template_file, options.workDir)

    t = datetime.datetime.now()

    if topo.isTCLink == True and topo.isLimited == True:
        net = Mininet(topo,host=CpuLimitedNdnHost,link=TCLink)
    elif topo.isTCLink == True and topo.isLimited == False:
        net = Mininet(topo,host=NdnHost,link=TCLink)
    elif topo.isTCLink == False and topo.isLimited == True:
        net = Mininet(topo,host=CpuLimitedNdnHost)
    else:
        net = Mininet(topo,host=NdnHost,controller=RemoteController)

    # [PZ] probable alternative is to have net=Mininet(...,build=False) and add something like
    # net.addController(name='c0', controller=RemoteController, ip='127.0.0.1')
    # ..and then have net.build()

    t2 = datetime.datetime.now()

    delta = t2 - t

    info('Setup time: ' + str(delta.seconds) + '\n')    

    net.start()

    # Giving proper IPs to intf so neighbor nodes can communicate
    # This is one way of giving connectivity, another way could be
    # to insert a switch between each pair of neighbors
    ndnNetBase = "1.0.0.0"
    sdnNetBase = "2.0.0.0"
    sdnHostCount = 0
    interfaces = []
    for host in net.hosts:
        for intf in host.intfList():
            link = intf.link
            node1, node2 = link.intf1.node, link.intf2.node

            # if node1 in net.switches or node2 in net.switches:
                # print "%s or %s is a switch" % (node1.name, node2.name)
                # continue

            if node1 in net.hosts and node2 in net.switches:
                sdnHostCount += 1
                if sdnHostCount > 254:
                    print "too many sdn hosts"
                    exit()
                node1.setIP(ipStr(ipParse(sdnNetBase) + sdnHostCount) + '/24', intf=link.intf1)
                continue

            if node2 in net.hosts and node1 in net.switches:
                sdnHostCount += 1
                if sdnHostCount > 254:
                    print "too many sdn hosts"
                    exit()
                node2.setIP(ipStr(ipParse(sdnNetBase) + sdnHostCount) + '/24', intf=link.intf2)
                continue


            if link.intf1 not in interfaces and link.intf2 not in interfaces:
                interfaces.append(link.intf1)
                interfaces.append(link.intf2)
                node1.setIP(ipStr(ipParse(ndnNetBase) + 1) + '/30', intf=link.intf1)
                node2.setIP(ipStr(ipParse(ndnNetBase) + 2) + '/30', intf=link.intf2)
                ndnNetBase = ipStr(ipParse(ndnNetBase) + 4)

    nodes = ""    # Used later to check prefix name in checkFIB

    # NLSR initialization
    for host in net.hosts:
        nodes += str(host.name) + ","

        conf = next(x for x in hosts_conf if x.name == host.name)
        host.nlsrParameters = conf.nlsrParameters

        if options.nFaces is not None:
            host.nlsrParameters["max-faces-per-prefix"] = options.nFaces

        if options.hr is True:
            host.nlsrParameters["hyperbolic-state"] = "on"
#.........这里部分代码省略.........
开发者ID:piotrekz79,项目名称:mini-ndn,代码行数:101,代码来源:minindn.py


示例8: nextCCNnet

def nextCCNnet(curCCNnet):
    netNum = ipParse(curCCNnet)
    return ipStr(netNum+4)
开发者ID:Phi-Ho,项目名称:mn-ccnx,代码行数:3,代码来源:CCN_net.py



注:本文中的mininet.util.ipParse函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python util.ipStr函数代码示例发布时间:2022-05-27
下一篇:
Python util.ipAdd函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap