Example #1
0
    def _get_ofport(self, port_name):
        ovs = Utils.get_ovs_bridge(self._datapath)
        if ovs is None:
            return None

        try:
            port_no = ovs.get_ofport(port_name)

        except AssertionError as error:
            self.logger.debug(
                'Cannot get port number for %s: %s',
                port_name,
                error,
            )
            return None

        except Exception as e:  # pylint: disable=broad-except
            self.logger.debug(
                'Cannot get port number for %s: %s',
                port_name,
                e,
            )
            return None

        return port_no
Example #2
0
    def _add_gtp_port(self, gnb_ip):
        if not self.config.multi_tunnel_flag:
            return self.config.gtp_port

        port_name = self._ip_addr_to_gtp_port_name(gnb_ip)
        # If GTP port already exists, returns OFPort number
        gtpport = self._get_ofport(port_name)
        if gtpport is not None:
            return gtpport

        ovs = Utils.get_ovs_bridge(self._datapath)
        if ovs is None:
            return None

        port_name = self._ip_addr_to_gtp_port_name(gnb_ip)
        ovs.add_tunnel_port(port_name, self.ovs_gtp_type, gnb_ip, key="flow")

        return self._get_ofport(port_name)