Project

General

Profile

« Previous | Next » 

Revision 5155bb33

Added by Ermal Luçi over 16 years ago

Optimize adding new members to QinQ to evitate recreating the whole QinQ members.

View differences:

usr/local/www/interfaces_qinq_edit.php
155 155
			$addmembers = array_diff($nmembers, $omembers);
156 156
			if (count($addmembers) > 0) {
157 157
				foreach ($addmembers as $member) {
158
					$vlan = array();
159
					$vlan['if'] = "vlan{$_POST['tag']}";
160
					$vlan['tag'] = $member;
161
					interface_qinq2_configure($vlan);
158
					$if = "vlan{$_POST['tag']}";
159
					$vlanif = "{$if}_{$member}";
160
					$macaddr = get_interface_mac($if);
161
					mwexec("/usr/sbin/ngctl mkpeer {$if}qinq: eiface {$if}{$member} ether");
162
					mwexec("/usr/sbin/ngctl name {$if}qinq:{$if}{$tag} {$if}h{$member}");
163
					mwexec("/usr/sbin/ngctl msg {$if}qinq: addfilter '{ vlan={$member} hook=\\\"{$if}{$member}\\\" }'");
164
					mwexec("/usr/sbin/ngctl msg {$if}h{$tag}: setifname \\\"{$vlanif}\\\"");
165
					mwexec("/usr/sbin/ngctl msg {$vlanif}: setenaddr {$macaddr}");
162 166
				}
163 167
			}
164 168
			$a_qinqs[$id] = $qinqentry;

Also available in: Unified diff