[CI][doc][build] Trim src folder files trailing blanks (#15162)

- Run pre-commit tox profile to trim all trailing blanks
- Use several commits with a per-folder based strategy
  to ease their merge

Issue #15114

Signed-off-by: Guillaume Lambert <guillaume.lambert@orange.com>
This commit is contained in:
Guilt 2023-05-24 19:01:43 +02:00 committed by GitHub
parent 6745691eb5
commit a73d443c1d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
192 changed files with 1216 additions and 1216 deletions

View File

@ -7,7 +7,7 @@ all:
gcc plugin_test.c $(IFLAGS) $(CFLAGS) -o plugin_test.o gcc plugin_test.c $(IFLAGS) $(CFLAGS) -o plugin_test.o
gcc mock_helper.c $(IFLAGS) $(CFLAGS) -o mock_helper.o gcc mock_helper.c $(IFLAGS) $(CFLAGS) -o mock_helper.o
gcc ../plugin.c $(IFLAGS) $(CFLAGS) $(MFLAG) -o plugin.o gcc ../plugin.c $(IFLAGS) $(CFLAGS) $(MFLAG) -o plugin.o
gcc plugin_test.o mock_helper.o plugin.o -o plugin_test -lc -lcunit gcc plugin_test.o mock_helper.o plugin.o -o plugin_test -lc -lcunit
test: test:
# run unit test, if UT failed, build will break # run unit test, if UT failed, build will break

View File

@ -106,7 +106,7 @@ void *dlopen(const char *filename, int flags)
mock_dlerror = mock_dlerror_failed; mock_dlerror = mock_dlerror_failed;
return NULL; return NULL;
} }
// all other case return mock handle // all other case return mock handle
mock_dlerror = NULL; mock_dlerror = NULL;
return mock_plugin_handle; return mock_plugin_handle;
@ -133,21 +133,21 @@ void *dlsym(void *restrict handle, const char *restrict symbol)
mock_dlerror = mock_dlerror_failed; mock_dlerror = mock_dlerror_failed;
return NULL; return NULL;
} }
case TEST_SCEANRIO_PLUGIN_UNINIT_NOT_EXIT: case TEST_SCEANRIO_PLUGIN_UNINIT_NOT_EXIT:
if (strcmp(symbol, "plugin_uninit") == 0) if (strcmp(symbol, "plugin_uninit") == 0)
{ {
mock_dlerror = mock_dlerror_failed; mock_dlerror = mock_dlerror_failed;
return NULL; return NULL;
} }
case TEST_SCEANRIO_PLUGIN_INIT_NOT_EXIT: case TEST_SCEANRIO_PLUGIN_INIT_NOT_EXIT:
if (strcmp(symbol, "plugin_init") == 0) if (strcmp(symbol, "plugin_init") == 0)
{ {
mock_dlerror = mock_dlerror_failed; mock_dlerror = mock_dlerror_failed;
return NULL; return NULL;
} }
case TEST_SCEANRIO_PLUGIN_INIT_SUCCESS: case TEST_SCEANRIO_PLUGIN_INIT_SUCCESS:
if (strcmp(symbol, "plugin_init") == 0) if (strcmp(symbol, "plugin_init") == 0)
{ {
@ -165,7 +165,7 @@ void *dlsym(void *restrict handle, const char *restrict symbol)
return mock_on_shell_execve; return mock_on_shell_execve;
} }
} }
return mock_plugin_default_function_handle; return mock_plugin_default_function_handle;
} }

View File

@ -16,7 +16,7 @@ int start_up() {
/* Test plugin not exist scenario */ /* Test plugin not exist scenario */
void testcase_try_load_plugin_by_path_not_exist() { void testcase_try_load_plugin_by_path_not_exist() {
set_test_scenario(TEST_SCEANRIO_PLUGIN_NOT_EXIT); set_test_scenario(TEST_SCEANRIO_PLUGIN_NOT_EXIT);
try_load_plugin_by_path("./testplugin.so"); try_load_plugin_by_path("./testplugin.so");
CU_ASSERT_STRING_EQUAL(mock_itrace_message_buffer, "Plugin: can't load plugin ./testplugin.so: MOCK error\n"); CU_ASSERT_STRING_EQUAL(mock_itrace_message_buffer, "Plugin: can't load plugin ./testplugin.so: MOCK error\n");
@ -25,7 +25,7 @@ void testcase_try_load_plugin_by_path_not_exist() {
/* Test plugin exist but not support shell_execve scenario */ /* Test plugin exist but not support shell_execve scenario */
void testcase_try_load_plugin_by_path_execve_not_exist() { void testcase_try_load_plugin_by_path_execve_not_exist() {
set_test_scenario(TEST_SCEANRIO_PLUGIN_EXECVE_NOT_EXIT); set_test_scenario(TEST_SCEANRIO_PLUGIN_EXECVE_NOT_EXIT);
try_load_plugin_by_path("./testplugin.so"); try_load_plugin_by_path("./testplugin.so");
CU_ASSERT_STRING_EQUAL(mock_itrace_message_buffer, "Plugin: can't find on_shell_execve function ./testplugin.so: MOCK error\n"); CU_ASSERT_STRING_EQUAL(mock_itrace_message_buffer, "Plugin: can't find on_shell_execve function ./testplugin.so: MOCK error\n");
@ -34,18 +34,18 @@ void testcase_try_load_plugin_by_path_execve_not_exist() {
/* Test plugin exist but not support plugin_uninit scenario */ /* Test plugin exist but not support plugin_uninit scenario */
void testcase_try_load_plugin_by_path_plugin_uninit_not_exist() { void testcase_try_load_plugin_by_path_plugin_uninit_not_exist() {
set_test_scenario(TEST_SCEANRIO_PLUGIN_UNINIT_NOT_EXIT); set_test_scenario(TEST_SCEANRIO_PLUGIN_UNINIT_NOT_EXIT);
try_load_plugin_by_path("./testplugin.so"); try_load_plugin_by_path("./testplugin.so");
CU_ASSERT_STRING_EQUAL(mock_itrace_message_buffer, "Plugin: can't find plugin_uninit function ./testplugin.so: MOCK error\n"); CU_ASSERT_STRING_EQUAL(mock_itrace_message_buffer, "Plugin: can't find plugin_uninit function ./testplugin.so: MOCK error\n");
} }
/* Test plugin exist but not support plugin_init scenario */ /* Test plugin exist but not support plugin_init scenario */
void testcase_try_load_plugin_by_path_plugin_init_not_exist() { void testcase_try_load_plugin_by_path_plugin_init_not_exist() {
set_test_scenario(TEST_SCEANRIO_PLUGIN_INIT_NOT_EXIT); set_test_scenario(TEST_SCEANRIO_PLUGIN_INIT_NOT_EXIT);
try_load_plugin_by_path("./testplugin.so"); try_load_plugin_by_path("./testplugin.so");
CU_ASSERT_STRING_EQUAL(mock_itrace_message_buffer, "Plugin: can't find plugin_init function ./testplugin.so: MOCK error\n"); CU_ASSERT_STRING_EQUAL(mock_itrace_message_buffer, "Plugin: can't find plugin_init function ./testplugin.so: MOCK error\n");
} }
@ -54,22 +54,22 @@ void testcase_try_load_plugin_by_path_plugin_init_success() {
set_test_scenario(TEST_SCEANRIO_PLUGIN_INIT_SUCCESS); set_test_scenario(TEST_SCEANRIO_PLUGIN_INIT_SUCCESS);
set_memory_allocate_count(0); set_memory_allocate_count(0);
set_plugin_init_status(PLUGIN_NOT_INITIALIZE); set_plugin_init_status(PLUGIN_NOT_INITIALIZE);
try_load_plugin_by_path("./testplugin.so"); try_load_plugin_by_path("./testplugin.so");
// check plugin init success // check plugin init success
CU_ASSERT_EQUAL(get_plugin_init_status(), PLUGIN_INITIALIZED); CU_ASSERT_EQUAL(get_plugin_init_status(), PLUGIN_INITIALIZED);
// check API success // check API success
CU_ASSERT_STRING_EQUAL(mock_itrace_message_buffer, "Plugin: plugin ./testplugin.so loaded\n"); CU_ASSERT_STRING_EQUAL(mock_itrace_message_buffer, "Plugin: plugin ./testplugin.so loaded\n");
// check global plugin list not empty and contains correct pluginglobal_plugin_list // check global plugin list not empty and contains correct pluginglobal_plugin_list
CU_ASSERT_NOT_EQUAL(global_plugin_list, NULL); CU_ASSERT_NOT_EQUAL(global_plugin_list, NULL);
CU_ASSERT_EQUAL(global_plugin_list->plugin_handle, TEST_MOCK_PLUGIN_HANDLE); CU_ASSERT_EQUAL(global_plugin_list->plugin_handle, TEST_MOCK_PLUGIN_HANDLE);
// release all loaded plugins // release all loaded plugins
free_loaded_plugins(); free_loaded_plugins();
// check if memory fully released // check if memory fully released
CU_ASSERT_EQUAL(global_plugin_list, NULL); CU_ASSERT_EQUAL(global_plugin_list, NULL);
CU_ASSERT_EQUAL(get_memory_allocate_count(), 0); CU_ASSERT_EQUAL(get_memory_allocate_count(), 0);
@ -80,16 +80,16 @@ void testcase_release_loaded_plugin() {
set_test_scenario(TEST_SCEANRIO_PLUGIN_INIT_SUCCESS); set_test_scenario(TEST_SCEANRIO_PLUGIN_INIT_SUCCESS);
set_memory_allocate_count(0); set_memory_allocate_count(0);
try_load_plugin_by_path("./testplugin.so"); try_load_plugin_by_path("./testplugin.so");
// check memory allocated // check memory allocated
CU_ASSERT_NOT_EQUAL(get_memory_allocate_count(), 0); CU_ASSERT_NOT_EQUAL(get_memory_allocate_count(), 0);
// check plugin init success // check plugin init success
CU_ASSERT_EQUAL(get_plugin_init_status(), PLUGIN_INITIALIZED); CU_ASSERT_EQUAL(get_plugin_init_status(), PLUGIN_INITIALIZED);
// release all loaded plugins // release all loaded plugins
free_loaded_plugins(); free_loaded_plugins();
// check if memory fully released // check if memory fully released
CU_ASSERT_EQUAL(global_plugin_list, NULL); CU_ASSERT_EQUAL(global_plugin_list, NULL);
CU_ASSERT_EQUAL(get_memory_allocate_count(), 0); CU_ASSERT_EQUAL(get_memory_allocate_count(), 0);
@ -100,22 +100,22 @@ void testcase_load_plugin_by_config() {
set_test_scenario(TEST_SCEANRIO_PLUGIN_INIT_SUCCESS); set_test_scenario(TEST_SCEANRIO_PLUGIN_INIT_SUCCESS);
set_memory_allocate_count(0); set_memory_allocate_count(0);
load_plugin_by_config("./bash_plugins.conf"); load_plugin_by_config("./bash_plugins.conf");
// check memory allocated // check memory allocated
CU_ASSERT_NOT_EQUAL(get_memory_allocate_count(), 0); CU_ASSERT_NOT_EQUAL(get_memory_allocate_count(), 0);
// check plugin init success // check plugin init success
CU_ASSERT_EQUAL(get_plugin_init_status(), PLUGIN_INITIALIZED); CU_ASSERT_EQUAL(get_plugin_init_status(), PLUGIN_INITIALIZED);
// check target plugin in config file loaded // check target plugin in config file loaded
CU_ASSERT_STRING_EQUAL(mock_itrace_message_buffer, "Plugin: plugin /usr/lib/bash-plugins/another_test_plugin.so loaded\n"); CU_ASSERT_STRING_EQUAL(mock_itrace_message_buffer, "Plugin: plugin /usr/lib/bash-plugins/another_test_plugin.so loaded\n");
// check there are 2 plugins loaded // check there are 2 plugins loaded
CU_ASSERT_EQUAL(get_memory_allocate_count(), 2); CU_ASSERT_EQUAL(get_memory_allocate_count(), 2);
// release all loaded plugins // release all loaded plugins
free_loaded_plugins(); free_loaded_plugins();
// check if memory fully released // check if memory fully released
CU_ASSERT_EQUAL(global_plugin_list, NULL); CU_ASSERT_EQUAL(global_plugin_list, NULL);
printf("Count %d\n", get_memory_allocate_count()); printf("Count %d\n", get_memory_allocate_count());
@ -127,16 +127,16 @@ void testcase_invoke_plugin_on_shell_execve() {
set_test_scenario(TEST_SCEANRIO_PLUGIN_INIT_SUCCESS); set_test_scenario(TEST_SCEANRIO_PLUGIN_INIT_SUCCESS);
set_memory_allocate_count(0); set_memory_allocate_count(0);
load_plugin_by_config("./bash_plugins.conf"); load_plugin_by_config("./bash_plugins.conf");
// invoke plugin method // invoke plugin method
char** pargv = (char**)0x5234; char** pargv = (char**)0x5234;
invoke_plugin_on_shell_execve("testuser", "testcommand", pargv); invoke_plugin_on_shell_execve("testuser", "testcommand", pargv);
printf(mock_onshell_execve_command_buffer); printf(mock_onshell_execve_command_buffer);
CU_ASSERT_STRING_EQUAL(mock_onshell_execve_command_buffer, "on_shell_execve: user: testuser, level: 1, command: testcommand, argv: 0x5234\n"); CU_ASSERT_STRING_EQUAL(mock_onshell_execve_command_buffer, "on_shell_execve: user: testuser, level: 1, command: testcommand, argv: 0x5234\n");
// release all loaded plugins // release all loaded plugins
free_loaded_plugins(); free_loaded_plugins();
// check if memory fully released // check if memory fully released
CU_ASSERT_EQUAL(global_plugin_list, NULL); CU_ASSERT_EQUAL(global_plugin_list, NULL);
printf("Count %d\n", get_memory_allocate_count()); printf("Count %d\n", get_memory_allocate_count());
@ -198,7 +198,7 @@ int main(void) {
CU_cleanup_registry(); CU_cleanup_registry();
return CU_get_error(); return CU_get_error();
} }
if (CU_get_error() != CUE_SUCCESS) { if (CU_get_error() != CUE_SUCCESS) {
fprintf(stderr, "Error adding test: (%d)%s\n", CU_get_error(), CU_get_error_msg()); fprintf(stderr, "Error adding test: (%d)%s\n", CU_get_error(), CU_get_error_msg());
} }
@ -211,7 +211,7 @@ int main(void) {
} }
CU_basic_show_failures(CU_get_failure_list()); CU_basic_show_failures(CU_get_failure_list());
// use failed UT count as return value // use failed UT count as return value
return CU_get_number_of_failure_records(); return CU_get_number_of_failure_records();
} }

View File

@ -19,7 +19,7 @@ else ifeq ($(CROSS_BUILD_ENVIRON), y)
else else
dpkg-buildpackage -rfakeroot -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR) dpkg-buildpackage -rfakeroot -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR)
endif endif
popd popd
mv $(DERIVED_TARGET) $* $(DEST)/ mv $(DERIVED_TARGET) $* $(DEST)/

View File

@ -6,7 +6,7 @@ Standards-Version: 3.9.3
Section: net Section: net
Package: gobgp Package: gobgp
Priority: extra Priority: extra
Architecture: amd64 Architecture: amd64
Depends: ${shlibs:Depends}, ${misc:Depends} Depends: ${shlibs:Depends}, ${misc:Depends}
Description: gobgp BGP daemon Description: gobgp BGP daemon

View File

@ -31,7 +31,7 @@ case "$1" in
echo /etc/gobgp/gobgpd.conf not found echo /etc/gobgp/gobgpd.conf not found
fi fi
;; ;;
stop) stop)
kill -9 $(echo /var/run/gobgpd.pid) kill -9 $(echo /var/run/gobgpd.pid)
;; ;;

View File

@ -1,3 +1,3 @@
#!/usr/bin/make -f #!/usr/bin/make -f
%: %:
dh $@ --with systemd dh $@ --with systemd

View File

@ -487,17 +487,17 @@ enum MCLAG_DOMAIN_CFG_OP_TYPE {
MCLAG_CFG_OPER_ADD = 1, //Add domain MCLAG_CFG_OPER_ADD = 1, //Add domain
MCLAG_CFG_OPER_DEL = 2, //Delete domain MCLAG_CFG_OPER_DEL = 2, //Delete domain
MCLAG_CFG_OPER_UPDATE = 3, //update domain MCLAG_CFG_OPER_UPDATE = 3, //update domain
MCLAG_CFG_OPER_ATTR_DEL = 4 //Attribute del MCLAG_CFG_OPER_ATTR_DEL = 4 //Attribute del
}; };
enum MCLAG_DOMAIN_CFG_ATTR_BMAP_FLAGS { enum MCLAG_DOMAIN_CFG_ATTR_BMAP_FLAGS {
MCLAG_CFG_ATTR_NONE = 0x0, MCLAG_CFG_ATTR_NONE = 0x0,
MCLAG_CFG_ATTR_SRC_ADDR = 0x1, MCLAG_CFG_ATTR_SRC_ADDR = 0x1,
MCLAG_CFG_ATTR_PEER_ADDR = 0x2, MCLAG_CFG_ATTR_PEER_ADDR = 0x2,
MCLAG_CFG_ATTR_PEER_LINK = 0x4, MCLAG_CFG_ATTR_PEER_LINK = 0x4,
MCLAG_CFG_ATTR_KEEPALIVE_INTERVAL = 0x8, MCLAG_CFG_ATTR_KEEPALIVE_INTERVAL = 0x8,
MCLAG_CFG_ATTR_SESSION_TIMEOUT = 0x10 MCLAG_CFG_ATTR_SESSION_TIMEOUT = 0x10
}; };
struct IccpSyncdHDr struct IccpSyncdHDr

View File

@ -270,9 +270,9 @@ typedef struct system_dbg_counter_info
uint32_t peer_link_down_counter; uint32_t peer_link_down_counter;
uint32_t warmboot_counter; uint32_t warmboot_counter;
uint32_t rx_peer_invalid_msg_counter; //counts partial msgs received as sending end is not sending partial msgs uint32_t rx_peer_invalid_msg_counter; //counts partial msgs received as sending end is not sending partial msgs
uint32_t rx_peer_hdr_read_sock_err_counter; //counts socket header read errors uint32_t rx_peer_hdr_read_sock_err_counter; //counts socket header read errors
uint32_t rx_peer_hdr_read_sock_zero_len_counter; //counts socket header read zero length uint32_t rx_peer_hdr_read_sock_zero_len_counter; //counts socket header read zero length
uint32_t rx_peer_tlv_read_sock_err_counter; //counts socket data/tlv read errors uint32_t rx_peer_tlv_read_sock_err_counter; //counts socket data/tlv read errors
uint32_t rx_peer_tlv_read_sock_zero_len_counter; //counts socket data/tlv read zero length uint32_t rx_peer_tlv_read_sock_zero_len_counter; //counts socket data/tlv read zero length
uint32_t socket_close_err_counter; //socket close failure uint32_t socket_close_err_counter; //socket close failure
uint32_t socket_cleanup_counter; //socket cleanup outside of session down uint32_t socket_cleanup_counter; //socket cleanup outside of session down

View File

@ -103,7 +103,7 @@ int iccp_mclag_config_dump(char * *buf, int *num, int mclag_id)
state_info.keepalive_time = csm->keepalive_time; state_info.keepalive_time = csm->keepalive_time;
state_info.session_timeout = csm->session_timeout; state_info.session_timeout = csm->session_timeout;
logconfig = logger_get_configuration(); logconfig = logger_get_configuration();
memcpy(state_info.loglevel, log_level_to_string(logconfig->log_level), strlen( log_level_to_string(logconfig->log_level))); memcpy(state_info.loglevel, log_level_to_string(logconfig->log_level), strlen( log_level_to_string(logconfig->log_level)));

View File

@ -122,7 +122,7 @@ void iccp_csm_init(struct CSM* csm)
memset(csm->peer_ip, 0, INET_ADDRSTRLEN); memset(csm->peer_ip, 0, INET_ADDRSTRLEN);
memset(csm->iccp_info.sender_name, 0, MAX_L_ICC_SENDER_NAME); memset(csm->iccp_info.sender_name, 0, MAX_L_ICC_SENDER_NAME);
csm->iccp_info.icc_rg_id = 0x0; csm->iccp_info.icc_rg_id = 0x0;
csm->keepalive_time = CONNECT_INTERVAL_SEC; csm->keepalive_time = CONNECT_INTERVAL_SEC;
csm->session_timeout = HEARTBEAT_TIMEOUT_SEC; csm->session_timeout = HEARTBEAT_TIMEOUT_SEC;
} }
@ -217,7 +217,7 @@ void iccp_csm_finalize(struct CSM* csm)
LIST_REMOVE(cif,csm_next); LIST_REMOVE(cif,csm_next);
free(cif); free(cif);
} }
/* Release iccp_csm */ /* Release iccp_csm */
pthread_mutex_destroy(&(csm->conn_mutex)); pthread_mutex_destroy(&(csm->conn_mutex));
iccp_csm_msg_list_finalize(csm); iccp_csm_msg_list_finalize(csm);

View File

