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)
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)
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) )
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)
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)
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)