def __update_route_rspec(self, route, sliver, controllers, groups, matches): for key, rspec in route.iteritems(): rspec.sliver(sliver.get("description"), sliver.get("ref"), sliver.get("email")) for c in controllers: rspec.controller(c.get("url"), c.get("type")) for g in groups: rspec.group(g.get("name")) for dpid in g.get("dpids"): if dpid.get("routing_key") == key: rspec.group_datapath(g.get("name"), dpid) for m in matches: match = Match() for uf in m.get("use_groups"): match.add_use_group(uf.get("name")) for dpid in m.get("dpids"): if dpid.get("routing_key") == key: match.add_datapath(dpid) match.set_packet(m.get("packet").get("dl_src"), m.get("packet").get("dl_dst"), m.get("packet").get("dl_type"), m.get("packet").get("dl_vlan"), m.get("packet").get("nw_src"), m.get("packet").get("nw_dst"), m.get("packet").get("nw_proto"), m.get("packet").get("tp_src"), m.get("packet").get("tp_dst")) rspec.match(match.serialize())
def __update_route_rspec(self, route, sliver, controllers, groups, matches): for key, rspec in route.iteritems(): rspec.sliver(sliver.get("description"), sliver.get("ref"), sliver.get("email")) for c in controllers: rspec.controller(c.get("url"), c.get("type")) for g in groups: rspec.group(g.get("name")) for dpid in g.get("dpids"): if dpid.get("routing_key") == key: rspec.group_datapath(g.get("name"), dpid) for m in matches: match = Match() for uf in m.get("use_groups"): match.add_use_group(uf.get("name")) for dpid in m.get("dpids"): if dpid.get("routing_key") == key: match.add_datapath(dpid) match.set_packet( m.get("packet").get("dl_src"), m.get("packet").get("dl_dst"), m.get("packet").get("dl_type"), m.get("packet").get("dl_vlan"), m.get("packet").get("nw_src"), m.get("packet").get("nw_dst"), m.get("packet").get("nw_proto"), m.get("packet").get("tp_src"), m.get("packet").get("tp_dst")) rspec.match(match.serialize())
def format_match(self, m): m_ = Match() for ug in m.iterfind("{%s}use-group" % (self.__of)): m_.add_use_group(ug.attrib.get("name")) for dp in m.iterfind("{%s}datapath" % (self.__of)): m_.add_datapath(self.__datapath(dp)) packet_ = m.find("{%s}packet" % (self.__of)) if packet_ is not None: dl_src = self.__packet(packet_, "dl_src") dl_dst = self.__packet(packet_, "dl_dst") dl_type = self.__packet(packet_, "dl_type") dl_vlan = self.__packet(packet_, "dl_vlan") nw_src = self.__packet(packet_, "nw_src") nw_dst = self.__packet(packet_, "nw_dst") nw_proto = self.__packet(packet_, "nw_proto") tp_src = self.__packet(packet_, "tp_src") tp_dst = self.__packet(packet_, "tp_dst") m_.set_packet(dl_src, dl_dst, dl_type, dl_vlan, nw_src, nw_dst, nw_proto, tp_src, tp_dst) return m_