示例#1
0
    def initialize_on_connect(self, datapath):
        """
        Install the default flows on datapath connect event.

        Args:
            datapath: ryu datapath struct
        """
        self._delete_all_flows(datapath)
        self._install_default_flows(datapath)
        self._datapath = datapath

        # The next table is dependent on whether enforcement_stats claims a
        # scratch table, which happens during its initialization. Since
        # initialization order is non-deterministic, redirect manager is
        # initialized here instead of in __init__.
        if self._enforcement_stats_scratch is not None:
            redirect_next_table = self._enforcement_stats_scratch
        else:
            redirect_next_table = self.next_main_table
        self._redirect_manager = RedirectionManager(
            self._bridge_ip_address,
            self.logger,
            self.tbl_num,
            redirect_next_table,
            self._redirect_scratch,
            self._session_rule_version_mapper)
示例#2
0
    def __init__(self, *args, **kwargs):
        super(EnforcementController, self).__init__(*args, **kwargs)
        self._config = kwargs['config']
        self.tbl_num = self._service_manager.get_table_num(self.APP_NAME)
        self.next_main_table = self._service_manager.get_next_table_num(
            EnforcementStatsController.APP_NAME)
        self._enforcement_stats_tbl = self._service_manager.get_table_num(
            EnforcementStatsController.APP_NAME)
        self.loop = kwargs['loop']

        self._msg_hub = MessageHub(self.logger)
        self._redirect_scratch = \
            self._service_manager.allocate_scratch_tables(self.APP_NAME, 1)[0]
        self._bridge_ip_address = kwargs['config']['bridge_ip_address']
        self._redirect_manager = None
        self._qos_mgr = None
        self._clean_restart = kwargs['config']['clean_restart']
        self._redirect_manager = RedirectionManager(
            self._bridge_ip_address,
            self.logger,
            self.tbl_num,
            self._enforcement_stats_tbl,
            self.next_main_table,
            self._redirect_scratch,
            self._session_rule_version_mapper)
示例#3
0
文件: gy.py 项目: go-magma/magma
 def __init__(self, *args, **kwargs):
     super(GYController, self).__init__(*args, **kwargs)
     self.tbl_num = self._service_manager.get_table_num(self.APP_NAME)
     self.next_main_table = self._service_manager.get_next_table_num(
         self.APP_NAME)
     self.loop = kwargs['loop']
     self._msg_hub = MessageHub(self.logger)
     self._internal_ip_allocator = kwargs['internal_ip_allocator']
     tbls = \
         self._service_manager.allocate_scratch_tables(self.APP_NAME, 2)
     self._redirect_scratch = tbls[0]
     self._mac_rewr = \
         self._service_manager.INTERNAL_MAC_IP_REWRITE_TBL_NUM
     self._bridge_ip_address = kwargs['config']['bridge_ip_address']
     self._clean_restart = kwargs['config']['clean_restart']
     self._redirect_manager = \
         RedirectionManager(
             self._bridge_ip_address,
             self.logger,
             self.tbl_num,
             self._service_manager.get_table_num(EGRESS),
             self._redirect_scratch,
             self._session_rule_version_mapper
         ).set_cwf_args(
             internal_ip_allocator=kwargs['internal_ip_allocator'],
             arp=kwargs['app_futures']['arpd'],
             mac_rewrite=self._mac_rewr,
             bridge_name=kwargs['config']['bridge_name'],
             egress_table=self._service_manager.get_table_num(EGRESS)
         )
示例#4
0
    def initialize_on_connect(self, datapath):
        """
        Install the default flows on datapath connect event.

        Args:
            datapath: ryu datapath struct
        """
        self._datapath = datapath
        self._qos_mgr = QosManager(datapath, self.loop, self._config)
        self._qos_mgr.setup()

        self._redirect_manager = RedirectionManager(
            self._bridge_ip_address, self.logger, self.tbl_num,
            self._enforcement_stats_scratch, self._redirect_scratch,
            self._session_rule_version_mapper)
示例#5
0
    def initialize_on_connect(self, datapath):
        """
        Install the default flows on datapath connect event.

        Args:
            datapath: ryu datapath struct
        """
        self._datapath = datapath

        if not self._relay_enabled:
            self._install_default_flows_if_not_installed(datapath, [])

        self._redirect_manager = RedirectionManager(
            self._bridge_ip_address, self.logger, self.tbl_num,
            self._enforcement_stats_scratch, self._redirect_scratch,
            self._session_rule_version_mapper)
示例#6
0
    def __init__(self, *args, **kwargs):
        super(EnforcementController, self).__init__(*args, **kwargs)
        self.tbl_num = self._service_manager.get_table_num(self.APP_NAME)
        self.next_table = self._service_manager.get_next_table_num(
            self.APP_NAME)
        self._datapath = None
        self._rule_mapper = kwargs['rule_id_mapper']
        self.loop = kwargs['loop']
        self._policy_dict = PolicyRuleDict()
        self._qos_map = QosQueueMap(kwargs['config']['nat_iface'],
                                    kwargs['config']['enodeb_iface'],
                                    kwargs['config']['enable_queue_pgm'])
        self._msg_hub = MessageHub(self.logger)

        self._redirect_manager = RedirectionManager(
            kwargs['config']['bridge_ip_address'], self.logger, self.tbl_num,
            self.next_table)