|
|
@@ -8060,7 +8060,14 @@ function openAddBgpPeerModal() {
|
|
|
document.getElementById('modal-bgp-peer-redist-bgp').checked = false;
|
|
|
if (document.getElementById('modal-bgp-peer-redist-vpn')) document.getElementById('modal-bgp-peer-redist-vpn').checked = false;
|
|
|
if (document.getElementById('modal-bgp-peer-redist-dhcp')) document.getElementById('modal-bgp-peer-redist-dhcp').checked = false;
|
|
|
+ if (document.getElementById('modal-bgp-peer-redist-bgp-mpls-vpn')) document.getElementById('modal-bgp-peer-redist-bgp-mpls-vpn').checked = false;
|
|
|
+ if (document.getElementById('modal-bgp-peer-redist-slaac')) document.getElementById('modal-bgp-peer-redist-slaac').checked = false;
|
|
|
document.getElementById('modal-bgp-peer-default-orig').checked = false;
|
|
|
+ if (document.getElementById('modal-bgp-peer-network-blackhole')) document.getElementById('modal-bgp-peer-network-blackhole').checked = false;
|
|
|
+ if (document.getElementById('modal-bgp-peer-no-early-cut')) document.getElementById('modal-bgp-peer-no-early-cut').checked = false;
|
|
|
+ if (document.getElementById('modal-bgp-peer-keep-sent-attrs')) document.getElementById('modal-bgp-peer-keep-sent-attrs').checked = false;
|
|
|
+ if (document.getElementById('modal-bgp-peer-input-affinity')) document.getElementById('modal-bgp-peer-input-affinity').value = '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-output-affinity')) document.getElementById('modal-bgp-peer-output-affinity').value = '';
|
|
|
|
|
|
// Attributes Tab
|
|
|
document.getElementById('modal-bgp-peer-nexthop-choice').value = 'force-self';
|
|
|
@@ -8071,8 +8078,18 @@ function openAddBgpPeerModal() {
|
|
|
document.getElementById('modal-bgp-peer-as-override').checked = false;
|
|
|
|
|
|
// Filter Tab
|
|
|
+ populateFilterChainsDatalist();
|
|
|
document.getElementById('modal-bgp-peer-in-filter').value = '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-accept-nlri')) document.getElementById('modal-bgp-peer-in-accept-nlri').value = '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-accept-comm')) document.getElementById('modal-bgp-peer-in-accept-comm').value = '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-accept-ext-comm')) document.getElementById('modal-bgp-peer-in-accept-ext-comm').value = '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-accept-large-comm')) document.getElementById('modal-bgp-peer-in-accept-large-comm').value = '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-filter-comm')) document.getElementById('modal-bgp-peer-in-filter-comm').value = '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-filter-ext-comm')) document.getElementById('modal-bgp-peer-in-filter-ext-comm').value = '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-filter-large-comm')) document.getElementById('modal-bgp-peer-in-filter-large-comm').value = '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-filter-unknown')) document.getElementById('modal-bgp-peer-in-filter-unknown').checked = false;
|
|
|
document.getElementById('modal-bgp-peer-out-filter').value = '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-out-selection-policy')) document.getElementById('modal-bgp-peer-out-selection-policy').value = 'disabled';
|
|
|
if (document.getElementById('modal-bgp-peer-out-network-name')) document.getElementById('modal-bgp-peer-out-network-name').value = '';
|
|
|
|
|
|
populateBgpRoutingTables();
|
|
|
@@ -8090,11 +8107,32 @@ function openAddBgpPeerModal() {
|
|
|
document.getElementById('bgp-peer-modal').classList.remove('hidden');
|
|
|
}
|
|
|
|
|
|
+function populateFilterChainsDatalist() {
|
|
|
+ const dl = document.getElementById('filter-chains-list');
|
|
|
+ if (!dl) return;
|
|
|
+ const chains = new Set();
|
|
|
+ (state.routingFilters || []).forEach(f => {
|
|
|
+ if (f.chain) chains.add(f.chain);
|
|
|
+ });
|
|
|
+ if (chains.size === 0) {
|
|
|
+ chains.add('awmn');
|
|
|
+ chains.add('bgp-in');
|
|
|
+ chains.add('bgp-out');
|
|
|
+ }
|
|
|
+ dl.innerHTML = '';
|
|
|
+ chains.forEach(c => {
|
|
|
+ const opt = document.createElement('option');
|
|
|
+ opt.value = c;
|
|
|
+ dl.appendChild(opt);
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
function openEditBgpPeerModal(id) {
|
|
|
const p = (state.bgpPeers || []).find(item => item.id === id);
|
|
|
if (!p) return;
|
|
|
|
|
|
populateBgpRoutingTables();
|
|
|
+ populateFilterChainsDatalist();
|
|
|
|
|
|
document.getElementById('modal-bgp-peer-id').value = p.id;
|
|
|
document.getElementById('bgp-peer-modal-title').innerText = p.name || p.id;
|
|
|
@@ -8137,7 +8175,14 @@ function openEditBgpPeerModal(id) {
|
|
|
document.getElementById('modal-bgp-peer-redist-bgp').checked = !!p.redist_bgp;
|
|
|
if (document.getElementById('modal-bgp-peer-redist-vpn')) document.getElementById('modal-bgp-peer-redist-vpn').checked = !!p.redist_vpn;
|
|
|
if (document.getElementById('modal-bgp-peer-redist-dhcp')) document.getElementById('modal-bgp-peer-redist-dhcp').checked = !!p.redist_dhcp;
|
|
|
+ if (document.getElementById('modal-bgp-peer-redist-bgp-mpls-vpn')) document.getElementById('modal-bgp-peer-redist-bgp-mpls-vpn').checked = !!p.redist_bgp_mpls_vpn;
|
|
|
+ if (document.getElementById('modal-bgp-peer-redist-slaac')) document.getElementById('modal-bgp-peer-redist-slaac').checked = !!p.redist_slaac;
|
|
|
document.getElementById('modal-bgp-peer-default-orig').checked = !!p.default_originate;
|
|
|
+ if (document.getElementById('modal-bgp-peer-network-blackhole')) document.getElementById('modal-bgp-peer-network-blackhole').checked = !!p.network_blackhole;
|
|
|
+ if (document.getElementById('modal-bgp-peer-no-early-cut')) document.getElementById('modal-bgp-peer-no-early-cut').checked = !!p.no_early_cut;
|
|
|
+ if (document.getElementById('modal-bgp-peer-keep-sent-attrs')) document.getElementById('modal-bgp-peer-keep-sent-attrs').checked = !!p.keep_sent_attrs;
|
|
|
+ if (document.getElementById('modal-bgp-peer-input-affinity')) document.getElementById('modal-bgp-peer-input-affinity').value = p.input_affinity || '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-output-affinity')) document.getElementById('modal-bgp-peer-output-affinity').value = p.output_affinity || '';
|
|
|
|
|
|
// Attributes Tab
|
|
|
document.getElementById('modal-bgp-peer-nexthop-choice').value = p.nexthop_choice || (p.nexthop_self ? 'force-self' : 'default');
|
|
|
@@ -8149,7 +8194,16 @@ function openEditBgpPeerModal(id) {
|
|
|
|
|
|
// Filter Tab
|
|
|
document.getElementById('modal-bgp-peer-in-filter').value = p.in_filter || '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-accept-nlri')) document.getElementById('modal-bgp-peer-in-accept-nlri').value = p.in_accept_nlri || '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-accept-comm')) document.getElementById('modal-bgp-peer-in-accept-comm').value = p.in_accept_communities || '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-accept-ext-comm')) document.getElementById('modal-bgp-peer-in-accept-ext-comm').value = p.in_accept_ext_communities || '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-accept-large-comm')) document.getElementById('modal-bgp-peer-in-accept-large-comm').value = p.in_accept_large_communities || '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-filter-comm')) document.getElementById('modal-bgp-peer-in-filter-comm').value = p.in_filter_communities || '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-filter-ext-comm')) document.getElementById('modal-bgp-peer-in-filter-ext-comm').value = p.in_filter_ext_communities || '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-filter-large-comm')) document.getElementById('modal-bgp-peer-in-filter-large-comm').value = p.in_filter_large_communities || '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-in-filter-unknown')) document.getElementById('modal-bgp-peer-in-filter-unknown').checked = !!p.in_filter_unknown;
|
|
|
document.getElementById('modal-bgp-peer-out-filter').value = p.out_filter || '';
|
|
|
+ if (document.getElementById('modal-bgp-peer-out-selection-policy')) document.getElementById('modal-bgp-peer-out-selection-policy').value = p.out_selection_policy || 'disabled';
|
|
|
if (document.getElementById('modal-bgp-peer-out-network-name')) document.getElementById('modal-bgp-peer-out-network-name').value = p.output_network || '';
|
|
|
|
|
|
// Output Networks
|
|
|
@@ -8238,7 +8292,14 @@ function getBgpPeerFormData() {
|
|
|
redist_bgp: document.getElementById('modal-bgp-peer-redist-bgp').checked,
|
|
|
redist_vpn: document.getElementById('modal-bgp-peer-redist-vpn')?.checked || false,
|
|
|
redist_dhcp: document.getElementById('modal-bgp-peer-redist-dhcp')?.checked || false,
|
|
|
+ redist_bgp_mpls_vpn: document.getElementById('modal-bgp-peer-redist-bgp-mpls-vpn')?.checked || false,
|
|
|
+ redist_slaac: document.getElementById('modal-bgp-peer-redist-slaac')?.checked || false,
|
|
|
default_originate: document.getElementById('modal-bgp-peer-default-orig').checked,
|
|
|
+ network_blackhole: document.getElementById('modal-bgp-peer-network-blackhole')?.checked || false,
|
|
|
+ no_early_cut: document.getElementById('modal-bgp-peer-no-early-cut')?.checked || false,
|
|
|
+ keep_sent_attrs: document.getElementById('modal-bgp-peer-keep-sent-attrs')?.checked || false,
|
|
|
+ input_affinity: (document.getElementById('modal-bgp-peer-input-affinity')?.value || '').trim(),
|
|
|
+ output_affinity: (document.getElementById('modal-bgp-peer-output-affinity')?.value || '').trim(),
|
|
|
nexthop_choice: document.getElementById('modal-bgp-peer-nexthop-choice').value,
|
|
|
nexthop_self: document.getElementById('modal-bgp-peer-nexthop-choice').value === 'force-self',
|
|
|
default_prepend: parseInt(document.getElementById('modal-bgp-peer-default-prepend').value, 10) || 0,
|
|
|
@@ -8247,7 +8308,16 @@ function getBgpPeerFormData() {
|
|
|
remove_private_as: document.getElementById('modal-bgp-peer-remove-priv-as').checked,
|
|
|
as_override: document.getElementById('modal-bgp-peer-as-override').checked,
|
|
|
in_filter: (document.getElementById('modal-bgp-peer-in-filter')?.value || '').trim(),
|
|
|
+ in_accept_nlri: (document.getElementById('modal-bgp-peer-in-accept-nlri')?.value || '').trim(),
|
|
|
+ in_accept_communities: (document.getElementById('modal-bgp-peer-in-accept-comm')?.value || '').trim(),
|
|
|
+ in_accept_ext_communities: (document.getElementById('modal-bgp-peer-in-accept-ext-comm')?.value || '').trim(),
|
|
|
+ in_accept_large_communities: (document.getElementById('modal-bgp-peer-in-accept-large-comm')?.value || '').trim(),
|
|
|
+ in_filter_communities: (document.getElementById('modal-bgp-peer-in-filter-comm')?.value || '').trim(),
|
|
|
+ in_filter_ext_communities: (document.getElementById('modal-bgp-peer-in-filter-ext-comm')?.value || '').trim(),
|
|
|
+ in_filter_large_communities: (document.getElementById('modal-bgp-peer-in-filter-large-comm')?.value || '').trim(),
|
|
|
+ in_filter_unknown: document.getElementById('modal-bgp-peer-in-filter-unknown')?.checked || false,
|
|
|
out_filter: (document.getElementById('modal-bgp-peer-out-filter')?.value || '').trim(),
|
|
|
+ out_selection_policy: document.getElementById('modal-bgp-peer-out-selection-policy')?.value || 'disabled',
|
|
|
output_network: (document.getElementById('modal-bgp-peer-out-network-name')?.value || '').trim(),
|
|
|
output_networks: outputNetworks
|
|
|
};
|