@ -515,7 +515,7 @@ static void do_ndisc_learn_from_kernel(struct ndmsg *ndm, struct rtattr *tb[], i
} }
} }
} }
} }
} }
if (!(csm && lif_po)) { if (!(csm && lif_po)) {
@ -1204,7 +1204,7 @@ void do_ndisc_update_from_reply_packet(unsigned int ifindex, char *ipv6_addr, ui
ndisc_info->op_type = ndisc_msg->op_type; ndisc_info->op_type = ndisc_msg->op_type;
sprintf(ndisc_info->ifname, "%s", ndisc_msg->ifname); sprintf(ndisc_info->ifname, "%s", ndisc_msg->ifname);
memcpy(ndisc_info->mac_addr, ndisc_msg->mac_addr, ETHER_ADDR_LEN); memcpy(ndisc_info->mac_addr, ndisc_msg->mac_addr, ETHER_ADDR_LEN);
ICCPD_LOG_DEBUG(__FUNCTION__, "Update ND for %s", show_ipv6_str((char *)ndisc_msg->ipv6_addr)); ICCPD_LOG_DEBUG(__FUNCTION__, "Update ND for %s", show_ipv6_str((char *)ndisc_msg->ipv6_addr));
} }
break; break;
} }
@ -1330,7 +1330,7 @@ int add_pending_vlan_mbr(struct PendingVlanMbrIf* mbr_if, uint16_t vid)
struct VLAN_ID *vlan = NULL; struct VLAN_ID *vlan = NULL;
struct VLAN_ID vlan_key = { 0 }; struct VLAN_ID vlan_key = { 0 };
char vlan_name[16] = ""; char vlan_name[16] = "";
if (!mbr_if) if (!mbr_if)
{ {
return MCLAG_ERROR; return MCLAG_ERROR;
} }
@ -1340,7 +1340,7 @@ int add_pending_vlan_mbr(struct PendingVlanMbrIf* mbr_if, uint16_t vid)
vlan_key.vid = vid; vlan_key.vid = vid;
vlan = RB_FIND(vlan_rb_tree, &(mbr_if->vlan_tree), &vlan_key); vlan = RB_FIND(vlan_rb_tree, &(mbr_if->vlan_tree), &vlan_key);
if (!vlan) if (!vlan)
{ {
vlan = (struct VLAN_ID*)malloc(sizeof(struct VLAN_ID)); vlan = (struct VLAN_ID*)malloc(sizeof(struct VLAN_ID));
@ -1364,7 +1364,7 @@ void del_pending_vlan_mbr(struct PendingVlanMbrIf* mbr_if, uint16_t vid)
{ {
struct VLAN_ID *vlan = NULL; struct VLAN_ID *vlan = NULL;
struct VLAN_ID vlan_key = { 0 }; struct VLAN_ID vlan_key = { 0 };
if (!mbr_if) if (!mbr_if)
{ {
return; return;
} }
@ -1372,7 +1372,7 @@ void del_pending_vlan_mbr(struct PendingVlanMbrIf* mbr_if, uint16_t vid)
vlan_key.vid = vid; vlan_key.vid = vid;
vlan = RB_FIND(vlan_rb_tree, &(mbr_if->vlan_tree), &vlan_key); vlan = RB_FIND(vlan_rb_tree, &(mbr_if->vlan_tree), &vlan_key);
if (vlan != NULL) if (vlan != NULL)
{ {
VLAN_RB_REMOVE(vlan_rb_tree, &(mbr_if->vlan_tree), vlan); VLAN_RB_REMOVE(vlan_rb_tree, &(mbr_if->vlan_tree), vlan);
@ -1398,7 +1398,7 @@ void del_all_pending_vlan_mbrs(struct PendingVlanMbrIf* lif)
return; return;
} }
//update vlan membership for a given interface; this function can be called //update vlan membership for a given interface; this function can be called
//whenever vlan membership is received from mclagsyncd and local interface is not found //whenever vlan membership is received from mclagsyncd and local interface is not found
void update_pending_vlan_mbr(char *mbr_if_name, unsigned int vlan_id, int add_flag) void update_pending_vlan_mbr(char *mbr_if_name, unsigned int vlan_id, int add_flag)
{ {
@ -1414,10 +1414,10 @@ void update_pending_vlan_mbr(char *mbr_if_name, unsigned int vlan_id, int add_f
ICCPD_LOG_DEBUG(__FUNCTION__, "update pending vlan:%d member for if:%s event:%s \n", vlan_id, mbr_if_name, add_flag ? "add":"delete"); ICCPD_LOG_DEBUG(__FUNCTION__, "update pending vlan:%d member for if:%s event:%s \n", vlan_id, mbr_if_name, add_flag ? "add":"delete");
mbr_if = find_pending_vlan_mbr_if(sys, mbr_if_name); mbr_if = find_pending_vlan_mbr_if(sys, mbr_if_name);
//if mbr_if not found create //if mbr_if not found create
if (!mbr_if) if (!mbr_if)
{ {
if (!add_flag) if (!add_flag)
{ {
return; return;
} }
@ -1432,12 +1432,12 @@ void update_pending_vlan_mbr(char *mbr_if_name, unsigned int vlan_id, int add_f
RB_INIT(vlan_rb_tree, &mbr_if->vlan_tree); RB_INIT(vlan_rb_tree, &mbr_if->vlan_tree);
LIST_INSERT_HEAD(&(sys->pending_vlan_mbr_if_list), mbr_if, if_next); LIST_INSERT_HEAD(&(sys->pending_vlan_mbr_if_list), mbr_if, if_next);
} }
if (add_flag) if (add_flag)
{ {
//add to pending vlan member if //add to pending vlan member if
add_pending_vlan_mbr(mbr_if, vlan_id); add_pending_vlan_mbr(mbr_if, vlan_id);
} }
else else
{ {
//delete from pending vlan member if //delete from pending vlan member if
del_pending_vlan_mbr(mbr_if, vlan_id); del_pending_vlan_mbr(mbr_if, vlan_id);
@ -1445,13 +1445,13 @@ void update_pending_vlan_mbr(char *mbr_if_name, unsigned int vlan_id, int add_f
} }
//move pending vlan membership from pending member interface to system lif //move pending vlan membership from pending member interface to system lif
void move_pending_vlan_mbr_to_lif(struct System *sys, struct LocalInterface* lif) void move_pending_vlan_mbr_to_lif(struct System *sys, struct LocalInterface* lif)
{ {
struct PendingVlanMbrIf *mbr_if; struct PendingVlanMbrIf *mbr_if;
struct VLAN_ID* vlan = NULL; struct VLAN_ID* vlan = NULL;
struct VLAN_ID* vlan_temp = NULL; struct VLAN_ID* vlan_temp = NULL;
if (!sys || !lif) if (!sys || !lif)
{ {
return; return;
} }
@ -1504,7 +1504,7 @@ void vlan_mbrship_change_handler(unsigned int vlan_id, char *mbr_if_name, int ad
if (!lif) if (!lif)
{ {
ICCPD_LOG_NOTICE(__FUNCTION__, "Rx vlan:%d mbr if:%s event %s; No MCLAG If", vlan_id, mbr_if_name, add_flag ? "add":"delete"); ICCPD_LOG_NOTICE(__FUNCTION__, "Rx vlan:%d mbr if:%s event %s; No MCLAG If", vlan_id, mbr_if_name, add_flag ? "add":"delete");
update_pending_vlan_mbr(mbr_if_name, vlan_id, add_flag); update_pending_vlan_mbr(mbr_if_name, vlan_id, add_flag);
return; return;
} }
ICCPD_LOG_DEBUG(__FUNCTION__, "Rx vlan:%d mbr if:%s event %s", vlan_id, mbr_if_name, add_flag ? "add":"delete"); ICCPD_LOG_DEBUG(__FUNCTION__, "Rx vlan:%d mbr if:%s event %s", vlan_id, mbr_if_name, add_flag ? "add":"delete");

View File

@ -573,7 +573,7 @@ static int iccp_netlink_set_portchannel_iff_flag(
char* saveptr; char* saveptr;
struct LocalInterface* member_if; struct LocalInterface* member_if;
char *tmp_member_buf = NULL; char *tmp_member_buf = NULL;
if (!lif_po) if (!lif_po)
return MCLAG_ERROR; return MCLAG_ERROR;
@ -649,7 +649,7 @@ void update_if_ipmac_on_standby(struct LocalInterface* lif_po, int dir)
return; return;
pif = peer_if_find_by_name(csm, lif_po->name); pif = peer_if_find_by_name(csm, lif_po->name);
/*Set new mac only if remote MLAG interface also exists */ /*Set new mac only if remote MLAG interface also exists */
if (pif && (memcmp( lif_po->mac_addr, MLACP(csm).remote_system.system_id, ETHER_ADDR_LEN) != 0)) if (pif && (memcmp( lif_po->mac_addr, MLACP(csm).remote_system.system_id, ETHER_ADDR_LEN) != 0))
{ {
@ -659,7 +659,7 @@ void update_if_ipmac_on_standby(struct LocalInterface* lif_po, int dir)
ICCPD_LOG_NOTICE(__FUNCTION__, ICCPD_LOG_NOTICE(__FUNCTION__,
"%s Change the system-id of %s from [%02X:%02X:%02X:%02X:%02X:%02X] to [%02X:%02X:%02X:%02X:%02X:%02X], dir %d", "%s Change the system-id of %s from [%02X:%02X:%02X:%02X:%02X:%02X] to [%02X:%02X:%02X:%02X:%02X:%02X], dir %d",
(csm->role_type == STP_ROLE_STANDBY) ? "Standby" : "Active", (csm->role_type == STP_ROLE_STANDBY) ? "Standby" : "Active",
lif_po->name, lif_po->mac_addr[0], lif_po->mac_addr[1], lif_po->mac_addr[2], lif_po->name, lif_po->mac_addr[0], lif_po->mac_addr[1], lif_po->mac_addr[2],
lif_po->mac_addr[3], lif_po->mac_addr[4], lif_po->mac_addr[5], lif_po->mac_addr[3], lif_po->mac_addr[4], lif_po->mac_addr[5],
MLACP(csm).remote_system.system_id[0], MLACP(csm).remote_system.system_id[1], MLACP(csm).remote_system.system_id[0], MLACP(csm).remote_system.system_id[1],
MLACP(csm).remote_system.system_id[2], MLACP(csm).remote_system.system_id[3], MLACP(csm).remote_system.system_id[2], MLACP(csm).remote_system.system_id[3],
@ -776,9 +776,9 @@ void recover_if_ipmac_on_standby(struct LocalInterface *lif_po, int dir)
iccp_netlink_if_shutdown_set(lif_po->ifindex); iccp_netlink_if_shutdown_set(lif_po->ifindex);
iccp_netlink_if_startup_set(lif_po->ifindex); iccp_netlink_if_startup_set(lif_po->ifindex);
/* Set the interface MAC address back to its local address so that subsequent vlan member /* Set the interface MAC address back to its local address so that subsequent vlan member
* add processing (local_if_add_vlan) will not use the old MAC address for * add processing (local_if_add_vlan) will not use the old MAC address for
* update_if_ipmac_on_standby() * update_if_ipmac_on_standby()
*/ */
memcpy(lif_po->mac_addr, MLACP(csm).system_id, ETHER_ADDR_LEN); memcpy(lif_po->mac_addr, MLACP(csm).system_id, ETHER_ADDR_LEN);
} }
@ -986,14 +986,14 @@ void iccp_event_handler_obj_input_newlink(struct nl_object *obj, void *arg)
if ((strncmp(ifname, if ((strncmp(ifname,
if_whitelist[i].ifname, strlen(if_whitelist[i].ifname)) == 0)) if_whitelist[i].ifname, strlen(if_whitelist[i].ifname)) == 0))
{ {
/*if the iface exists, but the ifindex changed, then delete old /*if the iface exists, but the ifindex changed, then delete old
* interface and add the new interface * interface and add the new interface
* possible scenario is due to many kernel events, there is * possible scenario is due to many kernel events, there is
* possiblility of losing if deletion event and just * possiblility of losing if deletion event and just
* getting a add of same iface with new ifindex. * getting a add of same iface with new ifindex.
* to address this possibility if add event of interface is * to address this possibility if add event of interface is
* received with new ifindex different from old interace, * received with new ifindex different from old interace,
* then delete the old ifindex interface and add new if with new * then delete the old ifindex interface and add new if with new
* ifindex * ifindex
*/ */
@ -2174,7 +2174,7 @@ int iccp_handle_events(struct System * sys)
int i; int i;
int err; int err;
int max_nfds; int max_nfds;
struct mLACPHeartbeatTLV dummy_tlv; struct mLACPHeartbeatTLV dummy_tlv;
max_nfds = ICCP_EVENT_FDS_COUNT + sys->readfd_count; max_nfds = ICCP_EVENT_FDS_COUNT + sys->readfd_count;
@ -2230,7 +2230,7 @@ int iccp_handle_events(struct System * sys)
{ {
if (scheduler_csm_read_callback(csm) != MCLAG_ERROR) if (scheduler_csm_read_callback(csm) != MCLAG_ERROR)
{ {
//consider any msg from peer as heartbeat update, this will be in scenarios of scaled msg sync b/w peers //consider any msg from peer as heartbeat update, this will be in scenarios of scaled msg sync b/w peers
mlacp_fsm_update_heartbeat(csm, &dummy_tlv); mlacp_fsm_update_heartbeat(csm, &dummy_tlv);
} }
break; break;
@ -2334,7 +2334,7 @@ void update_vlan_if_mac_on_standby(struct LocalInterface* lif_vlan, int dir)
ICCPD_LOG_DEBUG(__FUNCTION__, ICCPD_LOG_DEBUG(__FUNCTION__,
"%s Change the system-id of %s from [%02X:%02X:%02X:%02X:%02X:%02X] to [%02X:%02X:%02X:%02X:%02X:%02X], dir %d", "%s Change the system-id of %s from [%02X:%02X:%02X:%02X:%02X:%02X] to [%02X:%02X:%02X:%02X:%02X:%02X], dir %d",
(csm->role_type == STP_ROLE_STANDBY) ? "Standby" : "Active", (csm->role_type == STP_ROLE_STANDBY) ? "Standby" : "Active",
lif_vlan->name, lif_vlan->mac_addr[0], lif_vlan->mac_addr[1], lif_vlan->mac_addr[2], lif_vlan->name, lif_vlan->mac_addr[0], lif_vlan->mac_addr[1], lif_vlan->mac_addr[2],
lif_vlan->mac_addr[3], lif_vlan->mac_addr[4], lif_vlan->mac_addr[5], lif_vlan->mac_addr[3], lif_vlan->mac_addr[4], lif_vlan->mac_addr[5],
system_mac[0], system_mac[1], system_mac[2], system_mac[3], system_mac[4], system_mac[5], dir); system_mac[0], system_mac[1], system_mac[2], system_mac[3], system_mac[4], system_mac[5], dir);

View File

@ -867,7 +867,7 @@ void mlacp_fsm_transit(struct CSM* csm)
if (csm->warm_reboot_disconn_time != 0) if (csm->warm_reboot_disconn_time != 0)
{ {
/*After peer warm reboot and disconnect, if peer connection is not establised more than 90s, /*After peer warm reboot and disconnect, if peer connection is not establised more than 90s,
recover peer disconnection to normal process, such as add peer age flag for MACs etc*/ recover peer disconnection to normal process, such as add peer age flag for MACs etc*/
if ((time(NULL) - csm->warm_reboot_disconn_time) >= WARM_REBOOT_TIMEOUT) if ((time(NULL) - csm->warm_reboot_disconn_time) >= WARM_REBOOT_TIMEOUT)
{ {
@ -1017,7 +1017,7 @@ void mlacp_sync_mac(struct CSM* csm)
RB_FOREACH (mac_msg, mac_rb_tree, &MLACP(csm).mac_rb) RB_FOREACH (mac_msg, mac_rb_tree, &MLACP(csm).mac_rb)
{ {
/*If MAC with local age flag, dont sync to peer. Such MAC only exist when peer is warm-reboot. /*If MAC with local age flag, dont sync to peer. Such MAC only exist when peer is warm-reboot.
If peer is warm-reboot, peer age flag is not set when connection is lost. If peer is warm-reboot, peer age flag is not set when connection is lost.
When MAC is aged in local switch, this MAC is not deleted for no peer age flag. When MAC is aged in local switch, this MAC is not deleted for no peer age flag.
After warm-reboot, this MAC must be learnt by peer and sync to local switch*/ After warm-reboot, this MAC must be learnt by peer and sync to local switch*/
if (!(mac_msg->age_flag & MAC_AGE_LOCAL)) if (!(mac_msg->age_flag & MAC_AGE_LOCAL))

View File

@ -559,7 +559,7 @@ void set_peerlink_mlag_port_learn(struct LocalInterface *lif, int enable)
return; return;
} }
/* Send request to Mclagsyncd to enable or disable traffic on /* Send request to Mclagsyncd to enable or disable traffic on
* MLAG interface * MLAG interface
*/ */
static int mlacp_link_set_traffic_dist_mode( static int mlacp_link_set_traffic_dist_mode(
@ -1939,7 +1939,7 @@ static void update_l2_mac_state(struct CSM *csm,
} }
// Dont set local learn unless learned from MCLAGSYNCD. // Dont set local learn unless learned from MCLAGSYNCD.
// When interface is UP MAC addresses gets re-learned // When interface is UP MAC addresses gets re-learned
#if 0 #if 0
/*this may be peerlink is not configured and portchannel is down*/ /*this may be peerlink is not configured and portchannel is down*/
/*when this portchannel up, add the mac back to ASIC*/ /*when this portchannel up, add the mac back to ASIC*/
@ -2130,7 +2130,7 @@ void mlacp_mlag_intf_detach_handler(struct CSM* csm, struct LocalInterface* loca
ICCPD_LOG_DEBUG("ICCP_FSM", ICCPD_LOG_DEBUG("ICCP_FSM",
"MLAG_IF(%s) %s Detach: state %s, po_active %d, traffic_dis %d, sync_state %s", "MLAG_IF(%s) %s Detach: state %s, po_active %d, traffic_dis %d, sync_state %s",
local_if_is_l3_mode(local_if) ? "L3" : "L2", local_if_is_l3_mode(local_if) ? "L3" : "L2",
local_if->name, local_if->name,
(local_if->state == PORT_STATE_UP) ? "up" : "down", (local_if->state == PORT_STATE_UP) ? "up" : "down",
local_if->po_active, local_if->is_traffic_disable, local_if->po_active, local_if->is_traffic_disable,
mlacp_state(csm)); mlacp_state(csm));
@ -2147,14 +2147,14 @@ void mlacp_mlag_intf_detach_handler(struct CSM* csm, struct LocalInterface* loca
else else
update_l3_po_state(csm, local_if, 0); update_l3_po_state(csm, local_if, 0);
//If the traffic is disabled due to interface flap; while coming up, if //If the traffic is disabled due to interface flap; while coming up, if
//mclag interface is removed before receiving ack, it will be in //mclag interface is removed before receiving ack, it will be in
//blocked state; to address timing scenario unblock Tx/Rx of //blocked state; to address timing scenario unblock Tx/Rx of
//traffic on this portchannel if the traffic is blocked on this port //traffic on this portchannel if the traffic is blocked on this port
if(local_if->is_traffic_disable) if(local_if->is_traffic_disable)
{ {
if ( !csm->peer_link_if || !(strcmp(csm->peer_link_if->name, local_if->name)) ) if ( !csm->peer_link_if || !(strcmp(csm->peer_link_if->name, local_if->name)) )
{ {
mlacp_link_enable_traffic_distribution(local_if); mlacp_link_enable_traffic_distribution(local_if);
} }
@ -2178,7 +2178,7 @@ void mlacp_peer_mlag_intf_delete_handler(struct CSM* csm, char *mlag_if_name)
ICCPD_LOG_DEBUG("ICCP_FSM", ICCPD_LOG_DEBUG("ICCP_FSM",
"MLAG_IF(%s) %s Peer IF Delete Event: state %s, po_active %d, traffic_dis %d, sync_state %s", "MLAG_IF(%s) %s Peer IF Delete Event: state %s, po_active %d, traffic_dis %d, sync_state %s",
local_if_is_l3_mode(local_if) ? "L3" : "L2", local_if_is_l3_mode(local_if) ? "L3" : "L2",
local_if->name, local_if->name,
(local_if->state == PORT_STATE_UP) ? "up" : "down", (local_if->state == PORT_STATE_UP) ? "up" : "down",
local_if->po_active, local_if->is_traffic_disable, local_if->po_active, local_if->is_traffic_disable,
mlacp_state(csm)); mlacp_state(csm));
@ -3084,11 +3084,11 @@ int iccp_mclagsyncd_mclag_domain_cfg_handler(struct System *sys, char *msg_buf)
struct mclag_domain_cfg_info* cfg_info; struct mclag_domain_cfg_info* cfg_info;
int count, i = 0; int count, i = 0;
char system_mac_str[ETHER_ADDR_STR_LEN]; char system_mac_str[ETHER_ADDR_STR_LEN];
msg_hdr = (struct IccpSyncdHDr *)msg_buf; msg_hdr = (struct IccpSyncdHDr *)msg_buf;
count = (msg_hdr->len- sizeof(struct IccpSyncdHDr ))/sizeof(struct mclag_domain_cfg_info); count = (msg_hdr->len- sizeof(struct IccpSyncdHDr ))/sizeof(struct mclag_domain_cfg_info);
ICCPD_LOG_DEBUG(__FUNCTION__, "recv domain cfg msg ; count %d ",count); ICCPD_LOG_DEBUG(__FUNCTION__, "recv domain cfg msg ; count %d ",count);
for (i = 0; i < count; i++) for (i = 0; i < count; i++)
{ {
@ -3096,7 +3096,7 @@ int iccp_mclagsyncd_mclag_domain_cfg_handler(struct System *sys, char *msg_buf)
memcpy(system_mac_str, mac_addr_to_str(cfg_info->system_mac), sizeof(system_mac_str)); memcpy(system_mac_str, mac_addr_to_str(cfg_info->system_mac), sizeof(system_mac_str));
ICCPD_LOG_NOTICE(__FUNCTION__, "recv cfg msg ; domain_id:%d op_type:%d attr_bmap:0x%x local_ip:%s peer_ip:%s peer_ifname:%s system_mac:%s session_timeout:%d keepalive_time:%d",cfg_info->domain_id, cfg_info->op_type, cfg_info->attr_bmap, cfg_info->local_ip, cfg_info->peer_ip, cfg_info->peer_ifname, system_mac_str, cfg_info->session_timeout, cfg_info->keepalive_time); ICCPD_LOG_NOTICE(__FUNCTION__, "recv cfg msg ; domain_id:%d op_type:%d attr_bmap:0x%x local_ip:%s peer_ip:%s peer_ifname:%s system_mac:%s session_timeout:%d keepalive_time:%d",cfg_info->domain_id, cfg_info->op_type, cfg_info->attr_bmap, cfg_info->local_ip, cfg_info->peer_ip, cfg_info->peer_ifname, system_mac_str, cfg_info->session_timeout, cfg_info->keepalive_time);
if (cfg_info->op_type == MCLAG_CFG_OPER_ADD || cfg_info->op_type == MCLAG_CFG_OPER_UPDATE) //mclag domain create/update if (cfg_info->op_type == MCLAG_CFG_OPER_ADD || cfg_info->op_type == MCLAG_CFG_OPER_UPDATE) //mclag domain create/update
{ {
@ -3153,7 +3153,7 @@ int iccp_mclagsyncd_mclag_domain_cfg_handler(struct System *sys, char *msg_buf)
if(cfg_info->attr_bmap & MCLAG_CFG_ATTR_PEER_LINK) if(cfg_info->attr_bmap & MCLAG_CFG_ATTR_PEER_LINK)
{ {
unset_peer_link(cfg_info->domain_id); unset_peer_link(cfg_info->domain_id);
} }
else if(cfg_info->attr_bmap & MCLAG_CFG_ATTR_KEEPALIVE_INTERVAL) else if(cfg_info->attr_bmap & MCLAG_CFG_ATTR_KEEPALIVE_INTERVAL)
{ {
//reset to default //reset to default
@ -3183,16 +3183,16 @@ int iccp_mclagsyncd_mclag_iface_cfg_handler(struct System *sys, char *msg_buf)
struct IccpSyncdHDr * msg_hdr; struct IccpSyncdHDr * msg_hdr;
struct mclag_iface_cfg_info* cfg_info; struct mclag_iface_cfg_info* cfg_info;
int count, i = 0; int count, i = 0;
msg_hdr = (struct IccpSyncdHDr *)msg_buf; msg_hdr = (struct IccpSyncdHDr *)msg_buf;
count = (msg_hdr->len- sizeof(struct IccpSyncdHDr))/sizeof(struct mclag_iface_cfg_info); count = (msg_hdr->len- sizeof(struct IccpSyncdHDr))/sizeof(struct mclag_iface_cfg_info);
ICCPD_LOG_DEBUG(__FUNCTION__, "recv domain cfg msg ; count %d ",count); ICCPD_LOG_DEBUG(__FUNCTION__, "recv domain cfg msg ; count %d ",count);
for (i =0; i<count; i++) for (i =0; i<count; i++)
{ {
cfg_info = (struct mclag_iface_cfg_info*)((char *)(msg_buf) + sizeof(struct IccpSyncdHDr) + i * sizeof(struct mclag_iface_cfg_info)); cfg_info = (struct mclag_iface_cfg_info*)((char *)(msg_buf) + sizeof(struct IccpSyncdHDr) + i * sizeof(struct mclag_iface_cfg_info));
ICCPD_LOG_NOTICE(__FUNCTION__, "recv mclag iface cfg msg ; domain_id:%d op_type:%d mclag_iface:%s ",cfg_info->domain_id, cfg_info->op_type, cfg_info->mclag_iface); ICCPD_LOG_NOTICE(__FUNCTION__, "recv mclag iface cfg msg ; domain_id:%d op_type:%d mclag_iface:%s ",cfg_info->domain_id, cfg_info->op_type, cfg_info->mclag_iface);
if (cfg_info->op_type == MCLAG_CFG_OPER_ADD) if (cfg_info->op_type == MCLAG_CFG_OPER_ADD)
{ {
@ -3236,7 +3236,7 @@ int iccp_mclagsyncd_mclag_unique_ip_cfg_handler(struct System *sys, char *msg_bu
} }
} }
if (!unq_ip_if) if (!unq_ip_if)
{ {
unq_ip_if = (struct Unq_ip_If_info *)malloc(sizeof(struct Unq_ip_If_info)); unq_ip_if = (struct Unq_ip_If_info *)malloc(sizeof(struct Unq_ip_If_info));
if (!unq_ip_if) if (!unq_ip_if)
@ -3359,7 +3359,7 @@ int iccp_receive_fdb_handler_from_syncd(struct System *sys, char *msg_buf)
msg_hdr = (struct IccpSyncdHDr *)msg_buf; msg_hdr = (struct IccpSyncdHDr *)msg_buf;
count = (msg_hdr->len- sizeof(struct IccpSyncdHDr))/sizeof(struct mclag_fdb_info); count = (msg_hdr->len- sizeof(struct IccpSyncdHDr))/sizeof(struct mclag_fdb_info);
ICCPD_LOG_DEBUG(__FUNCTION__, "recv msg fdb count %d ",count ); ICCPD_LOG_DEBUG(__FUNCTION__, "recv msg fdb count %d ",count );
for (i =0; i<count;i++) for (i =0; i<count;i++)
{ {
@ -3592,7 +3592,7 @@ int iccp_mclagsyncd_msg_handler(struct System *sys)
{ {
iccp_mclagsyncd_vlan_mbr_update_handler(sys, &msg_buf[pos]); iccp_mclagsyncd_vlan_mbr_update_handler(sys, &msg_buf[pos]);
} }
else else
{ {
ICCPD_LOG_ERR(__FUNCTION__, "recv unknown msg type %d ", msg_hdr->type); ICCPD_LOG_ERR(__FUNCTION__, "recv unknown msg type %d ", msg_hdr->type);
pos += msg_hdr->len; pos += msg_hdr->len;
@ -3612,10 +3612,10 @@ int iccp_mclagsyncd_msg_handler(struct System *sys)
{ {
int rc; int rc;
/* Update traffic distribution only if local interface is still bound to MLAG */ /* Update traffic distribution only if local interface is still bound to MLAG */
if (!lif || !lif->csm) if (!lif || !lif->csm)
return; return;
/* Expecting ACK from peer only after reaching EXCHANGE state */ /* Expecting ACK from peer only after reaching EXCHANGE state */
if (MLACP(lif->csm).current_state != MLACP_STATE_EXCHANGE) if (MLACP(lif->csm).current_state != MLACP_STATE_EXCHANGE)
return; return;
@ -4197,7 +4197,7 @@ int mclagd_ctl_interactive_process(int client_fd)
case INFO_TYPE_DUMP_MAC: case INFO_TYPE_DUMP_MAC:
mclagd_ctl_handle_dump_mac(client_fd, req->mclag_id); mclagd_ctl_handle_dump_mac(client_fd, req->mclag_id);
break; break;
case INFO_TYPE_DUMP_LOCAL_PORTLIST: case INFO_TYPE_DUMP_LOCAL_PORTLIST:
mclagd_ctl_handle_dump_local_portlist(client_fd, req->mclag_id); mclagd_ctl_handle_dump_local_portlist(client_fd, req->mclag_id);
@ -4218,7 +4218,7 @@ int mclagd_ctl_interactive_process(int client_fd)
case INFO_TYPE_CONFIG_LOGLEVEL: case INFO_TYPE_CONFIG_LOGLEVEL:
mclagd_ctl_handle_config_loglevel(client_fd, req->mclag_id); mclagd_ctl_handle_config_loglevel(client_fd, req->mclag_id);
break; break;
default: default:
return MCLAG_ERROR; return MCLAG_ERROR;
} }

View File

@ -579,7 +579,7 @@ int local_if_add_vlan(struct LocalInterface* local_if, uint16_t vid)
vlan_key.vid = vid; vlan_key.vid = vid;
vlan = RB_FIND(vlan_rb_tree, &(local_if->vlan_tree), &vlan_key); vlan = RB_FIND(vlan_rb_tree, &(local_if->vlan_tree), &vlan_key);
if (!vlan) if (!vlan)
{ {
vlan = (struct VLAN_ID*)malloc(sizeof(struct VLAN_ID)); vlan = (struct VLAN_ID*)malloc(sizeof(struct VLAN_ID));
@ -609,7 +609,7 @@ int local_if_add_vlan(struct LocalInterface* local_if, uint16_t vid)
update_vlan_if_mac_on_standby(vlan->vlan_itf, 1); update_vlan_if_mac_on_standby(vlan->vlan_itf, 1);
} }
} }
else else
{ {
ICCPD_LOG_WARN(__FUNCTION__, "skip VLAN MAC update for vlan %d interface %s ", vid, local_if->name); ICCPD_LOG_WARN(__FUNCTION__, "skip VLAN MAC update for vlan %d interface %s ", vid, local_if->name);
} }
@ -625,7 +625,7 @@ void local_if_del_vlan(struct LocalInterface* local_if, uint16_t vid)
vlan_key.vid = vid; vlan_key.vid = vid;
vlan = RB_FIND(vlan_rb_tree, &(local_if->vlan_tree), &vlan_key); vlan = RB_FIND(vlan_rb_tree, &(local_if->vlan_tree), &vlan_key);
if (vlan != NULL) if (vlan != NULL)
{ {
VLAN_RB_REMOVE(vlan_rb_tree, &(local_if->vlan_tree), vlan); VLAN_RB_REMOVE(vlan_rb_tree, &(local_if->vlan_tree), vlan);
@ -666,7 +666,7 @@ int peer_if_add_vlan(struct PeerInterface* peer_if, uint16_t vlan_id)
vlan_key.vid = vlan_id; vlan_key.vid = vlan_id;
peer_vlan = RB_FIND(vlan_rb_tree, &(peer_if->vlan_tree), &vlan_key); peer_vlan = RB_FIND(vlan_rb_tree, &(peer_if->vlan_tree), &vlan_key);
if (!peer_vlan) if (!peer_vlan)
{ {
peer_vlan = (struct VLAN_ID*)malloc(sizeof(struct VLAN_ID)); peer_vlan = (struct VLAN_ID*)malloc(sizeof(struct VLAN_ID));

View File

@ -48,7 +48,7 @@
* *
******************************************************/ ******************************************************/
//this needs to be fine tuned //this needs to be fine tuned
#define PEER_SOCK_SND_BUF_LEN (6 * 1024 * 1024) #define PEER_SOCK_SND_BUF_LEN (6 * 1024 * 1024)
#define PEER_SOCK_RCV_BUF_LEN (6 * 1024 * 1024) #define PEER_SOCK_RCV_BUF_LEN (6 * 1024 * 1024)
#define RECV_RETRY_INTERVAL_USEC 100000 #define RECV_RETRY_INTERVAL_USEC 100000
@ -388,7 +388,7 @@ void scheduler_init()
//no need to create iccpd config from startup file, it will be done through //no need to create iccpd config from startup file, it will be done through
//cli //cli
iccp_config_from_file(sys->config_file_path); iccp_config_from_file(sys->config_file_path);
/*Get kernel ARP info */ /*Get kernel ARP info */
iccp_neigh_get_init(); iccp_neigh_get_init();

View File

@ -822,7 +822,7 @@ libnl3 (3.0-2) unstable; urgency=low
libnl3 (3.0-1.1) unstable; urgency=low libnl3 (3.0-1.1) unstable; urgency=low
* Non-maintainer upload with agreement from Heiko Stuebner * Non-maintainer upload with agreement from Heiko Stuebner
* Add libnl3-udeb package with seperate build for * Add libnl3-udeb package with seperate build for
debian-installer (Closes: #635962). debian-installer (Closes: #635962).
-- Gaudenz Steinlin <gaudenz@debian.org> Fri, 29 Jul 2011 23:25:48 +0200 -- Gaudenz Steinlin <gaudenz@debian.org> Fri, 29 Jul 2011 23:25:48 +0200
@ -876,7 +876,7 @@ libnl (1.1-5) unstable; urgency=low
libnl (1.1-4) unstable; urgency=low libnl (1.1-4) unstable; urgency=low
* debian/control * debian/control
- Add ${misc:Depends} to all binary packages. - Add ${misc:Depends} to all binary packages.
- Bump Build-Depends on debhelper to (>= 7). - Bump Build-Depends on debhelper to (>= 7).
* debian/compat * debian/compat
@ -958,7 +958,7 @@ libnl (1.0~pre6-5) unstable; urgency=low
- Add XS-Vcs-* fields. - Add XS-Vcs-* fields.
- Replace Build-Depends: tetex-bin with texlive-latex-base. teTeX is now - Replace Build-Depends: tetex-bin with texlive-latex-base. teTeX is now
gone, superseded by texlive. gone, superseded by texlive.
- Add Build-Depends: graphviz, gs-gpl | gs-esp. - Add Build-Depends: graphviz, gs-gpl | gs-esp.
The "dot" program is needed for generating the diagram image and "gs" The "dot" program is needed for generating the diagram image and "gs"
for the ps to png conversion. for the ps to png conversion.
@ -967,7 +967,7 @@ libnl (1.0~pre6-5) unstable; urgency=low
libnl (1.0~pre6-4) unstable; urgency=medium libnl (1.0~pre6-4) unstable; urgency=medium
* Autobuilders do not distinguish between build-arch and build-indep, they * Autobuilders do not distinguish between build-arch and build-indep, they
simply run build. So we have to move doxygen and tetex-bin from simply run build. So we have to move doxygen and tetex-bin from
Build-Depends-Indep to Build-Depends. Closes: #408719 Build-Depends-Indep to Build-Depends. Closes: #408719
* Urgency medium, as it fixes a FTBFS bug. * Urgency medium, as it fixes a FTBFS bug.
@ -989,7 +989,7 @@ libnl (1.0~pre6-3) unstable; urgency=low
libnl (1.0~pre6-2) unstable; urgency=low libnl (1.0~pre6-2) unstable; urgency=low
* Update maintainer email address to biebl@debian.org. * Update maintainer email address to biebl@debian.org.
-- Michael Biebl <biebl@debian.org> Thu, 19 Oct 2006 20:16:09 +0200 -- Michael Biebl <biebl@debian.org> Thu, 19 Oct 2006 20:16:09 +0200
@ -997,7 +997,7 @@ libnl (1.0~pre6-1) unstable; urgency=low
* New upstream release. * New upstream release.
* Removed 20-autoconf-dirs.patch, merged upstream. * Removed 20-autoconf-dirs.patch, merged upstream.
* Updated debian/copyright, libnl is now licensed under the LGPL 2.1. * Updated debian/copyright, libnl is now licensed under the LGPL 2.1.
* Updated debian/watch. * Updated debian/watch.
-- Michael Biebl <biebl@teco.edu> Fri, 18 Aug 2006 00:40:34 +0200 -- Michael Biebl <biebl@teco.edu> Fri, 18 Aug 2006 00:40:34 +0200
@ -1015,7 +1015,7 @@ libnl (1.0~pre6~svn30-1) unstable; urgency=low
libnl (0.99+1.0.svn21-4) unstable; urgency=low libnl (0.99+1.0.svn21-4) unstable; urgency=low
* Do not create bogus /usr/lib/pkg-config directory. Closes: #364601 * Do not create bogus /usr/lib/pkg-config directory. Closes: #364601
-- Michael Biebl <biebl@teco.edu> Mon, 24 Apr 2006 15:40:23 +0200 -- Michael Biebl <biebl@teco.edu> Mon, 24 Apr 2006 15:40:23 +0200

View File

@ -15,7 +15,7 @@ Section: libs
Pre-Depends: ${misc:Pre-Depends} Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends} Depends: ${misc:Depends}, ${shlibs:Depends}
Multi-Arch: same Multi-Arch: same
Description: library for dealing with netlink sockets Description: library for dealing with netlink sockets
This is a library for applications dealing with netlink sockets. This is a library for applications dealing with netlink sockets.
The library provides an interface for raw netlink messaging and various The library provides an interface for raw netlink messaging and various
netlink family specific interfaces. netlink family specific interfaces.
@ -133,8 +133,8 @@ Section: libdevel
Depends: libnl-3-dev (= ${binary:Version}), libnl-genl-3-dev (= ${binary:Version}), libnl-nf-3-dev (= ${binary:Version}), libnl-route-3-dev (= ${binary:Version}), libnl-cli-3-200 (= ${binary:Version}), ${misc:Depends} Depends: libnl-3-dev (= ${binary:Version}), libnl-genl-3-dev (= ${binary:Version}), libnl-nf-3-dev (= ${binary:Version}), libnl-route-3-dev (= ${binary:Version}), libnl-cli-3-200 (= ${binary:Version}), ${misc:Depends}
Multi-Arch: same Multi-Arch: same
Description: development library and headers for libnl-cli-3 Description: development library and headers for libnl-cli-3
This is a library for applications dealing with netlink sockets. This is a library for applications dealing with netlink sockets.
The library provides an interface for raw netlink messaging and various The library provides an interface for raw netlink messaging and various
netlink family specific interfaces. netlink family specific interfaces.
. .
This package contains the files that are needed to build applications using This package contains the files that are needed to build applications using
@ -225,7 +225,7 @@ Architecture: linux-any
XC-Package-Type: udeb XC-Package-Type: udeb
Section: debian-installer Section: debian-installer
Depends: ${misc:Depends}, ${shlibs:Depends} Depends: ${misc:Depends}, ${shlibs:Depends}
Description: library for dealing with netlink sockets Description: library for dealing with netlink sockets
This is a library for applications dealing with netlink sockets. This is a library for applications dealing with netlink sockets.
The library provides an interface for raw netlink messaging and various The library provides an interface for raw netlink messaging and various
netlink family specific interfaces. netlink family specific interfaces.

View File

@ -9,9 +9,9 @@ Upstream Author:
Thomas Graf <tgraf@suug.ch> Thomas Graf <tgraf@suug.ch>
Copyright: Copyright:
lib/route/addr.c lib/route/addr.c
include/netlink/route/addr.h include/netlink/route/addr.h
Copyright (c) Thomas Graf <tgraf@suug.ch> Copyright (c) Thomas Graf <tgraf@suug.ch>
@ -90,7 +90,7 @@ src/cls/basic.c
src/nl-addr-delete.c: src/nl-addr-delete.c:
This library is free software; you can redistribute it and/or modify This library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published it under the terms of the GNU General Public License as published
by the Free Software Foundation version 2 of the License. by the Free Software Foundation version 2 of the License.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful, but
@ -147,7 +147,7 @@ lib/xfrm/lifetime.c
All other *.c and *.h files not mentioned above: All other *.c and *.h files not mentioned above:
This library is free software; you can redistribute it and/or modify This library is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation version 2.1 of the License. by the Free Software Foundation version 2.1 of the License.
This program is distributed in the hope that it will be useful, but This program is distributed in the hope that it will be useful, but
@ -156,5 +156,5 @@ All other *.c and *.h files not mentioned above:
General Public License for more details. General Public License for more details.
On Debian GNU/Linux systems, the complete text of the GNU Lesser General On Debian GNU/Linux systems, the complete text of the GNU Lesser General
Public License can be found in /usr/share/common-licenses/LGPL-2.1 Public License can be found in /usr/share/common-licenses/LGPL-2.1

View File

@ -14,7 +14,7 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
# Apply patch series # Apply patch series
stg init stg init
stg import -s ../patch/series stg import -s ../patch/series
ifeq ($(CROSS_BUILD_ENVIRON), y) ifeq ($(CROSS_BUILD_ENVIRON), y)
dpkg-buildpackage -rfakeroot -b -us -uc -a$(CONFIGURED_ARCH) -Pcross,nocheck -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR) dpkg-buildpackage -rfakeroot -b -us -uc -a$(CONFIGURED_ARCH) -Pcross,nocheck -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR)
else else

View File

@ -39,7 +39,7 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
sed -i 's/\/usr\/sbin\/ntpd {/\/usr\/sbin\/ntpd flags=(attach_disconnected complain) {/' debian/apparmor-profile sed -i 's/\/usr\/sbin\/ntpd {/\/usr\/sbin\/ntpd flags=(attach_disconnected complain) {/' debian/apparmor-profile
ifeq ($(CROSS_BUILD_ENVIRON), y) ifeq ($(CROSS_BUILD_ENVIRON), y)
sed -i 's/dh_auto_configure \--/dh_auto_configure -- --with-yielding-select=yes /g' debian/rules sed -i 's/dh_auto_configure \--/dh_auto_configure -- --with-yielding-select=yes /g' debian/rules
echo ". $(CONFIG_SITE)" > fix.ntp.cross-config.$(CONFIGURED_ARCH) echo ". $(CONFIG_SITE)" > fix.ntp.cross-config.$(CONFIGURED_ARCH)
echo "unset with_openssl_libdir" >> fix.ntp.cross-config.$(CONFIGURED_ARCH) echo "unset with_openssl_libdir" >> fix.ntp.cross-config.$(CONFIGURED_ARCH)
echo "unset with_openssl_incdir" >> fix.ntp.cross-config.$(CONFIGURED_ARCH) echo "unset with_openssl_incdir" >> fix.ntp.cross-config.$(CONFIGURED_ARCH)

View File

@ -1,7 +1,7 @@
#!/usr/bin/make -f #!/usr/bin/make -f
%: %:
dh $@ dh $@
override_dh_fixperms: override_dh_fixperms:
dh_fixperms dh_fixperms

View File

@ -37,7 +37,7 @@ test: test_nss_radius.c $(LIBNSS_SOURCE) $(CACHE_SOURCE) \
$(LIBNSS_SOURCE) test_nss_radius.c $(LIBNSS_SOURCE) test_nss_radius.c
$(CC) $(CFLAGS) $(LDFLAGS) -g -DTEST_RADIUS_NSS -o test_cache_radius \ $(CC) $(CFLAGS) $(LDFLAGS) -g -DTEST_RADIUS_NSS -o test_cache_radius \
$(CACHE_SOURCE) $(CACHE_SOURCE)
.PHONY: all clean distclean test .PHONY: all clean distclean test

View File

@ -11,7 +11,7 @@ libpam-radius-auth (1.4.0-3~deb10u1) buster; urgency=medium
* Rebuild for buster. * Rebuild for buster.
* Revert packaging changes: * Revert packaging changes:
- Lower Standards-Version to 4.2.0 - Lower Standards-Version to 4.2.0
- Lower Debhelper compat level to 11 - Lower Debhelper compat level to 11
-- Salvatore Bonaccorso <carnil@debian.org> Sat, 11 Jul 2020 21:24:48 +0200 -- Salvatore Bonaccorso <carnil@debian.org> Sat, 11 Jul 2020 21:24:48 +0200

View File

@ -51,7 +51,7 @@ class AdvertiseRouteMgr(Manager):
APP which config the data should be responsible to pass a valid IP prefix APP which config the data should be responsible to pass a valid IP prefix
""" """
return True return True
log_err("BGPAdvertiseRouteMgr:: Invalid data %s for advertised route %s" % (data, key)) log_err("BGPAdvertiseRouteMgr:: Invalid data %s for advertised route %s" % (data, key))
return False return False

View File

@ -267,8 +267,8 @@ class BGPAllowListMgr(Manager):
log_debug("BGPAllowListMgr::__update_prefix_list. af='%s' prefix-list name=%s" % (af, pl_name)) log_debug("BGPAllowListMgr::__update_prefix_list. af='%s' prefix-list name=%s" % (af, pl_name))
''' '''
Need to check exist and equality of the allowed prefix list. Need to check exist and equality of the allowed prefix list.
A. If exist and equal, no operation needed. A. If exist and equal, no operation needed.
B. If exist but not equal, first delete then add prefix based on the data from condig db and constants. B. If exist but not equal, first delete then add prefix based on the data from condig db and constants.
C. If non-exist, directly add prefix based on the data from condig db and constants. C. If non-exist, directly add prefix based on the data from condig db and constants.
''' '''
exist, correct = self.__is_prefix_list_valid(af, pl_name, allow_list, constant_list) exist, correct = self.__is_prefix_list_valid(af, pl_name, allow_list, constant_list)
@ -308,7 +308,7 @@ class BGPAllowListMgr(Manager):
2001:cdba:0000:0000:0000:0000:3257:9652 2001:cdba:0000:0000:0000:0000:3257:9652
2001:cdba:0:0:0:0:3257:9652 2001:cdba:0:0:0:0:3257:9652
2001:cdba::3257:9652 2001:cdba::3257:9652
after normalize, all would be normalized to after normalize, all would be normalized to
2001:cdba::3257:9652 2001:cdba::3257:9652
''' '''
normalize_list = [] normalize_list = []
@ -347,7 +347,7 @@ class BGPAllowListMgr(Manager):
config_list.append(rule) config_list.append(rule)
# Return double Ture, when running configuraiton is identical with config db + constants. # Return double Ture, when running configuraiton is identical with config db + constants.
return True, expect_set == set(self.__normalize_ipnetwork(af, config_list)) return True, expect_set == set(self.__normalize_ipnetwork(af, config_list))
def __update_community(self, community_name, community_value): def __update_community(self, community_name, community_value):
""" """

View File

@ -128,7 +128,7 @@ class BGPPeerMgrBase(Manager):
if self.check_deployment_id: if self.check_deployment_id:
deps.append(("CONFIG_DB", swsscommon.CFG_DEVICE_METADATA_TABLE_NAME, "localhost/deployment_id")) deps.append(("CONFIG_DB", swsscommon.CFG_DEVICE_METADATA_TABLE_NAME, "localhost/deployment_id"))
if self.peer_type == 'internal': if self.peer_type == 'internal':
deps.append(("CONFIG_DB", swsscommon.CFG_LOOPBACK_INTERFACE_TABLE_NAME, "Loopback4096")) deps.append(("CONFIG_DB", swsscommon.CFG_LOOPBACK_INTERFACE_TABLE_NAME, "Loopback4096"))
super(BGPPeerMgrBase, self).__init__( super(BGPPeerMgrBase, self).__init__(

View File

@ -47,7 +47,7 @@ class DeviceGlobalCfgMgr(Manager):
self.cfg_mgr.update() self.cfg_mgr.update()
self.isolate_unisolate_device(data["tsa_enabled"]) self.isolate_unisolate_device(data["tsa_enabled"])
self.directory.put(self.db_name, self.table_name, "tsa_enabled", data["tsa_enabled"]) self.directory.put(self.db_name, self.table_name, "tsa_enabled", data["tsa_enabled"])
return True return True
return False return False
def del_handler(self, key): def del_handler(self, key):
@ -62,7 +62,7 @@ class DeviceGlobalCfgMgr(Manager):
if tsa_status == "true": if tsa_status == "true":
cmds = cfg.replace("#012", "\n").split("\n") cmds = cfg.replace("#012", "\n").split("\n")
log_notice("DeviceGlobalCfgMgr:: Device is isolated. Applying TSA route-maps") log_notice("DeviceGlobalCfgMgr:: Device is isolated. Applying TSA route-maps")
cmd = self.get_ts_routemaps(cmds, self.tsa_template) cmd = self.get_ts_routemaps(cmds, self.tsa_template)
return cmd return cmd
def isolate_unisolate_device(self, tsa_status): def isolate_unisolate_device(self, tsa_status):
@ -88,22 +88,22 @@ class DeviceGlobalCfgMgr(Manager):
def __generate_routemaps_from_template(self, route_map_names, template): def __generate_routemaps_from_template(self, route_map_names, template):
cmd = "\n" cmd = "\n"
for rm in sorted(route_map_names): for rm in sorted(route_map_names):
# For packet-based chassis, the bgp session between the linecards are also considered internal sessions # For packet-based chassis, the bgp session between the linecards are also considered internal sessions
# While isolating a single linecard, these sessions should not be skipped # While isolating a single linecard, these sessions should not be skipped
if "_INTERNAL_" in rm or "VOQ_" in rm: if "_INTERNAL_" in rm or "VOQ_" in rm:
continue continue
if "V4" in rm: if "V4" in rm:
ipv="V4" ; ipp="ip" ipv="V4" ; ipp="ip"
elif "V6" in rm: elif "V6" in rm:
ipv="V6" ; ipp="ipv6" ipv="V6" ; ipp="ipv6"
else: else:
continue continue
cmd += template.render(route_map_name=rm,ip_version=ipv,ip_protocol=ipp, constants=self.constants) cmd += template.render(route_map_name=rm,ip_version=ipv,ip_protocol=ipp, constants=self.constants)
cmd += "\n" cmd += "\n"
return cmd return cmd
def __extract_out_route_map_names(self, cmds): def __extract_out_route_map_names(self, cmds):
route_map_names = set() route_map_names = set()
out_route_map = re.compile(r'^\s*neighbor \S+ route-map (\S+) out$') out_route_map = re.compile(r'^\s*neighbor \S+ route-map (\S+) out$')
for line in cmds: for line in cmds:
result = out_route_map.match(line) result = out_route_map.match(line)

View File

@ -21,7 +21,7 @@ class StaticRouteMgr(Manager):
db, db,
table, table,
) )
self.directory.subscribe([("CONFIG_DB", swsscommon.CFG_DEVICE_METADATA_TABLE_NAME, "localhost/bgp_asn"),], self.on_bgp_asn_change) self.directory.subscribe([("CONFIG_DB", swsscommon.CFG_DEVICE_METADATA_TABLE_NAME, "localhost/bgp_asn"),], self.on_bgp_asn_change)
self.static_routes = {} self.static_routes = {}
self.vrf_pending_redistribution = set() self.vrf_pending_redistribution = set()
@ -41,7 +41,7 @@ class StaticRouteMgr(Manager):
intf_list = arg_list(data['ifname']) if 'ifname' in data else None intf_list = arg_list(data['ifname']) if 'ifname' in data else None
dist_list = arg_list(data['distance']) if 'distance' in data else None dist_list = arg_list(data['distance']) if 'distance' in data else None
nh_vrf_list = arg_list(data['nexthop-vrf']) if 'nexthop-vrf' in data else None nh_vrf_list = arg_list(data['nexthop-vrf']) if 'nexthop-vrf' in data else None
route_tag = self.ROUTE_ADVERTISE_DISABLE_TAG if 'advertise' in data and data['advertise'] == "false" else self.ROUTE_ADVERTISE_ENABLE_TAG route_tag = self.ROUTE_ADVERTISE_DISABLE_TAG if 'advertise' in data and data['advertise'] == "false" else self.ROUTE_ADVERTISE_ENABLE_TAG
try: try:
ip_nh_set = IpNextHopSet(is_ipv6, bkh_list, nh_list, intf_list, dist_list, nh_vrf_list) ip_nh_set = IpNextHopSet(is_ipv6, bkh_list, nh_list, intf_list, dist_list, nh_vrf_list)

View File

@ -1,6 +1,6 @@
{ {
"CONFIG_DB__DEVICE_METADATA": { "CONFIG_DB__DEVICE_METADATA": {
"localhost": { "localhost": {
"type": "LeafRouter" "type": "LeafRouter"
} }
}, },

View File

@ -1,6 +1,6 @@
{ {
"CONFIG_DB__DEVICE_METADATA": { "CONFIG_DB__DEVICE_METADATA": {
"localhost": { "localhost": {
"type": "SpineRouter" "type": "SpineRouter"
} }
} }

View File

@ -204,9 +204,9 @@ def test_set_handler_with_community_and_deny_action():
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 10', 'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 10',
' match ipv6 address prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020_V6', ' match ipv6 address prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020_V6',
' match community COMMUNITY_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020', ' match community COMMUNITY_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_1010:2020',
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V4 permit 65535', 'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V4 permit 65535',
' set community no-export additive', ' set community no-export additive',
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 65535', 'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 65535',
' set community no-export additive' ' set community no-export additive'
] ]
) )
@ -325,9 +325,9 @@ def test_set_handler_no_community_with_deny_action():
' match ip address prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V4', ' match ip address prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V4',
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 30000', 'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 30000',
' match ipv6 address prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V6', ' match ipv6 address prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V6',
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V4 permit 65535', 'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V4 permit 65535',
' set community no-export additive', ' set community no-export additive',
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 65535', 'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 65535',
' set community no-export additive' ' set community no-export additive'
] ]
) )

View File

@ -17,7 +17,7 @@ def load_constant_files():
for path in paths: for path in paths:
constant_files += [os.path.abspath(os.path.join(path, name)) for name in os.listdir(path) constant_files += [os.path.abspath(os.path.join(path, name)) for name in os.listdir(path)
if os.path.isfile(os.path.join(path, name)) and name.startswith("constants")] if os.path.isfile(os.path.join(path, name)) and name.startswith("constants")]
return constant_files return constant_files
@ -55,7 +55,7 @@ def constructor(constants_path):
return m return m
@patch('bgpcfgd.managers_bgp.log_info') @patch('bgpcfgd.managers_bgp.log_info')
def test_update_peer_up(mocked_log_info): def test_update_peer_up(mocked_log_info):
for constant in load_constant_files(): for constant in load_constant_files():
m = constructor(constant) m = constructor(constant)
res = m.set_handler("10.10.10.1", {"admin_status": "up"}) res = m.set_handler("10.10.10.1", {"admin_status": "up"})
@ -63,7 +63,7 @@ def test_update_peer_up(mocked_log_info):
mocked_log_info.assert_called_with("Peer 'default|10.10.10.1' admin state is set to 'up'") mocked_log_info.assert_called_with("Peer 'default|10.10.10.1' admin state is set to 'up'")
@patch('bgpcfgd.managers_bgp.log_info') @patch('bgpcfgd.managers_bgp.log_info')
def test_update_peer_up_ipv6(mocked_log_info): def test_update_peer_up_ipv6(mocked_log_info):
for constant in load_constant_files(): for constant in load_constant_files():
m = constructor(constant) m = constructor(constant)
res = m.set_handler("fc00:10::1", {"admin_status": "up"}) res = m.set_handler("fc00:10::1", {"admin_status": "up"})
@ -71,7 +71,7 @@ def test_update_peer_up_ipv6(mocked_log_info):
mocked_log_info.assert_called_with("Peer 'default|fc00:10::1' admin state is set to 'up'") mocked_log_info.assert_called_with("Peer 'default|fc00:10::1' admin state is set to 'up'")
@patch('bgpcfgd.managers_bgp.log_info') @patch('bgpcfgd.managers_bgp.log_info')
def test_update_peer_down(mocked_log_info): def test_update_peer_down(mocked_log_info):
for constant in load_constant_files(): for constant in load_constant_files():
m = constructor(constant) m = constructor(constant)
res = m.set_handler("10.10.10.1", {"admin_status": "down"}) res = m.set_handler("10.10.10.1", {"admin_status": "down"})

View File

@ -126,9 +126,9 @@ def test_to_canonical_empty():
! !
! !
! !
! !
""" """
to_canonical_common(raw_config, []) to_canonical_common(raw_config, [])
@ -139,11 +139,11 @@ router bgp 12345
bgp router-id 1020 bgp router-id 1020
address-family ipv4 address-family ipv4
neighbor PEER_V4 peer-group neighbor PEER_V4 peer-group
neighbor PEER_V4 route-map A10 in neighbor PEER_V4 route-map A10 in
exit-address-family exit-address-family
address-family ipv6 address-family ipv6
neighbor PEER_V6 peer-group neighbor PEER_V6 peer-group
neighbor PEER_V6 route-map A20 in neighbor PEER_V6 route-map A20 in
exit-address-family exit-address-family
route-map A10 permit 10 route-map A10 permit 10
! !

View File

@ -37,7 +37,7 @@ def constructor():
cfg_mgr.update = update cfg_mgr.update = update
cfg_mgr.push = push cfg_mgr.push = push
cfg_mgr.get_config = get_config cfg_mgr.get_config = get_config
constants = deepcopy(global_constants) constants = deepcopy(global_constants)
common_objs = { common_objs = {
'directory': Directory(), 'directory': Directory(),
@ -46,12 +46,12 @@ def constructor():
'constants': constants 'constants': constants
} }
mgr = bgpcfgd.managers_device_global.DeviceGlobalCfgMgr(common_objs, "CONFIG_DB", swsscommon.CFG_BGP_DEVICE_GLOBAL_TABLE_NAME) mgr = bgpcfgd.managers_device_global.DeviceGlobalCfgMgr(common_objs, "CONFIG_DB", swsscommon.CFG_BGP_DEVICE_GLOBAL_TABLE_NAME)
cfg_mgr.update() cfg_mgr.update()
return mgr return mgr
@patch('bgpcfgd.managers_device_global.log_debug') @patch('bgpcfgd.managers_device_global.log_debug')
def test_isolate_device(mocked_log_info): def test_isolate_device(mocked_log_info):
m = constructor() m = constructor()
res = m.set_handler("STATE", {"tsa_enabled": "true"}) res = m.set_handler("STATE", {"tsa_enabled": "true"})
assert res, "Expect True return value for set_handler" assert res, "Expect True return value for set_handler"
@ -59,7 +59,7 @@ def test_isolate_device(mocked_log_info):
assert m.cfg_mgr.get_config() == get_string_from_file("/result_all_isolate.conf") assert m.cfg_mgr.get_config() == get_string_from_file("/result_all_isolate.conf")
@patch('bgpcfgd.managers_device_global.log_debug') @patch('bgpcfgd.managers_device_global.log_debug')
def test_unisolate_device(mocked_log_info): def test_unisolate_device(mocked_log_info):
m = constructor() m = constructor()
res = m.set_handler("STATE", {"tsa_enabled": "false"}) res = m.set_handler("STATE", {"tsa_enabled": "false"})
assert res, "Expect True return value for set_handler" assert res, "Expect True return value for set_handler"
@ -75,8 +75,8 @@ def test_check_state_and_get_tsa_routemaps():
m.set_handler("STATE", {"tsa_enabled": "false"}) m.set_handler("STATE", {"tsa_enabled": "false"})
res = m.check_state_and_get_tsa_routemaps(m.cfg_mgr.get_config()) res = m.check_state_and_get_tsa_routemaps(m.cfg_mgr.get_config())
assert res == "" assert res == ""
def test_get_tsa_routemaps(): def test_get_tsa_routemaps():
m = constructor() m = constructor()
assert m.get_ts_routemaps([], m.tsa_template) == "" assert m.get_ts_routemaps([], m.tsa_template) == ""
@ -84,7 +84,7 @@ def test_get_tsa_routemaps():
expected_res = get_string_from_file("/result_isolate.conf") expected_res = get_string_from_file("/result_isolate.conf")
assert res == expected_res assert res == expected_res
def test_get_tsb_routemaps(): def test_get_tsb_routemaps():
m = constructor() m = constructor()
assert m.get_ts_routemaps([], m.tsb_template) == "" assert m.get_ts_routemaps([], m.tsb_template) == ""
@ -100,13 +100,13 @@ def get_string_from_file(filename):
return cfg return cfg
@patch('bgpcfgd.managers_device_global.log_err') @patch('bgpcfgd.managers_device_global.log_err')
def test_set_handler_failure_case(mocked_log_info): def test_set_handler_failure_case(mocked_log_info):
m = constructor() m = constructor()
res = m.set_handler("STATE", {}) res = m.set_handler("STATE", {})
assert res == False, "Expect False return value for invalid data passed to set_handler" assert res == False, "Expect False return value for invalid data passed to set_handler"
mocked_log_info.assert_called_with("DeviceGlobalCfgMgr:: data is None") mocked_log_info.assert_called_with("DeviceGlobalCfgMgr:: data is None")
def test_del_handler(): def test_del_handler():
m = constructor() m = constructor()
res = m.del_handler("STATE") res = m.del_handler("STATE")
assert res, "Expect True return value for del_handler" assert res, "Expect True return value for del_handler"

View File

@ -3,7 +3,7 @@ Version: 1.0
Section: devel Section: devel
Priority: optional Priority: optional
Architecture: all Architecture: all
Depends: Depends:
Maintainer: SONiC <sonic@microsoft.com> Maintainer: SONiC <sonic@microsoft.com>
Description: sonic build hooks Description: sonic build hooks
Hooks the build tools, such as apt-get, wget, pip, etc. Hooks the build tools, such as apt-get, wget, pip, etc.

View File

@ -373,7 +373,7 @@ update_version_file()
done done
sort -u $tmp_file > $version_file sort -u $tmp_file > $version_file
rm -f $tmp_file rm -f $tmp_file
if [[ "${version_name}" == *-deb ]]; then if [[ "${version_name}" == *-deb ]]; then
update_preference_deb update_preference_deb
fi fi

View File

@ -12,7 +12,7 @@ DIST=$(grep VERSION_CODENAME /etc/os-release | cut -d= -f2)
mkdir -p $TARGET_PATH mkdir -p $TARGET_PATH
chmod a+rw $TARGET_PATH chmod a+rw $TARGET_PATH
# Skip the package that does have a static build version. # Skip the package that does have a static build version.
# SAI package versions are changed too frequently. # SAI package versions are changed too frequently.
SKIP_VERSION_PACKAGE="libsaibcm|libpaibcm|linuxptp|@ file://" SKIP_VERSION_PACKAGE="libsaibcm|libpaibcm|linuxptp|@ file://"
dpkg-query -W -f '${Package}==${Version}\n' | grep -Ev "${SKIP_VERSION_PACKAGE}" > "${TARGET_PATH}/versions-deb-${DIST}-${ARCH}" dpkg-query -W -f '${Package}==${Version}\n' | grep -Ev "${SKIP_VERSION_PACKAGE}" > "${TARGET_PATH}/versions-deb-${DIST}-${ARCH}"

View File

@ -21,6 +21,6 @@ if [ ! -z "$(get_version_cache_option)" ]; then
DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; }; DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };
APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; }; APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };
EOF EOF
fi fi

View File

@ -4,7 +4,7 @@ IMAGENAME=$1
. /usr/local/share/buildinfo/scripts/buildinfo_base.sh . /usr/local/share/buildinfo/scripts/buildinfo_base.sh
set -x set -x
if [ ! -z "$(get_version_cache_option)" ]; then if [ ! -z "$(get_version_cache_option)" ]; then
@ -18,7 +18,7 @@ fi
apt-get -s clean -y apt-get -s clean -y
apt-get -s autoclean -y apt-get -s autoclean -y
apt-get -s autoremove -y apt-get -s autoremove -y
#apt-get -s autoremove -y --purge #apt-get -s autoremove -y --purge
rm -f /var/cache/apt/archives/*.deb /var/cache/apt/*.bin rm -f /var/cache/apt/archives/*.deb /var/cache/apt/*.bin
if [[ ! ${IMAGENAME} =~ -slave- ]]; then if [[ ! ${IMAGENAME} =~ -slave- ]]; then

View File

@ -118,7 +118,7 @@ def generate_l2_config(data):
if 'uplinks' in data: if 'uplinks' in data:
uplinks = data['uplinks'] uplinks = data['uplinks']
data.pop('uplinks') data.pop('uplinks')
if 'downlinks' in data: if 'downlinks' in data:
downlinks = data['downlinks'] downlinks = data['downlinks']
data.pop('downlinks') data.pop('downlinks')

View File

@ -48,7 +48,7 @@ BACKEND_ASIC_SUB_ROLE = 'BackEnd'
dualtor_cable_types = ["active-active", "active-standby"] dualtor_cable_types = ["active-active", "active-standby"]
# Default Virtual Network Index (VNI) # Default Virtual Network Index (VNI)
vni_default = 8000 vni_default = 8000
# Defination of custom acl table types # Defination of custom acl table types
@ -475,7 +475,7 @@ def parse_dpg(dpg, hname):
tunnelintfs_qos_remap_config = defaultdict(dict) tunnelintfs_qos_remap_config = defaultdict(dict)
for child in dpg: for child in dpg:
""" """
In Multi-NPU platforms the acl intfs are defined only for the host not for individual asic. In Multi-NPU platforms the acl intfs are defined only for the host not for individual asic.
There is just one aclintf node in the minigraph There is just one aclintf node in the minigraph
Get the aclintfs node first. Get the aclintfs node first.
@ -499,7 +499,7 @@ def parse_dpg(dpg, hname):
if vni_element.text.isdigit(): if vni_element.text.isdigit():
vni = int(vni_element.text) vni = int(vni_element.text)
else: else:
print("VNI must be an integer (use default VNI %d instead)" % vni_default, file=sys.stderr) print("VNI must be an integer (use default VNI %d instead)" % vni_default, file=sys.stderr)
ipintfs = child.find(str(QName(ns, "IPInterfaces"))) ipintfs = child.find(str(QName(ns, "IPInterfaces")))
intfs = {} intfs = {}
@ -553,7 +553,7 @@ def parse_dpg(dpg, hname):
pc_intfs = [] pc_intfs = []
pcs = {} pcs = {}
pc_members = {} pc_members = {}
intfs_inpc = [] # List to hold all the LAG member interfaces intfs_inpc = [] # List to hold all the LAG member interfaces
for pcintf in pcintfs.findall(str(QName(ns, "PortChannel"))): for pcintf in pcintfs.findall(str(QName(ns, "PortChannel"))):
pcintfname = pcintf.find(str(QName(ns, "Name"))).text pcintfname = pcintf.find(str(QName(ns, "Name"))).text
pcintfmbr = pcintf.find(str(QName(ns, "AttachTo"))).text pcintfmbr = pcintf.find(str(QName(ns, "AttachTo"))).text
@ -787,7 +787,7 @@ def parse_dpg(dpg, hname):
else: else:
is_bmc_data = True is_bmc_data = True
acl_table_types['BMCDATA'] = acl_table_type_defination['BMCDATA'] acl_table_types['BMCDATA'] = acl_table_type_defination['BMCDATA']
# if acl is classified as mirror (erpsan) or acl interface # if acl is classified as mirror (erpsan) or acl interface
# are binded then do not classify as Control plane. # are binded then do not classify as Control plane.
# For multi-asic platforms it's possible there is no # For multi-asic platforms it's possible there is no
# interface are binded to everflow in host namespace. # interface are binded to everflow in host namespace.
@ -838,9 +838,9 @@ def parse_dpg(dpg, hname):
mg_tunnels = child.find(str(QName(ns, "TunnelInterfaces"))) mg_tunnels = child.find(str(QName(ns, "TunnelInterfaces")))
if mg_tunnels is not None: if mg_tunnels is not None:
table_key_to_mg_key_map = {"encap_ecn_mode": "EcnEncapsulationMode", table_key_to_mg_key_map = {"encap_ecn_mode": "EcnEncapsulationMode",
"ecn_mode": "EcnDecapsulationMode", "ecn_mode": "EcnDecapsulationMode",
"dscp_mode": "DifferentiatedServicesCodePointMode", "dscp_mode": "DifferentiatedServicesCodePointMode",
"ttl_mode": "TtlMode"} "ttl_mode": "TtlMode"}
tunnel_qos_remap_table_key_to_mg_key_map = { tunnel_qos_remap_table_key_to_mg_key_map = {
@ -860,7 +860,7 @@ def parse_dpg(dpg, hname):
# If the minigraph has the key, add the corresponding config DB key to the table # If the minigraph has the key, add the corresponding config DB key to the table
if mg_key in mg_tunnel.attrib: if mg_key in mg_tunnel.attrib:
tunnelintfs[tunnel_type][tunnel_name][table_key] = mg_tunnel.attrib[mg_key] tunnelintfs[tunnel_type][tunnel_name][table_key] = mg_tunnel.attrib[mg_key]
tunnelintfs_qos_remap_config[tunnel_type][tunnel_name] = { tunnelintfs_qos_remap_config[tunnel_type][tunnel_name] = {
"tunnel_type": mg_tunnel.attrib["Type"].upper(), "tunnel_type": mg_tunnel.attrib["Type"].upper(),
} }
@ -1209,12 +1209,12 @@ def parse_deviceinfo(meta, hwsku):
return port_speeds, port_descriptions, sys_ports return port_speeds, port_descriptions, sys_ports
# Function to check if IP address is present in the key. # Function to check if IP address is present in the key.
# If it is present, then the key would be a tuple. # If it is present, then the key would be a tuple.
def is_ip_prefix_in_key(key): def is_ip_prefix_in_key(key):
return (isinstance(key, tuple)) return (isinstance(key, tuple))
# Special parsing for spine chassis frontend # Special parsing for spine chassis frontend
def parse_spine_chassis_fe(results, vni, lo_intfs, phyport_intfs, pc_intfs, pc_members, devices): def parse_spine_chassis_fe(results, vni, lo_intfs, phyport_intfs, pc_intfs, pc_members, devices):
chassis_vnet ='VnetFE' chassis_vnet ='VnetFE'
chassis_vxlan_tunnel = 'TunnelInt' chassis_vxlan_tunnel = 'TunnelInt'
@ -1239,29 +1239,29 @@ def parse_spine_chassis_fe(results, vni, lo_intfs, phyport_intfs, pc_intfs, pc_m
# For each IP interface # For each IP interface
for intf in phyport_intfs: for intf in phyport_intfs:
# A IP interface may have multiple entries. # A IP interface may have multiple entries.
# For example, "Ethernet0": {}", "Ethernet0|192.168.1.1": {}" # For example, "Ethernet0": {}", "Ethernet0|192.168.1.1": {}"
# We only care about the one without IP information # We only care about the one without IP information
if is_ip_prefix_in_key(intf) == True: if is_ip_prefix_in_key(intf) == True:
continue continue
neighbor_router = results['DEVICE_NEIGHBOR'][intf]['name'] neighbor_router = results['DEVICE_NEIGHBOR'][intf]['name']
# If the neighbor router is an external router # If the neighbor router is an external router
if devices[neighbor_router]['type'] != chassis_backend_role: if devices[neighbor_router]['type'] != chassis_backend_role:
# Enslave the interface to a Vnet # Enslave the interface to a Vnet
phyport_intfs[intf] = {'vnet_name': chassis_vnet} phyport_intfs[intf] = {'vnet_name': chassis_vnet}
# For each port channel IP interface # For each port channel IP interface
for pc_intf in pc_intfs: for pc_intf in pc_intfs:
# A port channel IP interface may have multiple entries. # A port channel IP interface may have multiple entries.
# For example, "Portchannel0": {}", "Portchannel0|192.168.1.1": {}" # For example, "Portchannel0": {}", "Portchannel0|192.168.1.1": {}"
# We only care about the one without IP information # We only care about the one without IP information
if is_ip_prefix_in_key(pc_intf) == True: if is_ip_prefix_in_key(pc_intf) == True:
continue continue
intf_name = None intf_name = None
# Get a physical interface that belongs to this port channel # Get a physical interface that belongs to this port channel
for pc_member in pc_members: for pc_member in pc_members:
if pc_member[0] == pc_intf: if pc_member[0] == pc_intf:
intf_name = pc_member[1] intf_name = pc_member[1]
@ -1274,10 +1274,10 @@ def parse_spine_chassis_fe(results, vni, lo_intfs, phyport_intfs, pc_intfs, pc_m
# Get the neighbor router of this port channel interface # Get the neighbor router of this port channel interface
neighbor_router = results['DEVICE_NEIGHBOR'][intf_name]['name'] neighbor_router = results['DEVICE_NEIGHBOR'][intf_name]['name']
# If the neighbor router is an external router # If the neighbor router is an external router
if devices[neighbor_router]['type'] != chassis_backend_role: if devices[neighbor_router]['type'] != chassis_backend_role:
# Enslave the port channel interface to a Vnet # Enslave the port channel interface to a Vnet
pc_intfs[pc_intf] = {'vnet_name': chassis_vnet} pc_intfs[pc_intf] = {'vnet_name': chassis_vnet}
############################################################################### ###############################################################################
# #
@ -1306,10 +1306,10 @@ def filter_acl_table_bindings(acls, neighbors, port_channels, pc_members, sub_ro
return filter_acl_table_for_backend(acls, vlan_members) return filter_acl_table_for_backend(acls, vlan_members)
filter_acls = {} filter_acls = {}
# If the asic role is BackEnd no ACL Table (Ctrl/Data/Everflow) is binded. # If the asic role is BackEnd no ACL Table (Ctrl/Data/Everflow) is binded.
# This will be applicable in Multi-NPU Platforms. # This will be applicable in Multi-NPU Platforms.
if sub_role == BACKEND_ASIC_SUB_ROLE: if sub_role == BACKEND_ASIC_SUB_ROLE:
return filter_acls return filter_acls
@ -1317,7 +1317,7 @@ def filter_acl_table_bindings(acls, neighbors, port_channels, pc_members, sub_ro
# List of Backplane ports # List of Backplane ports
backplane_port_list = [v for k,v in port_alias_map.items() if v.startswith(backplane_prefix())] backplane_port_list = [v for k,v in port_alias_map.items() if v.startswith(backplane_prefix())]
# Get the front panel port channel. # Get the front panel port channel.
for port_channel_intf in port_channels: for port_channel_intf in port_channels:
backend_port_channel = any(lag_member[1] in backplane_port_list \ backend_port_channel = any(lag_member[1] in backplane_port_list \
@ -1349,12 +1349,12 @@ def filter_acl_table_bindings(acls, neighbors, port_channels, pc_members, sub_ro
if port in port_channels and port not in front_port_channel_intf: if port in port_channels and port not in front_port_channel_intf:
continue continue
front_panel_ports.append(port) front_panel_ports.append(port)
# Filters out inactive front-panel ports from the binding list for mirror # Filters out inactive front-panel ports from the binding list for mirror
# ACL tables. We define an "active" port as one that is a member of a # ACL tables. We define an "active" port as one that is a member of a
# front pannel port channel or one that is connected to a neighboring device via front panel port. # front pannel port channel or one that is connected to a neighboring device via front panel port.
active_ports = [port for port in front_panel_ports if port in neighbors.keys() or port in front_port_channel_intf] active_ports = [port for port in front_panel_ports if port in neighbors.keys() or port in front_port_channel_intf]
if not active_ports: if not active_ports:
print('Warning: mirror table {} in ACL_TABLE does not have any ports bound to it'.format(acl_table), file=sys.stderr) print('Warning: mirror table {} in ACL_TABLE does not have any ports bound to it'.format(acl_table), file=sys.stderr)
@ -1421,7 +1421,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
filename -- minigraph file name filename -- minigraph file name
platform -- device platform platform -- device platform
port_config_file -- port config file name port_config_file -- port config file name
asic_name -- asic name; to parse multi-asic device minigraph to asic_name -- asic name; to parse multi-asic device minigraph to
generate asic specific configuration. generate asic specific configuration.
""" """
@ -1501,7 +1501,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
docker_routing_config_mode = child.text docker_routing_config_mode = child.text
(ports, alias_map, alias_asic_map) = get_port_config(hwsku=hwsku, platform=platform, port_config_file=port_config_file, asic_name=asic_name, hwsku_config_file=hwsku_config_file) (ports, alias_map, alias_asic_map) = get_port_config(hwsku=hwsku, platform=platform, port_config_file=port_config_file, asic_name=asic_name, hwsku_config_file=hwsku_config_file)
port_names_map.update(ports) port_names_map.update(ports)
port_alias_map.update(alias_map) port_alias_map.update(alias_map)
port_alias_asic_map.update(alias_asic_map) port_alias_asic_map.update(alias_asic_map)
@ -1592,7 +1592,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
print("Warning: more than one peer switch was found. Only the first will be parsed: {}".format(results['PEER_SWITCH'].keys()[0])) print("Warning: more than one peer switch was found. Only the first will be parsed: {}".format(results['PEER_SWITCH'].keys()[0]))
results['DEVICE_METADATA']['localhost']['peer_switch'] = list(results['PEER_SWITCH'].keys())[0] results['DEVICE_METADATA']['localhost']['peer_switch'] = list(results['PEER_SWITCH'].keys())[0]
# Enable tunnel_qos_remap if downstream_redundancy_types(T1) or redundancy_type(T0) = Gemini/Libra # Enable tunnel_qos_remap if downstream_redundancy_types(T1) or redundancy_type(T0) = Gemini/Libra
enable_tunnel_qos_map = False enable_tunnel_qos_map = False
if platform and 'kvm' in platform: if platform and 'kvm' in platform:
@ -1607,8 +1607,8 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
if len(system_defaults) > 0: if len(system_defaults) > 0:
results['SYSTEM_DEFAULTS'] = system_defaults results['SYSTEM_DEFAULTS'] = system_defaults
# for this hostname, if sub_role is defined, add sub_role in # for this hostname, if sub_role is defined, add sub_role in
# device_metadata # device_metadata
if sub_role is not None: if sub_role is not None:
current_device['sub_role'] = sub_role current_device['sub_role'] = sub_role
@ -1743,7 +1743,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
port_default_speed = port_speeds_default.get(port_name, None) port_default_speed = port_speeds_default.get(port_name, None)
port_png_speed = port_speed_png[port_name] port_png_speed = port_speed_png[port_name]
# when the port speed is changes from 400g to 100g/40g # when the port speed is changes from 400g to 100g/40g
# update the port lanes, use the first 4 lanes of the 400G port to support 100G/40G port # update the port lanes, use the first 4 lanes of the 400G port to support 100G/40G port
if port_default_speed == '400000' and (port_png_speed == '100000' or port_png_speed == '40000'): if port_default_speed == '400000' and (port_png_speed == '100000' or port_png_speed == '40000'):
port_lanes = ports[port_name].get('lanes', '').split(',') port_lanes = ports[port_name].get('lanes', '').split(',')

File diff suppressed because it is too large Load Diff

View File

@ -411,7 +411,7 @@
<AttachTo>etp19</AttachTo> <AttachTo>etp19</AttachTo>
<Address>200.200.200.10</Address> <Address>200.200.200.10</Address>
<Type>FineGrainedECMPGroupMember</Type> <Type>FineGrainedECMPGroupMember</Type>
</IPNextHop> </IPNextHop>
<IPNextHop> <IPNextHop>
<ElementType>IPNextHop</ElementType> <ElementType>IPNextHop</ElementType>
<Name i:nil="true" /> <Name i:nil="true" />
@ -481,7 +481,7 @@
<AttachTo>etp19</AttachTo> <AttachTo>etp19</AttachTo>
<Address>200:200:200:200::10</Address> <Address>200:200:200:200::10</Address>
<Type>FineGrainedECMPGroupMember</Type> <Type>FineGrainedECMPGroupMember</Type>
</IPNextHop> </IPNextHop>
</IPNextHops> </IPNextHops>
</DeviceDataPlaneInfo> </DeviceDataPlaneInfo>
</DpgDec> </DpgDec>

View File

@ -1,11 +1,11 @@
{ {
"PORT|Ethernet0": { "PORT|Ethernet0": {
"lanes": "29,30,31,32", "lanes": "29,30,31,32",
"description": "config_db:switch-01t1:port1", "description": "config_db:switch-01t1:port1",
"pfc_asym": "off", "pfc_asym": "off",
"mtu": "9100", "mtu": "9100",
"alias": "fortyGigE0/0", "alias": "fortyGigE0/0",
"admin_status": "up", "admin_status": "up",
"speed": "10000" "speed": "10000"
}, },
"PORT|Ethernet4": { "PORT|Ethernet4": {

View File

@ -1,9 +1,9 @@
# name lanes alias index asic_port_name role # name lanes alias index asic_port_name role
Ethernet0 33,34,35,36 Ethernet1/1 0 Eth0-ASIC0 Ext Ethernet0 33,34,35,36 Ethernet1/1 0 Eth0-ASIC0 Ext
Ethernet4 29,30,31,32 Ethernet1/2 1 Eth1-ASIC0 Ext Ethernet4 29,30,31,32 Ethernet1/2 1 Eth1-ASIC0 Ext
Ethernet8 41,42,43,44 Ethernet1/3 2 Eth2-ASIC0 Ext Ethernet8 41,42,43,44 Ethernet1/3 2 Eth2-ASIC0 Ext
Ethernet12 37,38,39,40 Ethernet1/4 3 Eth3-ASIC0 Ext Ethernet12 37,38,39,40 Ethernet1/4 3 Eth3-ASIC0 Ext
Ethernet-BP0 13,14,15,16 Eth4-ASIC0 0 Eth4-ASIC0 Int Ethernet-BP0 13,14,15,16 Eth4-ASIC0 0 Eth4-ASIC0 Int
Ethernet-BP4 17,18,19,20 Eth5-ASIC0 1 Eth5-ASIC0 Int Ethernet-BP4 17,18,19,20 Eth5-ASIC0 1 Eth5-ASIC0 Int
Ethernet-BP8 21,22,23,24 Eth6-ASIC0 2 Eth6-ASIC0 Int Ethernet-BP8 21,22,23,24 Eth6-ASIC0 2 Eth6-ASIC0 Int
Ethernet-BP12 25,26,27,28 Eth7-ASIC0 3 Eth7-ASIC0 Int Ethernet-BP12 25,26,27,28 Eth7-ASIC0 3 Eth7-ASIC0 Int

View File

@ -1,4 +1,4 @@
# name lanes alias index asic_port_name role # name lanes alias index asic_port_name role
Ethernet0 33,34,35,36 Ethernet1/1 0 Eth0-ASIC0 Ext Ethernet0 33,34,35,36 Ethernet1/1 0 Eth0-ASIC0 Ext
Ethernet4 29,30,31,32 Ethernet1/2 1 Eth1-ASIC0 Ext Ethernet4 29,30,31,32 Ethernet1/2 1 Eth1-ASIC0 Ext
Ethernet8 41,42,43,44 Ethernet1/3 2 Eth2-ASIC0 Ext Ethernet8 41,42,43,44 Ethernet1/3 2 Eth2-ASIC0 Ext

View File

@ -910,9 +910,9 @@
</EthernetInterfaces> </EthernetInterfaces>
<FlowControl>true</FlowControl> <FlowControl>true</FlowControl>
<Height>0</Height> <Height>0</Height>
<HwSku>Arista-7050-QX-32S</HwSku> <HwSku>Arista-7050-QX-32S</HwSku>
<ManagementInterfaces/> <ManagementInterfaces/>
</DeviceInfo> </DeviceInfo>
</DeviceInfos> </DeviceInfos>
<MetadataDeclaration> <MetadataDeclaration>
<Devices xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"> <Devices xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">

View File

@ -806,7 +806,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.2/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.2/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -836,7 +836,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.3/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.3/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::3/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::3/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -866,7 +866,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.4/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.4/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::4/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::4/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -896,7 +896,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.5/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.5/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::5/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::5/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -926,7 +926,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.6/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.6/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::6/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::6/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -956,7 +956,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.7/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.7/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::7/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::7/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -986,7 +986,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.8/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.8/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::8/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::8/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1016,7 +1016,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.9/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.9/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::9/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::9/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1046,7 +1046,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.10/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.10/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::a/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::a/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1076,7 +1076,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.11/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.11/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::b/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::b/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1106,7 +1106,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.12/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.12/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::c/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::c/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1136,7 +1136,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.13/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.13/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::d/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::d/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1166,7 +1166,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.14/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.14/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::e/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::e/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1196,7 +1196,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.15/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.15/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::f/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::f/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1226,7 +1226,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.16/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.16/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::10/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::10/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1256,7 +1256,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.17/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.17/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::11/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::11/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1286,7 +1286,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.18/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.18/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::12/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::12/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1316,7 +1316,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.19/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.19/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::13/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::13/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1346,7 +1346,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.20/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.20/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::14/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::14/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1376,7 +1376,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.21/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.21/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::15/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::15/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1406,7 +1406,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.22/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.22/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::16/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::16/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1436,7 +1436,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.23/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.23/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::17/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::17/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1466,7 +1466,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.24/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.24/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::18/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::18/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1496,7 +1496,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.25/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.25/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::19/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::19/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>

View File

@ -806,7 +806,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.2/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.2/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -836,7 +836,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.3/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.3/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::3/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::3/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -866,7 +866,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.4/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.4/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::4/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::4/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -896,7 +896,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.5/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.5/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::5/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::5/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -926,7 +926,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.6/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.6/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::6/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::6/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -956,7 +956,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.7/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.7/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::7/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::7/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -986,7 +986,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.8/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.8/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::8/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::8/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1016,7 +1016,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.9/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.9/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::9/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::9/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1046,7 +1046,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.10/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.10/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::a/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::a/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1076,7 +1076,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.11/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.11/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::b/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::b/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1106,7 +1106,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.12/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.12/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::c/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::c/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1136,7 +1136,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.13/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.13/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::d/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::d/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1166,7 +1166,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.14/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.14/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::e/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::e/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1196,7 +1196,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.15/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.15/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::f/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::f/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1226,7 +1226,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.16/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.16/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::10/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::10/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1256,7 +1256,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.17/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.17/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::11/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::11/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1286,7 +1286,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.18/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.18/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::12/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::12/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1316,7 +1316,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.19/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.19/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::13/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::13/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1346,7 +1346,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.20/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.20/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::14/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::14/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1376,7 +1376,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.21/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.21/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::15/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::15/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1406,7 +1406,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.22/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.22/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::16/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::16/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1436,7 +1436,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.23/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.23/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::17/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::17/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1466,7 +1466,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.24/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.24/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::18/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::18/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1496,7 +1496,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.25/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.25/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::19/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::19/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>

View File

@ -1254,7 +1254,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.2/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.2/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1284,7 +1284,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.3/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.3/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::3/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::3/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1314,7 +1314,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.4/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.4/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::4/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::4/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1344,7 +1344,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.5/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.5/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::5/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::5/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1374,7 +1374,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.6/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.6/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::6/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::6/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1404,7 +1404,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.7/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.7/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::7/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::7/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1434,7 +1434,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.8/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.8/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::8/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::8/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1464,7 +1464,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.9/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.9/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::9/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::9/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1494,7 +1494,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.10/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.10/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::a/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::a/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1524,7 +1524,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.11/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.11/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::b/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::b/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1554,7 +1554,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.12/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.12/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::c/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::c/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1584,7 +1584,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.13/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.13/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::d/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::d/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1614,7 +1614,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.14/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.14/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::e/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::e/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1644,7 +1644,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.15/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.15/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::f/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::f/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1674,7 +1674,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.16/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.16/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::10/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::10/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1704,7 +1704,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.17/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.17/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::11/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::11/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1734,7 +1734,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.18/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.18/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::12/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::12/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1764,7 +1764,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.19/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.19/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::13/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::13/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1794,7 +1794,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.20/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.20/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::14/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::14/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1824,7 +1824,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.21/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.21/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::15/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::15/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1854,7 +1854,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.22/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.22/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::16/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::16/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1884,7 +1884,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.23/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.23/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::17/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::17/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1914,7 +1914,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.24/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.24/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::18/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::18/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1944,7 +1944,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.25/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.25/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::19/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::19/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1974,7 +1974,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.26/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.26/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::1a/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::1a/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2004,7 +2004,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.27/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.27/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::1b/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::1b/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2034,7 +2034,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.28/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.28/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::1c/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::1c/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2064,7 +2064,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.29/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.29/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::1d/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::1d/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2094,7 +2094,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.30/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.30/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::1e/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::1e/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2124,7 +2124,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.31/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.31/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::1f/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::1f/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2154,7 +2154,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.32/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.32/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::20/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::20/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2184,7 +2184,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.33/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.33/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::21/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::21/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2214,7 +2214,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.34/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.34/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::22/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::22/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2244,7 +2244,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.35/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.35/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::23/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::23/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2274,7 +2274,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.36/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.36/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::24/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::24/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2304,7 +2304,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.37/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.37/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::25/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::25/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2334,7 +2334,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.38/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.38/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::26/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::26/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2364,7 +2364,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.39/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.39/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::27/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::27/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2394,7 +2394,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.40/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.40/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::28/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::28/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2424,7 +2424,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.41/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.41/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::29/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::29/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2454,7 +2454,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.42/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.42/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2a/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2a/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2484,7 +2484,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.43/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.43/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2b/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2b/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2514,7 +2514,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.44/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.44/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2c/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2c/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2544,7 +2544,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.45/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.45/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2d/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2d/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2574,7 +2574,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.46/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.46/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2e/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2e/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2604,7 +2604,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.47/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.47/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2f/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2f/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2634,7 +2634,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.48/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.48/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::30/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::30/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2664,7 +2664,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.49/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.49/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::31/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::31/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2694,7 +2694,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.50/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.50/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::32/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::32/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2724,7 +2724,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.51/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.51/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::33/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::33/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2754,7 +2754,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.52/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.52/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::34/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::34/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2784,7 +2784,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.53/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.53/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::35/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::35/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2814,7 +2814,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.54/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.54/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::36/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::36/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2844,7 +2844,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.55/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.55/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::37/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::37/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2874,7 +2874,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.56/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.56/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::38/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::38/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2904,7 +2904,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.57/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.57/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::39/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::39/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>

View File

@ -1254,7 +1254,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.2/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.2/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1284,7 +1284,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.3/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.3/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::3/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::3/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1314,7 +1314,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.4/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.4/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::4/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::4/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1344,7 +1344,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.5/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.5/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::5/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::5/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1374,7 +1374,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.6/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.6/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::6/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::6/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1404,7 +1404,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.7/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.7/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::7/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::7/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1434,7 +1434,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.8/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.8/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::8/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::8/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1464,7 +1464,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.9/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.9/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::9/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::9/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1494,7 +1494,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.10/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.10/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::a/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::a/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1524,7 +1524,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.11/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.11/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::b/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::b/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1554,7 +1554,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.12/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.12/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::c/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::c/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1584,7 +1584,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.13/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.13/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::d/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::d/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1614,7 +1614,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.14/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.14/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::e/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::e/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1644,7 +1644,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.15/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.15/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::f/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::f/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1674,7 +1674,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.16/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.16/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::10/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::10/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1704,7 +1704,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.17/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.17/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::11/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::11/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1734,7 +1734,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.18/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.18/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::12/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::12/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1764,7 +1764,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.19/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.19/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::13/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::13/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1794,7 +1794,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.20/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.20/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::14/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::14/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1824,7 +1824,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.21/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.21/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::15/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::15/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1854,7 +1854,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.22/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.22/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::16/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::16/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1884,7 +1884,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.23/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.23/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::17/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::17/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1914,7 +1914,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.24/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.24/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::18/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::18/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1944,7 +1944,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.25/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.25/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::19/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::19/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -1974,7 +1974,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.26/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.26/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::1a/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::1a/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2004,7 +2004,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.27/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.27/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::1b/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::1b/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2034,7 +2034,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.28/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.28/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::1c/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::1c/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2064,7 +2064,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.29/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.29/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::1d/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::1d/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2094,7 +2094,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.30/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.30/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::1e/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::1e/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2124,7 +2124,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.31/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.31/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::1f/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::1f/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2154,7 +2154,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.32/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.32/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::20/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::20/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2184,7 +2184,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.33/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.33/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::21/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::21/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2214,7 +2214,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.34/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.34/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::22/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::22/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2244,7 +2244,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.35/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.35/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::23/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::23/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2274,7 +2274,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.36/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.36/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::24/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::24/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2304,7 +2304,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.37/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.37/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::25/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::25/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2334,7 +2334,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.38/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.38/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::26/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::26/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2364,7 +2364,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.39/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.39/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::27/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::27/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2394,7 +2394,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.40/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.40/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::28/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::28/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2424,7 +2424,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.41/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.41/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::29/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::29/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2454,7 +2454,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.42/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.42/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2a/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2a/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2484,7 +2484,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.43/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.43/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2b/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2b/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2514,7 +2514,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.44/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.44/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2c/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2c/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2544,7 +2544,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.45/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.45/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2d/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2d/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2574,7 +2574,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.46/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.46/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2e/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2e/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2604,7 +2604,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.47/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.47/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::2f/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::2f/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2634,7 +2634,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.48/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.48/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::30/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::30/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2664,7 +2664,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.49/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.49/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::31/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::31/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2694,7 +2694,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.50/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.50/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::32/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::32/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2724,7 +2724,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.51/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.51/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::33/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::33/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2754,7 +2754,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.52/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.52/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::34/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::34/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2784,7 +2784,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.53/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.53/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::35/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::35/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2814,7 +2814,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.54/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.54/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::36/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::36/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2844,7 +2844,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.55/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.55/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::37/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::37/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2874,7 +2874,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.56/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.56/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::38/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::38/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>
@ -2904,7 +2904,7 @@
<ElementType>Server</ElementType> <ElementType>Server</ElementType>
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>192.168.0.57/26</d5p1:IPPrefix> <d5p1:IPPrefix>192.168.0.57/26</d5p1:IPPrefix>
</Address> </Address>
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux"> <AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
<d5p1:IPPrefix>fc02:1000::39/96</d5p1:IPPrefix> <d5p1:IPPrefix>fc02:1000::39/96</d5p1:IPPrefix>
</AddressV6> </AddressV6>

View File

@ -914,8 +914,8 @@
<HoldTime>10</HoldTime> <HoldTime>10</HoldTime>
<KeepAliveTime>3</KeepAliveTime> <KeepAliveTime>3</KeepAliveTime>
</BGPSession> </BGPSession>
<BGPSession> <BGPSession>
<StartRouter>ASIC0</StartRouter> <StartRouter>ASIC0</StartRouter>
<EndRouter>ASIC1</EndRouter> <EndRouter>ASIC1</EndRouter>

View File

@ -914,8 +914,8 @@
<HoldTime>10</HoldTime> <HoldTime>10</HoldTime>
<KeepAliveTime>3</KeepAliveTime> <KeepAliveTime>3</KeepAliveTime>
</BGPSession> </BGPSession>
<BGPSession> <BGPSession>
<StartRouter>ASIC0</StartRouter> <StartRouter>ASIC0</StartRouter>
<EndRouter>str3-7800-lc2-1</EndRouter> <EndRouter>str3-7800-lc2-1</EndRouter>

View File

@ -1,57 +1,57 @@
# name lanes alias index speed # name lanes alias index speed
Ethernet0 2304,2305,2306,2307 etp0a 0 100000 Ethernet0 2304,2305,2306,2307 etp0a 0 100000
Ethernet4 2308,2309,2310,2311 etp0b 0 100000 Ethernet4 2308,2309,2310,2311 etp0b 0 100000
Ethernet8 2320,2321,2322,2323 etp1a 1 100000 Ethernet8 2320,2321,2322,2323 etp1a 1 100000
Ethernet12 2324,2325,2326,2327 etp1b 1 100000 Ethernet12 2324,2325,2326,2327 etp1b 1 100000
Ethernet16 2312,2313,2314,2315 etp2a 2 100000 Ethernet16 2312,2313,2314,2315 etp2a 2 100000
Ethernet20 2316,2317,2318,2319 etp2b 2 100000 Ethernet20 2316,2317,2318,2319 etp2b 2 100000
Ethernet24 2056,2057,2058,2059 etp3a 3 100000 Ethernet24 2056,2057,2058,2059 etp3a 3 100000
Ethernet28 2060,2061,2062,2063 etp3b 3 100000 Ethernet28 2060,2061,2062,2063 etp3b 3 100000
Ethernet32 1792,1793,1794,1795 etp4a 4 100000 Ethernet32 1792,1793,1794,1795 etp4a 4 100000
Ethernet36 1796,1797,1798,1799 etp4b 4 100000 Ethernet36 1796,1797,1798,1799 etp4b 4 100000
Ethernet40 2048,2049,2050,2051 etp5a 5 100000 Ethernet40 2048,2049,2050,2051 etp5a 5 100000
Ethernet44 2052,2053,2054,2055 etp5b 5 100000 Ethernet44 2052,2053,2054,2055 etp5b 5 100000
Ethernet48 2560,2561,2562,2563 etp6a 6 100000 Ethernet48 2560,2561,2562,2563 etp6a 6 100000
Ethernet52 2564,2565,2566,2567 etp6b 6 100000 Ethernet52 2564,2565,2566,2567 etp6b 6 100000
Ethernet56 2824,2825,2826,2827 etp7a 7 100000 Ethernet56 2824,2825,2826,2827 etp7a 7 100000
Ethernet60 2828,2829,2830,2831 etp7b 7 100000 Ethernet60 2828,2829,2830,2831 etp7b 7 100000
Ethernet64 2832,2833,2834,2835 etp8a 8 100000 Ethernet64 2832,2833,2834,2835 etp8a 8 100000
Ethernet68 2836,2837,2838,2839 etp8b 8 100000 Ethernet68 2836,2837,2838,2839 etp8b 8 100000
Ethernet72 2816,2817,2818,2819 etp9a 9 100000 Ethernet72 2816,2817,2818,2819 etp9a 9 100000
Ethernet76 2820,2821,2822,2823 etp9b 9 100000 Ethernet76 2820,2821,2822,2823 etp9b 9 100000
Ethernet80 2568,2569,2570,2571 etp10a 10 100000 Ethernet80 2568,2569,2570,2571 etp10a 10 100000
Ethernet84 2572,2573,2574,2575 etp10b 10 100000 Ethernet84 2572,2573,2574,2575 etp10b 10 100000
Ethernet88 2576,2577,2578,2579 etp11a 11 100000 Ethernet88 2576,2577,2578,2579 etp11a 11 100000
Ethernet92 2580,2581,2582,2583 etp11b 11 100000 Ethernet92 2580,2581,2582,2583 etp11b 11 100000
Ethernet96 1536,1537,1538,1539,1540,1541,1542,1543 etp12 12 400000 Ethernet96 1536,1537,1538,1539,1540,1541,1542,1543 etp12 12 400000
Ethernet104 1800,1801,1802,1803,1804,1805,1806,1807 etp13 13 400000 Ethernet104 1800,1801,1802,1803,1804,1805,1806,1807 etp13 13 400000
Ethernet112 1552,1553,1554,1555,1556,1557,1558,1559 etp14 14 400000 Ethernet112 1552,1553,1554,1555,1556,1557,1558,1559 etp14 14 400000
Ethernet120 1544,1545,1546,1547,1548,1549,1550,1551 etp15 15 400000 Ethernet120 1544,1545,1546,1547,1548,1549,1550,1551 etp15 15 400000
Ethernet128 1296,1297,1298,1299,1300,1301,1302,1303 etp16 16 400000 Ethernet128 1296,1297,1298,1299,1300,1301,1302,1303 etp16 16 400000
Ethernet136 1288,1289,1290,1291,1292,1293,1294,1295 etp17 17 400000 Ethernet136 1288,1289,1290,1291,1292,1293,1294,1295 etp17 17 400000
Ethernet144 1280,1281,1282,1283,1284,1285,1286,1287 etp18 18 400000 Ethernet144 1280,1281,1282,1283,1284,1285,1286,1287 etp18 18 400000
Ethernet152 1032,1033,1034,1035,1036,1037,1038,1039 etp19 19 400000 Ethernet152 1032,1033,1034,1035,1036,1037,1038,1039 etp19 19 400000
Ethernet160 264,265,266,267 etp20a 20 100000 Ethernet160 264,265,266,267 etp20a 20 100000
Ethernet164 268,269,270,271 etp20b 20 100000 Ethernet164 268,269,270,271 etp20b 20 100000
Ethernet168 272,273,274,275 etp21a 21 100000 Ethernet168 272,273,274,275 etp21a 21 100000
Ethernet172 276,277,278,279 etp21b 21 100000 Ethernet172 276,277,278,279 etp21b 21 100000
Ethernet176 16,17,18,19 etp22a 22 100000 Ethernet176 16,17,18,19 etp22a 22 100000
Ethernet180 20,21,22,23 etp22b 22 100000 Ethernet180 20,21,22,23 etp22b 22 100000
Ethernet184 0,1,2,3 etp23a 23 100000 Ethernet184 0,1,2,3 etp23a 23 100000
Ethernet188 4,5,6,7 etp23b 23 100000 Ethernet188 4,5,6,7 etp23b 23 100000
Ethernet192 256,257,258,259 etp24a 24 100000 Ethernet192 256,257,258,259 etp24a 24 100000
Ethernet196 260,261,262,263 etp24b 24 100000 Ethernet196 260,261,262,263 etp24b 24 100000
Ethernet200 8,9,10,11 etp25a 25 100000 Ethernet200 8,9,10,11 etp25a 25 100000
Ethernet204 12,13,14,15 etp25b 25 100000 Ethernet204 12,13,14,15 etp25b 25 100000
Ethernet208 1024,1025,1026,1027 etp26a 26 100000 Ethernet208 1024,1025,1026,1027 etp26a 26 100000
Ethernet212 1028,1029,1030,1031 etp26b 26 100000 Ethernet212 1028,1029,1030,1031 etp26b 26 100000
Ethernet216 768,769,770,771 etp27a 27 100000 Ethernet216 768,769,770,771 etp27a 27 100000
Ethernet220 772,773,774,775 etp27b 27 100000 Ethernet220 772,773,774,775 etp27b 27 100000
Ethernet224 524,525,526,527 etp28a 28 100000 Ethernet224 524,525,526,527 etp28a 28 100000
Ethernet228 520,521,522,523 etp28b 28 100000 Ethernet228 520,521,522,523 etp28b 28 100000
Ethernet232 776,777,778,779 etp29a 29 100000 Ethernet232 776,777,778,779 etp29a 29 100000
Ethernet236 780,781,782,783 etp29b 29 100000 Ethernet236 780,781,782,783 etp29b 29 100000
Ethernet240 516,517,518,519 etp30a 30 100000 Ethernet240 516,517,518,519 etp30a 30 100000
Ethernet244 512,513,514,515 etp30b 30 100000 Ethernet244 512,513,514,515 etp30b 30 100000
Ethernet248 528,529,530,531 etp31a 31 100000 Ethernet248 528,529,530,531 etp31a 31 100000
Ethernet252 532,533,534,535 etp31b 31 100000 Ethernet252 532,533,534,535 etp31b 31 100000

View File

@ -725,7 +725,7 @@
</a:DeviceMetadata> </a:DeviceMetadata>
</Devices> </Devices>
<Properties xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"/> <Properties xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"/>
</MetadataDeclaration> </MetadataDeclaration>
<LinkMetadataDeclaration> <LinkMetadataDeclaration>
<Link xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"> <Link xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">
<a:LinkMetadata> <a:LinkMetadata>

View File

@ -914,8 +914,8 @@
<HoldTime>10</HoldTime> <HoldTime>10</HoldTime>
<KeepAliveTime>3</KeepAliveTime> <KeepAliveTime>3</KeepAliveTime>
</BGPSession> </BGPSession>
<BGPSession> <BGPSession>
<StartRouter>ASIC0</StartRouter> <StartRouter>ASIC0</StartRouter>
<EndRouter>ASIC1</EndRouter> <EndRouter>ASIC1</EndRouter>

View File

@ -154,8 +154,8 @@
<HoldTime>10</HoldTime> <HoldTime>10</HoldTime>
<KeepAliveTime>3</KeepAliveTime> <KeepAliveTime>3</KeepAliveTime>
</BGPSession> </BGPSession>
<BGPSession> <BGPSession>
<StartRouter>ASIC0</StartRouter> <StartRouter>ASIC0</StartRouter>
<EndRouter>ASIC1</EndRouter> <EndRouter>ASIC1</EndRouter>

View File

@ -15,7 +15,7 @@
"AZURE": { "AZURE": {
"0": "0", "0": "0",
"1": "1", "1": "1",
"2": "1", "2": "1",
"3": "3", "3": "3",
"4": "4", "4": "4",
"5": "5", "5": "5",
@ -26,7 +26,7 @@
"AZURE_UPLINK": { "AZURE_UPLINK": {
"0": "0", "0": "0",
"1": "1", "1": "1",
"2": "2", "2": "2",
"3": "3", "3": "3",
"4": "4", "4": "4",
"5": "5", "5": "5",

View File

@ -289,7 +289,7 @@
"PORT_QOS_MAP": { "PORT_QOS_MAP": {
"Ethernet2": { "Ethernet2": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -298,7 +298,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet4": { "Ethernet4": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -307,7 +307,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet6": { "Ethernet6": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -316,7 +316,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet8": { "Ethernet8": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -325,7 +325,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet10": { "Ethernet10": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -334,7 +334,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet12": { "Ethernet12": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -343,7 +343,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet14": { "Ethernet14": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -352,7 +352,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet16": { "Ethernet16": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -361,7 +361,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet18": { "Ethernet18": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -370,7 +370,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet20": { "Ethernet20": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -379,7 +379,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet22": { "Ethernet22": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -388,7 +388,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet24": { "Ethernet24": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -397,7 +397,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet26": { "Ethernet26": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -406,7 +406,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet28": { "Ethernet28": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -415,7 +415,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet30": { "Ethernet30": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -424,7 +424,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet32": { "Ethernet32": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -433,7 +433,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet34": { "Ethernet34": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -442,7 +442,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet36": { "Ethernet36": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -451,7 +451,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet38": { "Ethernet38": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",
@ -460,7 +460,7 @@
"pfcwd_sw_enable" : "3,4" "pfcwd_sw_enable" : "3,4"
}, },
"Ethernet48": { "Ethernet48": {
"dscp_to_tc_map" : "AZURE", "dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE", "tc_to_queue_map" : "AZURE",
"tc_to_pg_map" : "AZURE", "tc_to_pg_map" : "AZURE",

View File

@ -379,7 +379,7 @@
<DeviceLocation i:nil="true"/> <DeviceLocation i:nil="true"/>
<ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux"> <ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux">
<a:IPPrefix>10.7.0.196/26</a:IPPrefix> <a:IPPrefix>10.7.0.196/26</a:IPPrefix>
</ManagementAddress> </ManagementAddress>
<HwSku>Force10-S6000</HwSku> <HwSku>Force10-S6000</HwSku>
</Device> </Device>
<Device i:type="SmartCable"> <Device i:type="SmartCable">

View File

@ -314,7 +314,7 @@
<DeviceLocation i:nil="true"/> <DeviceLocation i:nil="true"/>
<ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux"> <ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux">
<a:IPPrefix>10.7.0.196/26</a:IPPrefix> <a:IPPrefix>10.7.0.196/26</a:IPPrefix>
</ManagementAddress> </ManagementAddress>
<HwSku>Force10-S6000</HwSku> <HwSku>Force10-S6000</HwSku>
</Device> </Device>
<Device i:type="Server"> <Device i:type="Server">

View File

@ -314,7 +314,7 @@
<DeviceLocation i:nil="true"/> <DeviceLocation i:nil="true"/>
<ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux"> <ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux">
<a:IPPrefix>10.7.0.196/26</a:IPPrefix> <a:IPPrefix>10.7.0.196/26</a:IPPrefix>
</ManagementAddress> </ManagementAddress>
<HwSku>Force10-S6000</HwSku> <HwSku>Force10-S6000</HwSku>
</Device> </Device>
<Device i:type="Server"> <Device i:type="Server">

View File

@ -314,7 +314,7 @@
<DeviceLocation i:nil="true"/> <DeviceLocation i:nil="true"/>
<ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux"> <ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux">
<a:IPPrefix>10.7.0.196/26</a:IPPrefix> <a:IPPrefix>10.7.0.196/26</a:IPPrefix>
</ManagementAddress> </ManagementAddress>
<HwSku>Force10-S6000</HwSku> <HwSku>Force10-S6000</HwSku>
</Device> </Device>
<Device i:type="Server"> <Device i:type="Server">

View File

@ -359,7 +359,7 @@
<DeviceLocation i:nil="true"/> <DeviceLocation i:nil="true"/>
<ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux"> <ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux">
<a:IPPrefix>10.7.0.196/26</a:IPPrefix> <a:IPPrefix>10.7.0.196/26</a:IPPrefix>
</ManagementAddress> </ManagementAddress>
<HwSku>Force10-S6000</HwSku> <HwSku>Force10-S6000</HwSku>
</Device> </Device>
<Device i:type="SmartCable"> <Device i:type="SmartCable">

View File

@ -109,7 +109,7 @@
<Vrf i:nil="true"/> <Vrf i:nil="true"/>
</BGPPeer> </BGPPeer>
<BGPPeer> <BGPPeer>
<Address>10.1.0.32</Address> <Address>10.1.0.32</Address>
<a:Name>BGPSLBPassive</a:Name> <a:Name>BGPSLBPassive</a:Name>
<a:PeersRange>10.10.10.10/26;100.100.100.100/26</a:PeersRange> <a:PeersRange>10.10.10.10/26;100.100.100.100/26</a:PeersRange>
</BGPPeer> </BGPPeer>

View File

@ -109,7 +109,7 @@
<Vrf i:nil="true"/> <Vrf i:nil="true"/>
</BGPPeer> </BGPPeer>
<BGPPeer> <BGPPeer>
<Address>10.1.0.32</Address> <Address>10.1.0.32</Address>
<a:Name>BGPSLBPassive</a:Name> <a:Name>BGPSLBPassive</a:Name>
<a:PeersRange>10.10.10.10/26;100.100.100.100/26</a:PeersRange> <a:PeersRange>10.10.10.10/26;100.100.100.100/26</a:PeersRange>
</BGPPeer> </BGPPeer>

View File

@ -2133,9 +2133,9 @@
</EthernetInterfaces> </EthernetInterfaces>
<FlowControl>true</FlowControl> <FlowControl>true</FlowControl>
<Height>0</Height> <Height>0</Height>
<HwSku>ACS-MSN2700</HwSku> <HwSku>ACS-MSN2700</HwSku>
<ManagementInterfaces/> <ManagementInterfaces/>
</DeviceInfo> </DeviceInfo>
</DeviceInfos> </DeviceInfos>
<MetadataDeclaration> <MetadataDeclaration>
<Devices xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"> <Devices xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">

View File

@ -127,7 +127,7 @@
<Name>PortChannel8</Name> <Name>PortChannel8</Name>
<AttachTo>Ethernet16;Ethernet20</AttachTo> <AttachTo>Ethernet16;Ethernet20</AttachTo>
<SubInterface/> <SubInterface/>
</PortChannel> </PortChannel>
</PortChannelInterfaces> </PortChannelInterfaces>
<VlanInterfaces/> <VlanInterfaces/>
<IPInterfaces> <IPInterfaces>
@ -201,11 +201,11 @@
<Devices> <Devices>
<Device i:type="SpineChassisFrontendRouter"> <Device i:type="SpineChassisFrontendRouter">
<Hostname>SpineFront01</Hostname> <Hostname>SpineFront01</Hostname>
<HwSku>Force10-S6000</HwSku> <HwSku>Force10-S6000</HwSku>
</Device> </Device>
<Device i:type="SpineChassisFrontendRouter"> <Device i:type="SpineChassisFrontendRouter">
<Hostname>SpineFront02</Hostname> <Hostname>SpineFront02</Hostname>
<HwSku>Force10-S6000</HwSku> <HwSku>Force10-S6000</HwSku>
</Device> </Device>
<Device i:type="LeafRouter"> <Device i:type="LeafRouter">
<Hostname>Leaf01</Hostname> <Hostname>Leaf01</Hostname>
@ -611,9 +611,9 @@
</EthernetInterfaces> </EthernetInterfaces>
<FlowControl>false</FlowControl> <FlowControl>false</FlowControl>
<Height>0</Height> <Height>0</Height>
<HwSku>Force10-S6000</HwSku> <HwSku>Force10-S6000</HwSku>
<ManagementInterfaces/> <ManagementInterfaces/>
</DeviceInfo> </DeviceInfo>
</DeviceInfos> </DeviceInfos>
<MetadataDeclaration> <MetadataDeclaration>
<Devices xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"> <Devices xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">

View File

@ -165,11 +165,11 @@
<Devices> <Devices>
<Device i:type="SpineChassisFrontendRouter"> <Device i:type="SpineChassisFrontendRouter">
<Hostname>SpineFront01</Hostname> <Hostname>SpineFront01</Hostname>
<HwSku>Force10-S6000</HwSku> <HwSku>Force10-S6000</HwSku>
</Device> </Device>
<Device i:type="SpineChassisFrontendRouter"> <Device i:type="SpineChassisFrontendRouter">
<Hostname>SpineFront02</Hostname> <Hostname>SpineFront02</Hostname>
<HwSku>Force10-S6000</HwSku> <HwSku>Force10-S6000</HwSku>
</Device> </Device>
<Device i:type="LeafRouter"> <Device i:type="LeafRouter">
<Hostname>Leaf01</Hostname> <Hostname>Leaf01</Hostname>
@ -575,9 +575,9 @@
</EthernetInterfaces> </EthernetInterfaces>
<FlowControl>false</FlowControl> <FlowControl>false</FlowControl>
<Height>0</Height> <Height>0</Height>
<HwSku>Force10-S6000</HwSku> <HwSku>Force10-S6000</HwSku>
<ManagementInterfaces/> <ManagementInterfaces/>
</DeviceInfo> </DeviceInfo>
</DeviceInfos> </DeviceInfos>
<MetadataDeclaration> <MetadataDeclaration>
<Devices xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"> <Devices xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">

View File

@ -164,11 +164,11 @@
<Devices> <Devices>
<Device i:type="SpineChassisFrontendRouter"> <Device i:type="SpineChassisFrontendRouter">
<Hostname>SpineFront01</Hostname> <Hostname>SpineFront01</Hostname>
<HwSku>Force10-S6000</HwSku> <HwSku>Force10-S6000</HwSku>
</Device> </Device>
<Device i:type="SpineChassisFrontendRouter"> <Device i:type="SpineChassisFrontendRouter">
<Hostname>SpineFront02</Hostname> <Hostname>SpineFront02</Hostname>
<HwSku>Force10-S6000</HwSku> <HwSku>Force10-S6000</HwSku>
</Device> </Device>
<Device i:type="LeafRouter"> <Device i:type="LeafRouter">
<Hostname>Leaf01</Hostname> <Hostname>Leaf01</Hostname>
@ -574,9 +574,9 @@
</EthernetInterfaces> </EthernetInterfaces>
<FlowControl>false</FlowControl> <FlowControl>false</FlowControl>
<Height>0</Height> <Height>0</Height>
<HwSku>Force10-S6000</HwSku> <HwSku>Force10-S6000</HwSku>
<ManagementInterfaces/> <ManagementInterfaces/>
</DeviceInfo> </DeviceInfo>
</DeviceInfos> </DeviceInfos>
<MetadataDeclaration> <MetadataDeclaration>
<Devices xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"> <Devices xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">

View File

@ -304,7 +304,7 @@ class TestCfgGen(TestCase):
argument = ['-m', self.ecmp_graph, '-p', self.mlnx_port_config, '-v', 'FG_NHG'] argument = ['-m', self.ecmp_graph, '-p', self.mlnx_port_config, '-v', 'FG_NHG']
output = self.run_script(argument) output = self.run_script(argument)
print(output.strip()) print(output.strip())
self.assertEqual(utils.to_dict(output.strip()), self.assertEqual(utils.to_dict(output.strip()),
utils.to_dict( utils.to_dict(
"{'fgnhg_v4': {'match_mode': 'nexthop-based', 'bucket_size': 120}, " "{'fgnhg_v4': {'match_mode': 'nexthop-based', 'bucket_size': 120}, "
"'fgnhg_v6': {'match_mode': 'nexthop-based', 'bucket_size': 120}}" "'fgnhg_v6': {'match_mode': 'nexthop-based', 'bucket_size': 120}}"
@ -378,7 +378,7 @@ class TestCfgGen(TestCase):
utils.to_dict( utils.to_dict(
"{'Ethernet124': {'name': 'ARISTA04T1', 'port': 'Ethernet1/1'}, " "{'Ethernet124': {'name': 'ARISTA04T1', 'port': 'Ethernet1/1'}, "
"'Ethernet120': {'name': 'ARISTA03T1', 'port': 'Ethernet1/1'}, " "'Ethernet120': {'name': 'ARISTA03T1', 'port': 'Ethernet1/1'}, "
"'Ethernet4': {'name': 'Servers0', 'port': 'eth0'}, " "'Ethernet4': {'name': 'Servers0', 'port': 'eth0'}, "
"'Ethernet116': {'name': 'ARISTA02T1', 'port': 'Ethernet1/1'}, " "'Ethernet116': {'name': 'ARISTA02T1', 'port': 'Ethernet1/1'}, "
"'Ethernet100': {'name': 'Servers100', 'port': 'eth0'}, " "'Ethernet100': {'name': 'Servers100', 'port': 'eth0'}, "
"'Ethernet112': {'name': 'ARISTA01T1', 'port': 'Ethernet1/1'}}") "'Ethernet112': {'name': 'ARISTA01T1', 'port': 'Ethernet1/1'}}")
@ -619,7 +619,7 @@ class TestCfgGen(TestCase):
) )
def test_minigraph_extra_ethernet_interfaces(self, **kwargs): def test_minigraph_extra_ethernet_interfaces(self, **kwargs):
graph_file = kwargs.get('graph_file', self.sample_graph_simple) graph_file = kwargs.get('graph_file', self.sample_graph_simple)
argument = ['-m', graph_file, '-p', self.port_config, '-v', "PORT"] argument = ['-m', graph_file, '-p', self.port_config, '-v', "PORT"]
output = self.run_script(argument) output = self.run_script(argument)
@ -982,7 +982,7 @@ class TestCfgGen(TestCase):
"'Vlan2000': {'dhcpv6_servers': ['fc02:2000::3', 'fc02:2000::4']}}" "'Vlan2000': {'dhcpv6_servers': ['fc02:2000::3', 'fc02:2000::4']}}"
) )
) )
def test_minigraph_bgp_packet_chassis_peer(self): def test_minigraph_bgp_packet_chassis_peer(self):
argument = ['-m', self.packet_chassis_graph, '-p', self.packet_chassis_port_ini, '-n', "asic1", '-v', "BGP_INTERNAL_NEIGHBOR[\'8.0.0.1\']"] argument = ['-m', self.packet_chassis_graph, '-p', self.packet_chassis_port_ini, '-n', "asic1", '-v', "BGP_INTERNAL_NEIGHBOR[\'8.0.0.1\']"]
output = self.run_script(argument) output = self.run_script(argument)
@ -1052,7 +1052,7 @@ class TestCfgGen(TestCase):
"'Ethernet120': {'lanes': '16,17,18,19', 'alias': 'Ethernet16/1', 'index': '16', 'role': 'Ext', 'speed': '100000', 'asic_port_name': 'Eth120-ASIC0', 'fec': 'rs', 'description': 'ARISTA17T3:Ethernet1', 'mtu': '9100', 'tpid': '0x8100', 'pfc_asym': 'off', 'admin_status': 'up'}, " "'Ethernet120': {'lanes': '16,17,18,19', 'alias': 'Ethernet16/1', 'index': '16', 'role': 'Ext', 'speed': '100000', 'asic_port_name': 'Eth120-ASIC0', 'fec': 'rs', 'description': 'ARISTA17T3:Ethernet1', 'mtu': '9100', 'tpid': '0x8100', 'pfc_asym': 'off', 'admin_status': 'up'}, "
"'Ethernet128': {'lanes': '8,9,10,11', 'alias': 'Ethernet17/1', 'index': '17', 'role': 'Ext', 'speed': '100000', 'asic_port_name': 'Eth128-ASIC0', 'fec': 'rs', 'description': 'ARISTA18T3:Ethernet1', 'mtu': '9100', 'tpid': '0x8100', 'pfc_asym': 'off', 'admin_status': 'up'}, " "'Ethernet128': {'lanes': '8,9,10,11', 'alias': 'Ethernet17/1', 'index': '17', 'role': 'Ext', 'speed': '100000', 'asic_port_name': 'Eth128-ASIC0', 'fec': 'rs', 'description': 'ARISTA18T3:Ethernet1', 'mtu': '9100', 'tpid': '0x8100', 'pfc_asym': 'off', 'admin_status': 'up'}, "
"'Ethernet136': {'lanes': '0,1,2,3', 'alias': 'Ethernet18/1', 'index': '18', 'role': 'Ext', 'speed': '100000', 'asic_port_name': 'Eth136-ASIC0', 'fec': 'rs', 'description': 'ARISTA18T3:Ethernet2', 'mtu': '9100', 'tpid': '0x8100', 'pfc_asym': 'off', 'admin_status': 'up'}, " "'Ethernet136': {'lanes': '0,1,2,3', 'alias': 'Ethernet18/1', 'index': '18', 'role': 'Ext', 'speed': '100000', 'asic_port_name': 'Eth136-ASIC0', 'fec': 'rs', 'description': 'ARISTA18T3:Ethernet2', 'mtu': '9100', 'tpid': '0x8100', 'pfc_asym': 'off', 'admin_status': 'up'}, "
"'Ethernet-Rec0': {'lanes': '221', 'alias': 'Recirc0/0', 'index': '37', 'role': 'Rec', 'speed': '400000', 'asic_port_name': 'Rcy0-ASIC0', 'description': 'Recirc0/0', 'mtu': '9100', 'tpid': '0x8100', 'pfc_asym': 'off', 'admin_status': 'up'}," "'Ethernet-Rec0': {'lanes': '221', 'alias': 'Recirc0/0', 'index': '37', 'role': 'Rec', 'speed': '400000', 'asic_port_name': 'Rcy0-ASIC0', 'description': 'Recirc0/0', 'mtu': '9100', 'tpid': '0x8100', 'pfc_asym': 'off', 'admin_status': 'up'},"
"'Ethernet-IB0': {'lanes': '222', 'alias': 'Recirc0/1', 'index': '38', 'role': 'Inb', 'speed': '400000', 'asic_port_name': 'Rcy1-ASIC0', 'description': 'Recirc0/1', 'mtu': '9100', 'tpid': '0x8100', 'pfc_asym': 'off', 'admin_status': 'up'}}" "'Ethernet-IB0': {'lanes': '222', 'alias': 'Recirc0/1', 'index': '38', 'role': 'Inb', 'speed': '400000', 'asic_port_name': 'Rcy1-ASIC0', 'description': 'Recirc0/1', 'mtu': '9100', 'tpid': '0x8100', 'pfc_asym': 'off', 'admin_status': 'up'}}"
) )
) )

View File

@ -227,13 +227,13 @@ class TestCfgGenCaseInsensitive(TestCase):
'hwsku': 'server-sku', 'hwsku': 'server-sku',
'type': 'Server' 'type': 'Server'
}, },
'switch-01t1': { 'switch-01t1': {
'lo_addr': '10.1.0.186/32', 'lo_addr': '10.1.0.186/32',
'deployment_id': '2', 'deployment_id': '2',
'hwsku': 'Force10-S6000', 'hwsku': 'Force10-S6000',
'type': 'LeafRouter', 'type': 'LeafRouter',
'mgmt_addr': '10.7.0.196/26' 'mgmt_addr': '10.7.0.196/26'
}, },
'server1-SC': { 'server1-SC': {
'lo_addr_v6': '::/0', 'lo_addr_v6': '::/0',
'mgmt_addr': '0.0.0.0/0', 'mgmt_addr': '0.0.0.0/0',
@ -299,7 +299,7 @@ class TestCfgGenCaseInsensitive(TestCase):
'address_ipv4': "25.1.1.10" 'address_ipv4': "25.1.1.10"
} }
} }
output = self.run_script(argument) output = self.run_script(argument)
self.assertEqual( self.assertEqual(
utils.to_dict(output.strip()), utils.to_dict(output.strip()),
@ -308,7 +308,7 @@ class TestCfgGenCaseInsensitive(TestCase):
def test_mux_cable_parsing(self): def test_mux_cable_parsing(self):
result = minigraph.parse_xml(self.sample_graph, port_config_file=self.port_config) result = minigraph.parse_xml(self.sample_graph, port_config_file=self.port_config)
expected_mux_cable_ports = ["Ethernet4", "Ethernet8"] expected_mux_cable_ports = ["Ethernet4", "Ethernet8"]
port_table = result['PORT'] port_table = result['PORT']
for port_name, port in port_table.items(): for port_name, port in port_table.items():
@ -349,7 +349,7 @@ class TestCfgGenCaseInsensitive(TestCase):
output = subprocess.check_output(["sed", "-i", 's/%s/%s/g' % (BACKEND_TOR_ROUTER, TOR_ROUTER), graph_file], stderr=subprocess.STDOUT) output = subprocess.check_output(["sed", "-i", 's/%s/%s/g' % (BACKEND_TOR_ROUTER, TOR_ROUTER), graph_file], stderr=subprocess.STDOUT)
else: else:
output = subprocess.check_output(["sed", "-i", 's/%s/%s/g' % (BACKEND_TOR_ROUTER, TOR_ROUTER), graph_file]) output = subprocess.check_output(["sed", "-i", 's/%s/%s/g' % (BACKEND_TOR_ROUTER, TOR_ROUTER), graph_file])
def test_minigraph_tunnel_table(self): def test_minigraph_tunnel_table(self):
argument = ['-m', self.sample_graph, '-p', self.port_config, '-v', "TUNNEL"] argument = ['-m', self.sample_graph, '-p', self.port_config, '-v', "TUNNEL"]
expected_tunnel = { expected_tunnel = {
@ -436,7 +436,7 @@ class TestCfgGenCaseInsensitive(TestCase):
utils.to_dict(output.strip()), utils.to_dict(output.strip()),
expected_table expected_table
) )
def test_dhcp_table(self): def test_dhcp_table(self):
argument = ['-m', self.sample_graph, '-p', self.port_config, '-v', "DHCP_RELAY"] argument = ['-m', self.sample_graph, '-p', self.port_config, '-v', "DHCP_RELAY"]
expected = { expected = {
@ -458,12 +458,12 @@ class TestCfgGenCaseInsensitive(TestCase):
utils.to_dict(output.strip()), utils.to_dict(output.strip()),
expected expected
) )
def test_minigraph_mirror_dscp(self): def test_minigraph_mirror_dscp(self):
result = minigraph.parse_xml(self.sample_graph, port_config_file=self.port_config) result = minigraph.parse_xml(self.sample_graph, port_config_file=self.port_config)
self.assertTrue('EVERFLOW_DSCP' in result['ACL_TABLE']) self.assertTrue('EVERFLOW_DSCP' in result['ACL_TABLE'])
everflow_dscp_entry = result['ACL_TABLE']['EVERFLOW_DSCP'] everflow_dscp_entry = result['ACL_TABLE']['EVERFLOW_DSCP']
self.assertEqual(everflow_dscp_entry['type'], 'MIRROR_DSCP') self.assertEqual(everflow_dscp_entry['type'], 'MIRROR_DSCP')
self.assertEqual(everflow_dscp_entry['stage'], 'ingress') self.assertEqual(everflow_dscp_entry['stage'], 'ingress')
expected_ports = ['PortChannel01', 'Ethernet12', 'Ethernet8', 'Ethernet0'] expected_ports = ['PortChannel01', 'Ethernet12', 'Ethernet8', 'Ethernet0']

View File

@ -1,21 +1,21 @@
# name lanes alias index role speed asic_port_name # name lanes alias index role speed asic_port_name
Ethernet0 72,73,74,75,76,77,78,79 Ethernet1/1 1 Ext 400000 Eth0-ASIC0 Ethernet0 72,73,74,75,76,77,78,79 Ethernet1/1 1 Ext 400000 Eth0-ASIC0
Ethernet8 80,81,82,83,84,85,86,87 Ethernet2/1 2 Ext 400000 Eth8-ASIC0 Ethernet8 80,81,82,83,84,85,86,87 Ethernet2/1 2 Ext 400000 Eth8-ASIC0
Ethernet16 88,89,90,91,92,93,94,95 Ethernet3/1 3 Ext 400000 Eth16-ASIC0 Ethernet16 88,89,90,91,92,93,94,95 Ethernet3/1 3 Ext 400000 Eth16-ASIC0
Ethernet24 96,97,98,99,100,101,102,103 Ethernet4/1 4 Ext 400000 Eth24-ASIC0 Ethernet24 96,97,98,99,100,101,102,103 Ethernet4/1 4 Ext 400000 Eth24-ASIC0
Ethernet32 104,105,106,107,108,109,110,111 Ethernet5/1 5 Ext 400000 Eth32-ASIC0 Ethernet32 104,105,106,107,108,109,110,111 Ethernet5/1 5 Ext 400000 Eth32-ASIC0
Ethernet40 112,113,114,115,116,117,118,119 Ethernet6/1 6 Ext 400000 Eth40-ASIC0 Ethernet40 112,113,114,115,116,117,118,119 Ethernet6/1 6 Ext 400000 Eth40-ASIC0
Ethernet48 120,121,122,123,124,125,126,127 Ethernet7/1 7 Ext 400000 Eth48-ASIC0 Ethernet48 120,121,122,123,124,125,126,127 Ethernet7/1 7 Ext 400000 Eth48-ASIC0
Ethernet56 128,129,130,131,132,133,134,135 Ethernet8/1 8 Ext 400000 Eth56-ASIC0 Ethernet56 128,129,130,131,132,133,134,135 Ethernet8/1 8 Ext 400000 Eth56-ASIC0
Ethernet64 136,137,138,139,140,141,142,143 Ethernet9/1 9 Ext 400000 Eth64-ASIC0 Ethernet64 136,137,138,139,140,141,142,143 Ethernet9/1 9 Ext 400000 Eth64-ASIC0
Ethernet72 64,65,66,67,68,69,70,71 Ethernet10/1 10 Ext 400000 Eth72-ASIC0 Ethernet72 64,65,66,67,68,69,70,71 Ethernet10/1 10 Ext 400000 Eth72-ASIC0
Ethernet80 56,57,58,59,60,61,62,63 Ethernet11/1 11 Ext 400000 Eth80-ASIC0 Ethernet80 56,57,58,59,60,61,62,63 Ethernet11/1 11 Ext 400000 Eth80-ASIC0
Ethernet88 48,49,50,51,52,53,54,55 Ethernet12/1 12 Ext 400000 Eth88-ASIC0 Ethernet88 48,49,50,51,52,53,54,55 Ethernet12/1 12 Ext 400000 Eth88-ASIC0
Ethernet96 40,41,42,43,44,45,46,47 Ethernet13/1 13 Ext 400000 Eth96-ASIC0 Ethernet96 40,41,42,43,44,45,46,47 Ethernet13/1 13 Ext 400000 Eth96-ASIC0
Ethernet104 32,33,34,35,36,37,38,39 Ethernet14/1 14 Ext 400000 Eth104-ASIC0 Ethernet104 32,33,34,35,36,37,38,39 Ethernet14/1 14 Ext 400000 Eth104-ASIC0
Ethernet112 24,25,26,27,28,29,30,31 Ethernet15/1 15 Ext 400000 Eth112-ASIC0 Ethernet112 24,25,26,27,28,29,30,31 Ethernet15/1 15 Ext 400000 Eth112-ASIC0
Ethernet120 16,17,18,19,20,21,22,23 Ethernet16/1 16 Ext 400000 Eth120-ASIC0 Ethernet120 16,17,18,19,20,21,22,23 Ethernet16/1 16 Ext 400000 Eth120-ASIC0
Ethernet128 8,9,10,11,12,13,14,15 Ethernet17/1 17 Ext 400000 Eth128-ASIC0 Ethernet128 8,9,10,11,12,13,14,15 Ethernet17/1 17 Ext 400000 Eth128-ASIC0
Ethernet136 0,1,2,3,4,5,6,7 Ethernet18/1 18 Ext 400000 Eth136-ASIC0 Ethernet136 0,1,2,3,4,5,6,7 Ethernet18/1 18 Ext 400000 Eth136-ASIC0
Ethernet-Rec0 221 Recirc0/0 37 Rec 400000 Rcy0-ASIC0 Ethernet-Rec0 221 Recirc0/0 37 Rec 400000 Rcy0-ASIC0
Ethernet-IB0 222 Recirc0/1 38 Inb 400000 Rcy1-ASIC0 Ethernet-IB0 222 Recirc0/1 38 Inb 400000 Rcy1-ASIC0

View File

@ -914,8 +914,8 @@
<HoldTime>10</HoldTime> <HoldTime>10</HoldTime>
<KeepAliveTime>3</KeepAliveTime> <KeepAliveTime>3</KeepAliveTime>
</BGPSession> </BGPSession>
<BGPSession> <BGPSession>
<StartRouter>ASIC0</StartRouter> <StartRouter>ASIC0</StartRouter>
<EndRouter>ASIC1</EndRouter> <EndRouter>ASIC1</EndRouter>

View File

@ -98,7 +98,7 @@ def read_data(is_config, feature, fields):
def read_config(feature): def read_config(feature):
""" Read requried feature config """ """ Read requried feature config """
set_owner, no_fallback, state = read_data(True, feature, set_owner, no_fallback, state = read_data(True, feature,
[(SET_OWNER, "local"), (NO_FALLBACK, False), (STATE, "disabled")]) [(SET_OWNER, "local"), (NO_FALLBACK, False), (STATE, "disabled")])
return (set_owner, not no_fallback, state) return (set_owner, not no_fallback, state)
@ -143,13 +143,13 @@ def container_version(feature):
for env in envs: for env in envs:
if env.startswith("IMAGE_VERSION="): if env.startswith("IMAGE_VERSION="):
version = env.split('=')[1] version = env.split('=')[1]
syslog.syslog(syslog.LOG_INFO, "docker get image version for {}".format(feature)) syslog.syslog(syslog.LOG_INFO, "docker get image version for {}".format(feature))
except (docker.errors.NotFound, docker.errors.APIError) as err: except (docker.errors.NotFound, docker.errors.APIError) as err:
syslog.syslog(syslog.LOG_ERR, "docker get image version for {} failed with {}". syslog.syslog(syslog.LOG_ERR, "docker get image version for {} failed with {}".
format(feature, str(err))) format(feature, str(err)))
return version return version
@ -164,11 +164,11 @@ def set_label(feature, create):
# redundant set (data already exist) can still raise subscriber # redundant set (data already exist) can still raise subscriber
# notification. So check & set. # notification. So check & set.
# Redundant delete (data doesn't exist) does not raise any # Redundant delete (data doesn't exist) does not raise any
# subscriber notification. So no need to pre-check for delete. # subscriber notification. So no need to pre-check for delete.
# #
tbl.set(KUBE_LABEL_SET_KEY, [(fld, "true" if create else "false")]) tbl.set(KUBE_LABEL_SET_KEY, [(fld, "true" if create else "false")])
def update_data(feature, data): def update_data(feature, data):
if remote_ctr_enabled: if remote_ctr_enabled:
@ -180,13 +180,13 @@ def update_data(feature, data):
def container_id(feature): def container_id(feature):
""" """
Return the container ID for the feature. Return the container ID for the feature.
if current_owner is local, use feature name as the start/stop if current_owner is local, use feature name as the start/stop
of local image is synchronous. of local image is synchronous.
Else get it from FEATURE table in STATE-DB Else get it from FEATURE table in STATE-DB
:param feature: Name of the feature to start. :param feature: Name of the feature to start.
""" """
init() init()
@ -202,19 +202,19 @@ def container_id(feature):
def container_start(feature, **kwargs): def container_start(feature, **kwargs):
""" """
Starts a container for given feature. Starts a container for given feature.
Starts from local image and/or trigger kubernetes to deploy the image Starts from local image and/or trigger kubernetes to deploy the image
for this feature. Marks the feature state up in STATE-DB FEATURE table. for this feature. Marks the feature state up in STATE-DB FEATURE table.
If feature's set_owner is local, invoke docker start. If feature's set_owner is local, invoke docker start.
If feature's set_owner is kube, it creates a node label that If feature's set_owner is kube, it creates a node label that
would trigger kubernetes to start the container. With kube as would trigger kubernetes to start the container. With kube as
owner, if fallback is enabled and remote_state==none, it starts owner, if fallback is enabled and remote_state==none, it starts
the local image using docker, which will run until kube the local image using docker, which will run until kube
deployment occurs. deployment occurs.
:param feature: Name of the feature to start. :param feature: Name of the feature to start.
""" """
START_LOCAL = 1 START_LOCAL = 1
START_KUBE = 2 START_KUBE = 2
@ -279,7 +279,7 @@ def container_stop(feature, **kwargs):
Marks the feature state down in STATE-DB FEATURE table. Marks the feature state down in STATE-DB FEATURE table.
:param feature: Name of the feature to stop. :param feature: Name of the feature to stop.
""" """
debug_msg("BEGIN") debug_msg("BEGIN")
@ -336,7 +336,7 @@ def container_kill(feature, **kwargs):
Instruct/ensure kube terminates, by removing label. Instruct/ensure kube terminates, by removing label.
:param feature: Name of the feature to kill. :param feature: Name of the feature to kill.
""" """
debug_msg("BEGIN") debug_msg("BEGIN")
@ -383,7 +383,7 @@ def container_wait(feature, **kwargs):
table and exit. table and exit.
:param feature: Name of the feature to wait. :param feature: Name of the feature to wait.
""" """
debug_msg("BEGIN") debug_msg("BEGIN")

View File

@ -70,7 +70,7 @@ def read_data(feature):
def read_fields(state_db, feature, fields): def read_fields(state_db, feature, fields):
# Read directly from STATE-DB, given fields # Read directly from STATE-DB, given fields
# for given feature. # for given feature.
# Fields is a list of tuples (<field name>, <default val>) # Fields is a list of tuples (<field name>, <default val>)
# #
tbl = swsscommon.Table(state_db, 'FEATURE') tbl = swsscommon.Table(state_db, 'FEATURE')
@ -100,11 +100,11 @@ def drop_label(state_db, feature, version):
# Mark given feature version as dropped in labels. # Mark given feature version as dropped in labels.
# Update is done in state-db. # Update is done in state-db.
# ctrmgrd sets it with kube API server per reaschability # ctrmgrd sets it with kube API server per reaschability
tbl = swsscommon.Table(state_db, KUBE_LABEL_TABLE) tbl = swsscommon.Table(state_db, KUBE_LABEL_TABLE)
name = _get_local_version_key(feature) name = _get_local_version_key(feature)
tbl.set(KUBE_LABEL_SET_KEY, [(name, version)]) tbl.set(KUBE_LABEL_SET_KEY, [(name, version)])
def update_data(state_db, feature, data): def update_data(state_db, feature, data):
# Update STATE-DB entry for this feature with given data # Update STATE-DB entry for this feature with given data
@ -166,7 +166,7 @@ def update_state(state_db, feature, owner=None, version=None):
sets owner, version & container-id for this feature in state-db. sets owner, version & container-id for this feature in state-db.
If owner is local, update label to block remote deploying same version or If owner is local, update label to block remote deploying same version or
if kube, sets state to "running". if kube, sets state to "running".
""" """
data = { data = {
@ -197,7 +197,7 @@ def do_freeze(feat, m):
if UNIT_TESTING: if UNIT_TESTING:
break break
time.sleep(60) time.sleep(60)
def container_up(feature, owner, version): def container_up(feature, owner, version):
""" """
@ -208,7 +208,7 @@ def container_up(feature, owner, version):
This call does the basic check for if this starting-container can be allowed This call does the basic check for if this starting-container can be allowed
to run based on current state, and owner & version of this starting to run based on current state, and owner & version of this starting
container. container.
If allowed to proceed, this info is recorded in state-db and return If allowed to proceed, this info is recorded in state-db and return
to enable container start the main application. Else it proceeds to to enable container start the main application. Else it proceeds to
@ -245,7 +245,7 @@ def container_up(feature, owner, version):
else: else:
debug_msg("{}: Skip remote_state({}) update".format(feature, mode)) debug_msg("{}: Skip remote_state({}) update".format(feature, mode))
i = 0 i = 0
while (mode != "ready"): while (mode != "ready"):
if (i % 10) == 0: if (i % 10) == 0:
@ -253,7 +253,7 @@ def container_up(feature, owner, version):
i += 1 i += 1
time.sleep(2) time.sleep(2)
mode, db_version = read_fields(state_db, mode, db_version = read_fields(state_db,
feature, [(REMOTE_STATE, "none"), (VERSION, "")]) feature, [(REMOTE_STATE, "none"), (VERSION, "")])
if version != db_version: if version != db_version:
# looks like another instance has overwritten. Exit for now. # looks like another instance has overwritten. Exit for now.
@ -279,7 +279,7 @@ def main():
parser.add_argument("-f", "--feature", required=True) parser.add_argument("-f", "--feature", required=True)
parser.add_argument("-o", "--owner", choices=["local", "kube"], required=True) parser.add_argument("-o", "--owner", choices=["local", "kube"], required=True)
parser.add_argument("-v", "--version", required=True) parser.add_argument("-v", "--version", required=True)
args = parser.parse_args() args = parser.parse_args()
container_up(args.feature, args.owner, args.version) container_up(args.feature, args.owner, args.version)

View File

@ -12,7 +12,7 @@ UNIT_TESTING = 0
# NOTE: # NOTE:
# Unable to use python-iptables as that does not create rules per ip-tables default # Unable to use python-iptables as that does not create rules per ip-tables default
# which is nf_tables. So rules added via iptc package will not be listed under # which is nf_tables. So rules added via iptc package will not be listed under
# "sudo iptables -t nat -L -n". But available in kernel. To list, we need to # "sudo iptables -t nat -L -n". But available in kernel. To list, we need to
# use legacy mode as "sudo iptables-legacy -t nat -L -n". # use legacy mode as "sudo iptables-legacy -t nat -L -n".
# As we can't use two modes and using non-default could make any debugging effort # As we can't use two modes and using non-default could make any debugging effort
# very tough. # very tough.

View File

@ -194,7 +194,7 @@ class MainServer:
def register_timer(self, ts, handler, args=None): def register_timer(self, ts, handler, args=None):
""" Register timer based handler. """ Register timer based handler.
The handler will be called on/after give timestamp, ts The handler will be called on/after give timestamp, ts
""" """
self.timer_handlers[ts].append((handler, args)) self.timer_handlers[ts].append((handler, args))
@ -232,7 +232,7 @@ class MainServer:
def set_db_entry(self, db_name, table_name, key, data): def set_db_entry(self, db_name, table_name, key, data):
""" Set given data as complete data, which includes """ Set given data as complete data, which includes
removing any fields that are in DB but not in data removing any fields that are in DB but not in data
""" """
conn = self.db_connectors[db_name] conn = self.db_connectors[db_name]
@ -459,7 +459,7 @@ class RemoteServerHandler:
# Handle Set_owner change: # Handle Set_owner change:
# restart service and/or label add/drop # restart service and/or label add/drop
# #
# Handle remote_state change: # Handle remote_state change:
# When pending, trigger restart # When pending, trigger restart
# #
class FeatureTransitionHandler: class FeatureTransitionHandler:
@ -526,10 +526,10 @@ class FeatureTransitionHandler:
log_debug("No change in feat={} set_owner={}. Bail out.".format( log_debug("No change in feat={} set_owner={}. Bail out.".format(
key, set_owner)) key, set_owner))
return return
if key in self.st_data: if key in self.st_data:
log_debug("{} init={} old_set_owner={} owner={}".format(key, init, old_set_owner, set_owner)) log_debug("{} init={} old_set_owner={} owner={}".format(key, init, old_set_owner, set_owner))
self.handle_update(key, set_owner, self.handle_update(key, set_owner,
self.st_data[key][ST_FEAT_OWNER], self.st_data[key][ST_FEAT_OWNER],
self.st_data[key][ST_FEAT_REMOTE_STATE]) self.st_data[key][ST_FEAT_REMOTE_STATE])
@ -557,7 +557,7 @@ class FeatureTransitionHandler:
start_time = datetime.datetime.now() + datetime.timedelta( start_time = datetime.datetime.now() + datetime.timedelta(
seconds=remote_ctr_config[TAG_IMAGE_LATEST]) seconds=remote_ctr_config[TAG_IMAGE_LATEST])
self.server.register_timer(start_time, self.do_tag_latest, ( self.server.register_timer(start_time, self.do_tag_latest, (
key, key,
self.st_data[key][ST_FEAT_CTR_ID], self.st_data[key][ST_FEAT_CTR_ID],
self.st_data[key][ST_FEAT_CTR_VER])) self.st_data[key][ST_FEAT_CTR_VER]))
@ -578,7 +578,7 @@ class FeatureTransitionHandler:
self.st_data[key][ST_FEAT_OWNER], self.st_data[key][ST_FEAT_OWNER],
remote_state) remote_state)
return return
def do_tag_latest(self, feat, docker_id, image_ver): def do_tag_latest(self, feat, docker_id, image_ver):
ret = kube_commands.tag_latest(feat, docker_id, image_ver) ret = kube_commands.tag_latest(feat, docker_id, image_ver)
if ret != 0: if ret != 0:

View File

@ -103,7 +103,7 @@ def kube_read_labels():
return (ret, labels) return (ret, labels)
def kube_write_labels(set_labels): def kube_write_labels(set_labels):
""" Set given set_labels. """ Set given set_labels.
""" """
@ -147,7 +147,7 @@ def kube_write_labels(set_labels):
return ret return ret
def func_get_labels(args): def func_get_labels(args):
""" args parser default function for get labels""" """ args parser default function for get labels"""
ret, node_labels = kube_read_labels() ret, node_labels = kube_read_labels()
@ -157,7 +157,7 @@ def func_get_labels(args):
log_debug(json.dumps(node_labels, indent=4)) log_debug(json.dumps(node_labels, indent=4))
return 0 return 0
def is_connected(server=""): def is_connected(server=""):
""" Check if we are currently connected """ """ Check if we are currently connected """
@ -218,7 +218,7 @@ def _download_file(server, port, insecure):
def _gen_cli_kubeconf(server, port, insecure): def _gen_cli_kubeconf(server, port, insecure):
"""generate identity which can help authenticate and """generate identity which can help authenticate and
authorization to k8s cluster authorization to k8s cluster
""" """
client_kubeconfig_template = """ client_kubeconfig_template = """
@ -387,7 +387,7 @@ def kube_join_master(server, port, insecure, force=False):
log_debug("join: ret={} out:{} err:{}".format(ret, out, err)) log_debug("join: ret={} out:{} err:{}".format(ret, out, err))
return (ret, out, err) return (ret, out, err)
def kube_reset_master(force): def kube_reset_master(force):
err = "" err = ""
@ -440,7 +440,7 @@ def _do_tag(docker_id, image_ver):
else: else:
out = "New version {} is not running.".format(image_ver) out = "New version {} is not running.".format(image_ver)
ret = -1 ret = -1
return (ret, out, err) return (ret, out, err)
def _remove_container(feat): def _remove_container(feat):
@ -465,7 +465,7 @@ def _remove_container(feat):
else: else:
err = "Failed to docker inspect {} |jq -r .[].State.Running. Err: {}".format(feat, err) err = "Failed to docker inspect {} |jq -r .[].State.Running. Err: {}".format(feat, err)
ret = 1 ret = 1
return (ret, out, err) return (ret, out, err)
def tag_latest(feat, docker_id, image_ver): def tag_latest(feat, docker_id, image_ver):
@ -519,10 +519,10 @@ def _do_clean(feat, current_version, last_version):
ret = 1 ret = 1
err = "Failed to tag {} local version images. Err: {}".format(feat, err) err = "Failed to tag {} local version images. Err: {}".format(feat, err)
return ret, out, err return ret, out, err
if last_version in version_dict: if last_version in version_dict:
del version_dict[last_version] del version_dict[last_version]
versions = [item[DOCKER_ID] for item in version_dict.values()] versions = [item[DOCKER_ID] for item in version_dict.values()]
if versions: if versions:
clean_res, _, err = _run_command("docker rmi {} --force".format(" ".join(versions))) clean_res, _, err = _run_command("docker rmi {} --force".format(" ".join(versions)))

View File

@ -318,13 +318,13 @@ class Table:
d = self.data[key] d = self.data[key]
for (k, v) in items: for (k, v) in items:
d[k] = v d[k] = v
def check(self): def check(self):
expected = self.get_val(current_test_data, [POST, self.db, self.tbl]) expected = self.get_val(current_test_data, [POST, self.db, self.tbl])
ret = check_subset(expected, self.data) ret = check_subset(expected, self.data)
if ret != 0: if ret != 0:
print("Failed test={} no={} ret={}".format( print("Failed test={} no={} ret={}".format(
current_test_name, current_test_no, ret)) current_test_name, current_test_no, ret))
@ -430,7 +430,7 @@ class mock_subscriber:
return (key, "", mock_tbl.get(key)[1]) return (key, "", mock_tbl.get(key)[1])
else: else:
return ("", "", {}) return ("", "", {})
def getDbConnector(self): def getDbConnector(self):
return self.dbconn return self.dbconn
@ -507,7 +507,7 @@ def kube_join_side_effect(ip, port, insecure):
else: else:
kube_return = 0 kube_return = 0
return (1, "not joined", "error") return (1, "not joined", "error")
def kube_reset_side_effect(flag): def kube_reset_side_effect(flag):
global kube_actions global kube_actions
@ -529,10 +529,10 @@ def check_kube_actions():
ret = 0 ret = 0
expected = {} expected = {}
expected[KUBE_CMD] = current_test_data.get(KUBE_CMD, {}) expected[KUBE_CMD] = current_test_data.get(KUBE_CMD, {})
if expected[KUBE_CMD]: if expected[KUBE_CMD]:
ret = check_subset(expected, kube_actions) ret = check_subset(expected, kube_actions)
if ret != 0: if ret != 0:
print("Failed test={} no={} ret={}".format( print("Failed test={} no={} ret={}".format(
current_test_name, current_test_no, ret)) current_test_name, current_test_no, ret))
@ -540,7 +540,7 @@ def check_kube_actions():
print("expect: {}".format(json.dumps(expected, indent=4))) print("expect: {}".format(json.dumps(expected, indent=4)))
return -1 return -1
return 0 return 0
def set_mock_kube(kube_labels, kube_join, kube_reset): def set_mock_kube(kube_labels, kube_join, kube_reset):
kube_labels.side_effect = kube_labels_side_effect kube_labels.side_effect = kube_labels_side_effect

View File

@ -260,11 +260,11 @@ stop_test_data = {
# container_kill test cases # container_kill test cases
# test case 0 -- container kill local # test case 0 -- container kill local
# -- no change in state-db # -- no change in state-db
# -- no label update # -- no label update
# test case 1 -- container kill kube -- set label # test case 1 -- container kill kube -- set label
# -- no change in state-db # -- no change in state-db
# -- label update # -- label update
# #
kill_test_data = { kill_test_data = {
@ -356,7 +356,7 @@ kill_test_data = {
# container_kill test cases # container_kill test cases
# test case 0 -- container kill local disabled container # test case 0 -- container kill local disabled container
# -- no change in state-db # -- no change in state-db
# -- no label update # -- no label update
# #
invalid_kill_test_data = { invalid_kill_test_data = {
@ -380,11 +380,11 @@ invalid_kill_test_data = {
# container_wait test cases # container_wait test cases
# test case 0 -- container wait local # test case 0 -- container wait local
# -- no change in state-db # -- no change in state-db
# -- no label update # -- no label update
# test case 1 -- container wait kube with fallback # test case 1 -- container wait kube with fallback
# -- change in state-db # -- change in state-db
# -- no label update # -- no label update
# #
wait_test_data = { wait_test_data = {

View File

@ -108,7 +108,7 @@ def mock_subproc_run(cmd, shell, capture_output):
ins_cmd = ["sudo", "iptables", "-t", "nat", "-A", "OUTPUT", "-p", "tcp", "-d"] ins_cmd = ["sudo", "iptables", "-t", "nat", "-A", "OUTPUT", "-p", "tcp", "-d"]
assert shell == False assert shell == False
print("cmd={}".format(cmd)) print("cmd={}".format(cmd))
if list_cmd == cmd[:len(list_cmd)]: if list_cmd == cmd[:len(list_cmd)]:
if len(cmd) == len(list_cmd) + 1: if len(cmd) == len(list_cmd) + 1:

View File

@ -524,7 +524,7 @@ clusters:\n\
# test to_str() # test to_str()
f = "abcd" f = "abcd"
f == kube_commands.to_str(str.encode(f)) f == kube_commands.to_str(str.encode(f))
@patch("kube_commands.subprocess.Popen") @patch("kube_commands.subprocess.Popen")
def test_reset(self, mock_subproc): def test_reset(self, mock_subproc):

View File

@ -11,8 +11,8 @@ Broadcom expressly reserves all rights in and to the Software
and all intellectual property rights therein. IF YOU HAVE and all intellectual property rights therein. IF YOU HAVE
NO AUTHORIZED LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE NO AUTHORIZED LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE
IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE
ALL USE OF THE SOFTWARE. ALL USE OF THE SOFTWARE.
Except as expressly set forth in the Authorized License, Except as expressly set forth in the Authorized License,
1. This program, including its structure, sequence and organization, 1. This program, including its structure, sequence and organization,

View File

@ -167,7 +167,7 @@ xgxs_tx_lane_map
ifp_inports_support_enable ifp_inports_support_enable
port_flex_enable port_flex_enable
pdma_descriptor_prefetch_enable pdma_descriptor_prefetch_enable
pktdma_poll_mode_channel_bitmap pktdma_poll_mode_channel_bitmap
num_queues_pci num_queues_pci
num_queues_uc0 num_queues_uc0
num_queues_uc1 num_queues_uc1
@ -179,7 +179,7 @@ flowtracker_drop_monitor_enable
flowtracker_export_interval_usecs flowtracker_export_interval_usecs
flowtracker_max_export_pkt_length flowtracker_max_export_pkt_length
flowtracker_fsp_reinject_max_length flowtracker_fsp_reinject_max_length
host_as_route_disable host_as_route_disable
sai_fast_convergence_support sai_fast_convergence_support
ccm_dma_enable ccm_dma_enable
ccmdma_intr_enable ccmdma_intr_enable
@ -298,7 +298,7 @@ lb_port_pipe1_int
ing_origin_id_device_id_mask ing_origin_id_device_id_mask
egr_origin_id_device_id_mask egr_origin_id_device_id_mask
port_count_in_pb_stream port_count_in_pb_stream
cancun_dir cancun_dir
pcie_file pcie_file
capi_level capi_level
phy_pin_compatibility_enable phy_pin_compatibility_enable
@ -308,7 +308,7 @@ sap_rx_polarity_flip
sap_tx_polarity_flip sap_tx_polarity_flip
sap_mdio_num sap_mdio_num
dport_map_port_9 dport_map_port_9
cancun_dir cancun_dir
pcie_file pcie_file
capi_level capi_level
phy_pin_compatibility_enable phy_pin_compatibility_enable

View File

@ -2,4 +2,4 @@ sonic-eventd (1.0.0-0) UNRELEASED; urgency=medium
* Initial release. * Initial release.
-- Renuka Manavalan <remanava@microsoft.com> -- Renuka Manavalan <remanava@microsoft.com>

View File

@ -28,7 +28,7 @@ bool RsyslogPlugin::onMessage(string msg, lua_State* luaState) {
void parseParams(vector<string> params, vector<EventParam>& eventParams) { void parseParams(vector<string> params, vector<EventParam>& eventParams) {
for(long unsigned int i = 0; i < params.size(); i++) { for(long unsigned int i = 0; i < params.size(); i++) {
if(params[i].empty()) { if(params[i].empty()) {
SWSS_LOG_ERROR("Empty param provided in regex file\n"); SWSS_LOG_ERROR("Empty param provided in regex file\n");
continue; continue;
} }
EventParam ep = EventParam(); EventParam ep = EventParam();
@ -62,7 +62,7 @@ bool RsyslogPlugin::createRegexList() {
} }
string regexString; string regexString;
string timestampRegex = "^([a-zA-Z]{3})?\\s*([0-9]{1,2})?\\s*([0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{0,6})?\\s*"; string timestampRegex = "^([a-zA-Z]{3})?\\s*([0-9]{1,2})?\\s*([0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{0,6})?\\s*";
regex expression; regex expression;
vector<RegexStruct> regexList; vector<RegexStruct> regexList;
@ -71,7 +71,7 @@ bool RsyslogPlugin::createRegexList() {
vector<EventParam> eventParams; vector<EventParam> eventParams;
try { try {
string eventRegex = jsonList[i]["regex"]; string eventRegex = jsonList[i]["regex"];
regexString = timestampRegex + eventRegex; regexString = timestampRegex + eventRegex;
string tag = jsonList[i]["tag"]; string tag = jsonList[i]["tag"];
vector<string> params = jsonList[i]["params"]; vector<string> params = jsonList[i]["params"];
vector<string> timestampParams = { "month", "day", "time" }; vector<string> timestampParams = { "month", "day", "time" };

View File

@ -19,7 +19,7 @@ bool SyslogParser::parseMessage(string message, string& eventTag, event_params_t
} }
string formattedTimestamp; string formattedTimestamp;
if(!matchResults[1].str().empty() && !matchResults[2].str().empty() && !matchResults[3].str().empty()) { // found timestamp components if(!matchResults[1].str().empty() && !matchResults[2].str().empty() && !matchResults[3].str().empty()) { // found timestamp components
formattedTimestamp = m_timestampFormatter->changeTimestampFormat({ matchResults[1].str(), matchResults[2].str(), matchResults[3].str() }); formattedTimestamp = m_timestampFormatter->changeTimestampFormat({ matchResults[1].str(), matchResults[2].str(), matchResults[3].str() });
} }
if(!formattedTimestamp.empty()) { if(!formattedTimestamp.empty()) {
paramMap["timestamp"] = formattedTimestamp; paramMap["timestamp"] = formattedTimestamp;
@ -29,7 +29,7 @@ bool SyslogParser::parseMessage(string message, string& eventTag, event_params_t
// found matching regex // found matching regex
eventTag = m_regexList[i].tag; eventTag = m_regexList[i].tag;
// check params for lua code // check params for lua code
for(long unsigned int j = 3; j < m_regexList[i].params.size(); j++) { for(long unsigned int j = 3; j < m_regexList[i].params.size(); j++) {
string resultValue = matchResults[j + 1].str(); string resultValue = matchResults[j + 1].str();
string paramName = m_regexList[i].params[j].paramName; string paramName = m_regexList[i].params[j].paramName;

View File

@ -36,7 +36,7 @@ struct RegexStruct {
*/ */
class SyslogParser { class SyslogParser {
public: public:
unique_ptr<TimestampFormatter> m_timestampFormatter; unique_ptr<TimestampFormatter> m_timestampFormatter;
vector<RegexStruct> m_regexList; vector<RegexStruct> m_regexList;
bool parseMessage(string message, string& tag, event_params_t& paramDict, lua_State* luaState); bool parseMessage(string message, string& tag, event_params_t& paramDict, lua_State* luaState);

View File

@ -32,14 +32,14 @@ vector<EventParam> createEventParams(vector<string> params, vector<string> luaCo
return eventParams; return eventParams;
} }
TEST(syslog_parser, matching_regex) { TEST(syslog_parser, matching_regex) {
json jList = json::array(); json jList = json::array();
vector<RegexStruct> regexList; vector<RegexStruct> regexList;
string regexString = "^([a-zA-Z]{3})?\\s*([0-9]{1,2})?\\s*([0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{0,6})?\\s*message (.*) other_data (.*) even_more_data (.*)"; string regexString = "^([a-zA-Z]{3})?\\s*([0-9]{1,2})?\\s*([0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{0,6})?\\s*message (.*) other_data (.*) even_more_data (.*)";
vector<string> params = { "month", "day", "time", "message", "other_data", "even_more_data" }; vector<string> params = { "month", "day", "time", "message", "other_data", "even_more_data" };
vector<string> luaCodes = { "", "", "", "", "", "" }; vector<string> luaCodes = { "", "", "", "", "", "" };
regex expression(regexString); regex expression(regexString);
RegexStruct rs = RegexStruct(); RegexStruct rs = RegexStruct();
rs.tag = "test_tag"; rs.tag = "test_tag";
rs.regexExpression = expression; rs.regexExpression = expression;
@ -63,11 +63,11 @@ TEST(syslog_parser, matching_regex) {
EXPECT_EQ(true, success); EXPECT_EQ(true, success);
EXPECT_EQ("test_tag", tag); EXPECT_EQ("test_tag", tag);
EXPECT_EQ(expectedDict, paramDict); EXPECT_EQ(expectedDict, paramDict);
lua_close(luaState); lua_close(luaState);
} }
TEST(syslog_parser, matching_regex_timestamp) { TEST(syslog_parser, matching_regex_timestamp) {
json jList = json::array(); json jList = json::array();
vector<RegexStruct> regexList; vector<RegexStruct> regexList;
string regexString = "^([a-zA-Z]{3})?\\s*([0-9]{1,2})?\\s*([0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{0,6})?\\s*message (.*) other_data (.*)"; string regexString = "^([a-zA-Z]{3})?\\s*([0-9]{1,2})?\\s*([0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{0,6})?\\s*message (.*) other_data (.*)";
@ -101,7 +101,7 @@ TEST(syslog_parser, matching_regex_timestamp) {
EXPECT_EQ(true, success); EXPECT_EQ(true, success);
EXPECT_EQ("test_tag", tag); EXPECT_EQ("test_tag", tag);
EXPECT_EQ(expectedDict, paramDict); EXPECT_EQ(expectedDict, paramDict);
lua_close(luaState); lua_close(luaState);
} }
@ -165,7 +165,7 @@ TEST(syslog_parser, lua_code_valid_1) {
EXPECT_EQ(true, success); EXPECT_EQ(true, success);
EXPECT_EQ("test_tag", tag); EXPECT_EQ("test_tag", tag);
EXPECT_EQ(expectedDict, paramDict); EXPECT_EQ(expectedDict, paramDict);
lua_close(luaState); lua_close(luaState);
} }
@ -204,7 +204,7 @@ TEST(syslog_parser, lua_code_valid_2) {
EXPECT_EQ(true, success); EXPECT_EQ(true, success);
EXPECT_EQ("test_tag", tag); EXPECT_EQ("test_tag", tag);
EXPECT_EQ(expectedDict, paramDict); EXPECT_EQ(expectedDict, paramDict);
lua_close(luaState); lua_close(luaState);
} }
@ -255,10 +255,10 @@ TEST(rsyslog_plugin, onMessage_noParams) {
TEST(timestampFormatter, changeTimestampFormat) { TEST(timestampFormatter, changeTimestampFormat) {
unique_ptr<TimestampFormatter> formatter(new TimestampFormatter()); unique_ptr<TimestampFormatter> formatter(new TimestampFormatter());
vector<string> timestampOne = { "Jul", "20", "10:09:40.230874" }; vector<string> timestampOne = { "Jul", "20", "10:09:40.230874" };
vector<string> timestampTwo = { "Jan", "1", "00:00:00.000000" }; vector<string> timestampTwo = { "Jan", "1", "00:00:00.000000" };
vector<string> timestampThree = { "Dec", "31", "23:59:59.000000" }; vector<string> timestampThree = { "Dec", "31", "23:59:59.000000" };
formatter->m_storedTimestamp = "010100:00:00.000000"; formatter->m_storedTimestamp = "010100:00:00.000000";
formatter->m_storedYear = g_stored_year; formatter->m_storedYear = g_stored_year;

View File

@ -8,7 +8,7 @@
* (0) main thread -- Runs eventd service that accepts commands event_req_type_t * (0) main thread -- Runs eventd service that accepts commands event_req_type_t
* This can be used to control caching events and a no-op echo service. * This can be used to control caching events and a no-op echo service.
* *
* (1) capture/cache service * (1) capture/cache service
* Saves all the events between cache start & stop. * Saves all the events between cache start & stop.
* Update missed cached counter in memory. * Update missed cached counter in memory.
* *
@ -111,7 +111,7 @@ stats_collector::set_heartbeat_interval(int val)
{ {
if (val > 0) { if (val > 0) {
/* Round to highest possible multiples of MIN */ /* Round to highest possible multiples of MIN */
m_heartbeats_interval_cnt = m_heartbeats_interval_cnt =
(((val * 1000) + STATS_HEARTBEAT_MIN - 1) / STATS_HEARTBEAT_MIN); (((val * 1000) + STATS_HEARTBEAT_MIN - 1) / STATS_HEARTBEAT_MIN);
} }
else if (val == 0) { else if (val == 0) {
@ -269,7 +269,7 @@ stats_collector::run_collector()
out: out:
/* /*
* NOTE: A shutdown could lose messages in cache. * NOTE: A shutdown could lose messages in cache.
* But consider, that eventd shutdown is a critical shutdown as it would * But consider, that eventd shutdown is a critical shutdown as it would
* bring down all other features. Hence done only at system level shutdown, * bring down all other features. Hence done only at system level shutdown,
* hence losing few messages in flight is acceptable. Any more complex code * hence losing few messages in flight is acceptable. Any more complex code
@ -317,7 +317,7 @@ validate_event(const internal_event_t &event, runtime_id_t &rid, sequence_t &seq
return ret; return ret;
} }
/* /*
* Initialize cache with set of events provided. * Initialize cache with set of events provided.
@ -358,10 +358,10 @@ capture_service::do_capture()
typedef enum { typedef enum {
/* /*
* In this state every event read is compared with init cache given * In this state every event read is compared with init cache given
* Only new events are saved. * Only new events are saved.
*/ */
CAP_STATE_INIT = 0, CAP_STATE_INIT = 0,
/* In this state, all events read are cached until max limit */ /* In this state, all events read are cached until max limit */
CAP_STATE_ACTIVE, CAP_STATE_ACTIVE,
@ -399,7 +399,7 @@ capture_service::do_capture()
/* /*
* The cache service connects but defers any reading until caller provides * The cache service connects but defers any reading until caller provides
* the startup cache. But all events that arrived since connect, though not read * the startup cache. But all events that arrived since connect, though not read
* will be held by ZMQ in its local cache. * will be held by ZMQ in its local cache.
* *
* When cache service starts reading, check against the initial stock for duplicates. * When cache service starts reading, check against the initial stock for duplicates.
* m_pre_exist_id caches the last seq number in initial stock for each runtime id. * m_pre_exist_id caches the last seq number in initial stock for each runtime id.
@ -482,7 +482,7 @@ capture_service::do_capture()
} }
break; break;
} }
catch (bad_alloc& e) catch (bad_alloc& e)
{ {
stringstream ss; stringstream ss;
ss << e.what(); ss << e.what();
@ -535,7 +535,7 @@ capture_service::set_control(capture_control_t ctrl, event_serialized_lst_t *lst
break; break;
case START_CAPTURE: case START_CAPTURE:
/* /*
* Reserve a MAX_PUBLISHERS_COUNT entries for last events, as we use it only * Reserve a MAX_PUBLISHERS_COUNT entries for last events, as we use it only
* upon m_events/vector overflow, which might block adding new entries in map * upon m_events/vector overflow, which might block adding new entries in map
@ -545,7 +545,7 @@ capture_service::set_control(capture_control_t ctrl, event_serialized_lst_t *lst
for (int i=0; i<MAX_PUBLISHERS_COUNT; ++i) { for (int i=0; i<MAX_PUBLISHERS_COUNT; ++i) {
m_last_events[to_string(i)] = ""; m_last_events[to_string(i)] = "";
} }
if ((lst != NULL) && (!lst->empty())) { if ((lst != NULL) && (!lst->empty())) {
init_capture_cache(*lst); init_capture_cache(*lst);
} }
@ -663,7 +663,7 @@ run_eventd_service()
RET_ON_ERR(stats_instance.is_running(), "Failed to start stats instance"); RET_ON_ERR(stats_instance.is_running(), "Failed to start stats instance");
while(code != EVENT_EXIT) { while(code != EVENT_EXIT) {
int resp = -1; int resp = -1;
event_serialized_lst_t req_data, resp_data; event_serialized_lst_t req_data, resp_data;
RET_ON_ERR(service.channel_read(code, req_data) == 0, RET_ON_ERR(service.channel_read(code, req_data) == 0,
@ -684,7 +684,7 @@ run_eventd_service()
} }
break; break;
case EVENT_CACHE_START: case EVENT_CACHE_START:
if (capture == NULL) { if (capture == NULL) {
SWSS_LOG_ERROR("Cache is not initialized to start"); SWSS_LOG_ERROR("Cache is not initialized to start");
@ -697,7 +697,7 @@ run_eventd_service()
resp = capture->set_control(START_CAPTURE, &req_data); resp = capture->set_control(START_CAPTURE, &req_data);
break; break;
case EVENT_CACHE_STOP: case EVENT_CACHE_STOP:
if (capture == NULL) { if (capture == NULL) {
SWSS_LOG_ERROR("Cache is not initialized to stop"); SWSS_LOG_ERROR("Cache is not initialized to stop");

View File

@ -136,7 +136,7 @@ class stats_collector
void run_collector(); void run_collector();
void run_writer(); void run_writer();
atomic<bool> m_updated; atomic<bool> m_updated;
counters_t m_lst_counters[COUNTERS_EVENTS_TOTAL]; counters_t m_lst_counters[COUNTERS_EVENTS_TOTAL];
@ -192,13 +192,13 @@ class stats_collector
* *
* We add to the vector as much as allowed by vector and max limit, * We add to the vector as much as allowed by vector and max limit,
* whichever comes first. * whichever comes first.
* *
* The sequence number in internal event will help assess the missed count * The sequence number in internal event will help assess the missed count
* by the consumer of the cache data. * by the consumer of the cache data.
* *
*/ */
typedef enum { typedef enum {
NEED_INIT = 0, NEED_INIT = 0,
INIT_CAPTURE, INIT_CAPTURE,
START_CAPTURE, START_CAPTURE,
STOP_CAPTURE STOP_CAPTURE

View File

@ -1,6 +1,6 @@
CC := g++ CC := g++
TEST_OBJS += ./src/eventd.o TEST_OBJS += ./src/eventd.o
OBJS += ./src/eventd.o ./src/main.o OBJS += ./src/eventd.o ./src/main.o
C_DEPS += ./src/eventd.d ./src/main.d C_DEPS += ./src/eventd.d ./src/main.d

View File

@ -699,7 +699,7 @@ TEST(eventd, service)
void void
wait_for_heartbeat(stats_collector &stats_instance, long unsigned int cnt, wait_for_heartbeat(stats_collector &stats_instance, long unsigned int cnt,
int wait_ms = 3000) int wait_ms = 3000)
{ {
int diff = 0; int diff = 0;
@ -749,7 +749,7 @@ TEST(eventd, heartbeat)
/* Pause heartbeat */ /* Pause heartbeat */
stats_instance.heartbeat_ctrl(true); stats_instance.heartbeat_ctrl(true);
/* Sleep to ensure the other thread noticed the pause request. */ /* Sleep to ensure the other thread noticed the pause request. */
this_thread::sleep_for(chrono::milliseconds(200)); this_thread::sleep_for(chrono::milliseconds(200));
@ -870,7 +870,7 @@ TEST(eventd, testDB)
if (db.exists(key)) { if (db.exists(key)) {
try { try {
m = db.hgetall(key); m = db.hgetall(key);
unordered_map<string, string>::const_iterator itc = unordered_map<string, string>::const_iterator itc =
m.find(string(EVENTS_STATS_FIELD_NAME)); m.find(string(EVENTS_STATS_FIELD_NAME));
if (itc != m.end()) { if (itc != m.end()) {
int expect = (counter_keys[i] == string(COUNTERS_EVENTS_PUBLISHED) ? int expect = (counter_keys[i] == string(COUNTERS_EVENTS_PUBLISHED) ?

View File

@ -73,7 +73,7 @@ public:
} }
// Get this info handy // Get this info handy
try try
{ {
DBConnector db("TEST_DB", 0, true); DBConnector db("TEST_DB", 0, true);
g_is_redis_available = true; g_is_redis_available = true;

View File

@ -74,7 +74,7 @@ def test_receiver(event_obj, cnt):
while cnt_done < cnt: while cnt_done < cnt:
p = event_receive_op_t() p = event_receive_op_t()
rc = event_receive(sh, p) rc = event_receive(sh, p)
if rc > 0 and publish_cnt < 2: if rc > 0 and publish_cnt < 2:
# ignore timeout as test code has not yet published an event yet # ignore timeout as test code has not yet published an event yet
continue continue

View File

@ -80,7 +80,7 @@ t_map_to_str(const Map &m)
_ss << sep << "{" << elem.first << "," << elem.second << "}"; _ss << sep << "{" << elem.first << "," << elem.second << "}";
if (sep.empty()) { if (sep.empty()) {
sep = ", "; sep = ", ";
} }
} }
_ss << "}"; _ss << "}";
return _ss.str(); return _ss.str();
@ -99,7 +99,7 @@ do_receive(const event_subscribe_sources_t filter, const string outfile, int cnt
fp = &fout; fp = &fout;
printf("outfile=%s set\n", outfile.c_str()); printf("outfile=%s set\n", outfile.c_str());
} }
} }
event_handle_t h = events_init_subscriber(use_cache, 2000, filter.empty() ? NULL : &filter); event_handle_t h = events_init_subscriber(use_cache, 2000, filter.empty() ? NULL : &filter);
printf("Subscribed with use_cache=%d timeout=2000 filter %s\n", printf("Subscribed with use_cache=%d timeout=2000 filter %s\n",
use_cache, filter.empty() ? "empty" : "non-empty"); use_cache, filter.empty() ? "empty" : "non-empty");
@ -124,7 +124,7 @@ do_receive(const event_subscribe_sources_t filter, const string outfile, int cnt
evtOp[evt.key] = t_map_to_str(evt.params); evtOp[evt.key] = t_map_to_str(evt.params);
(*fp) << t_map_to_str(evtOp) << "\n"; (*fp) << t_map_to_str(evtOp) << "\n";
fp->flush(); fp->flush();
if ((++index % PRINT_CHUNK_SZ) == 0) { if ((++index % PRINT_CHUNK_SZ) == 0) {
printf("Received index %d\n", index); printf("Received index %d\n", index);
} }
@ -178,7 +178,7 @@ do_send(const string infile, int cnt, int pause)
source.c_str(), key.substr(0, key.find(":")).c_str()); source.c_str(), key.substr(0, key.find(":")).c_str());
} }
evt.tag = key.substr(key.find(":")+1); evt.tag = key.substr(key.find(":")+1);
const auto &val = data.begin().value(); const auto &val = data.begin().value();
ASSERT(val.is_object(), "Parsed params is not object"); ASSERT(val.is_object(), "Parsed params is not object");
ASSERT((int)val.size() >= 1, "Expect non empty params"); ASSERT((int)val.size() >= 1, "Expect non empty params");
@ -200,7 +200,7 @@ do_send(const string infile, int cnt, int pause)
}; };
lst.push_back(evt); lst.push_back(evt);
} }
h = events_init_publisher(source); h = events_init_publisher(source);
ASSERT(h != NULL, "failed to init publisher"); ASSERT(h != NULL, "failed to init publisher");
@ -214,7 +214,7 @@ do_send(const string infile, int cnt, int pause)
if ((++index % PRINT_CHUNK_SZ) == 0) { if ((++index % PRINT_CHUNK_SZ) == 0) {
printf("Sending index %d\n", index); printf("Sending index %d\n", index);
} }
int rc = event_publish(h, evt.tag, evt.params.empty() ? NULL : &evt.params); int rc = event_publish(h, evt.tag, evt.params.empty() ? NULL : &evt.params);
ASSERT(rc == 0, "Failed to publish index=%d rc=%d", index, rc); ASSERT(rc == 0, "Failed to publish index=%d rc=%d", index, rc);

View File

@ -30,7 +30,7 @@ def run_test(process, file, count, duplicate):
# log messages to see if events have been received # log messages to see if events have been received
tool_proc = start_tool(file) tool_proc = start_tool(file)
time.sleep(2) # buffer for events_tool to startup time.sleep(2) # buffer for events_tool to startup
logging.info("Generating logger messages\n") logging.info("Generating logger messages\n")
sub_cmd = ["logger", "-p", "local0.notice", "-t", process, "test", "message"] sub_cmd = ["logger", "-p", "local0.notice", "-t", process, "test", "message"]
for i in range(count): for i in range(count):

Some files were not shown because too many files have changed in this diff Show More