コード例 #1
0
ファイル: IpRouteBulkUpdater.py プロジェクト: johlau/EosSdk
    def insert_routes(self, start, end, newApi):
        self.tracer.trace1("Starting to insert {} routes, \
                          starting at route# {}".format(end, start))
        for i in range(start, end):
            first = 200 + (i / 65536)
            second = (i / 256) % 256
            third = i % 256
            addrStr = "%d.%d.%d.0" % (first, second, third)
            prefix = eossdk.IpPrefix(eossdk.IpAddr(addrStr), 24)
            if i % 2550 == 0:
                self.tracer.trace3("Adding prefix " + prefix.to_string())
            rkey = eossdk.IpRouteKey(prefix)
            route = eossdk.IpRoute(rkey)
            route.tag_is(self.tag)
            via = eossdk.IpRouteVia(rkey)
            via.nexthop_group_is("mpls_nhg")
            if not newApi:
                self.ipMgr.ip_route_set(route)
            else:
                self.ipMgr.ip_route_set(route,
                                        eossdk.IP_ROUTE_ACTION_NEXTHOP_GROUP)

            self.ipMgr.ip_route_via_set(via)

        self.tracer.trace1("Finished inserting {} routes, \
                          starting at route# {}".format(end, start))
コード例 #2
0
ファイル: IpRouteBulkUpdater.py プロジェクト: johlau/EosSdk
 def create_ip_v6_route_key(self, i):
     first = (i / 65536) % 65536
     second = i % 65536
     addrStr = "%04x:%04x::" % (first, second)
     ip = eossdk.IpAddr(addrStr)
     prefix6 = eossdk.IpPrefix(ip, 64)
     rkey6 = eossdk.IpRouteKey(prefix6)
     return rkey6
コード例 #3
0
ファイル: IpRouteBulkUpdater.py プロジェクト: johlau/EosSdk
 def create_ip_route_key(self, i):
     first = 200 + (i / 65536)
     second = (i / 256) % 256
     third = i % 256
     addrStr = "%d.%d.%d.0" % (first, second, third)
     prefix = eossdk.IpPrefix(eossdk.IpAddr(addrStr), 24)
     if i % 2550 == 0:
         self.tracer.trace3("Adding prefix %s" % prefix.to_string())
     rkey = eossdk.IpRouteKey(prefix)
     return rkey
コード例 #4
0
ファイル: agent.py プロジェクト: arista-northwest/cygnus
    def _set_route(self, prefix, nexthop_group):
        """
        {
            "command": "set",
            "type": "route",
            "prefix": "5.3.0.0/24",
            "nexthop_group": "CYGNUS_NHG_1"
        }
        """
        prefix = eossdk.IpPrefix(str(prefix))
        route_key = eossdk.IpRouteKey(prefix)
        route = eossdk.IpRoute(route_key)
        via = eossdk.IpRouteVia(route_key)
        via.nexthop_group_is(str(nexthop_group))

        self.ip_route_mgr.ip_route_set(route)
        self.ip_route_mgr.ip_route_via_set(via)
コード例 #5
0
ファイル: agent.py プロジェクト: arista-northwest/cygnus
    def _del_route(self, prefix, nexthop_group=None):
        """
        {
            "command": "del",
            "type": "route",
            "prefix": "5.3.0.0/24",
            "nexthop_group": "CYGNUS_NHG_1" // optional
        }
        """
        prefix = eossdk.IpPrefix(str(prefix))
        route_key = eossdk.IpRouteKey(prefix)
        route = eossdk.IpRoute(route_key)

        if nexthop_group:
            via = eossdk.IpRouteVia(route_key)
            via.nexthop_group_is(str(nexthop_group))
            self.ip_route_mgr.ip_route_via_del(via)
        else:
            self.ip_route_mgr.ip_route_del(route_key)
コード例 #6
0
ファイル: IpRouteBulkUpdater.py プロジェクト: johlau/EosSdk
    def insert_v6_routes(self, start, end, newApi):
        self.tracer.trace1("Starting to insert {} v6_routes, \
                          starting at route# {}".format(end, start))
        for i in range(start, end):
            first = (i / 65536) % 65536
            second = i % 65536
            addrStr = "%04x:%04x::" % (first, second)
            ip = eossdk.IpAddr(addrStr)
            prefix6 = eossdk.IpPrefix(ip, 64)
            rkey6 = eossdk.IpRouteKey(prefix6)
            route6 = eossdk.IpRoute(rkey6)
            route6.tag_is(self.tag)
            via6 = eossdk.IpRouteVia(rkey6)
            via6.nexthop_group_is("mpls_nhg")
            if not newApi:
                self.ipMgr.ip_route_set(route6)
            else:
                self.ipMgr.ip_route_set(route6,
                                        eossdk.IP_ROUTE_ACTION_NEXTHOP_GROUP)

            self.ipMgr.ip_route_via_set(via6)

        self.tracer.trace1("Finished inserting {} routes, \
                          starting at route# {}".format(end, start))