[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:
parent
6745691eb5
commit
a73d443c1d
@ -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
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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)/
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
;;
|
;;
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
%:
|
%:
|
||||||
dh $@ --with systemd
|
dh $@ --with systemd
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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)));
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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");
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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))
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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));
|
||||||
|
@ -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();
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
%:
|
%:
|
||||||
dh $@
|
dh $@
|
||||||
|
|
||||||
override_dh_fixperms:
|
override_dh_fixperms:
|
||||||
dh_fixperms
|
dh_fixperms
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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):
|
||||||
"""
|
"""
|
||||||
|
@ -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__(
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"CONFIG_DB__DEVICE_METADATA": {
|
"CONFIG_DB__DEVICE_METADATA": {
|
||||||
"localhost": {
|
"localhost": {
|
||||||
"type": "LeafRouter"
|
"type": "LeafRouter"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"CONFIG_DB__DEVICE_METADATA": {
|
"CONFIG_DB__DEVICE_METADATA": {
|
||||||
"localhost": {
|
"localhost": {
|
||||||
"type": "SpineRouter"
|
"type": "SpineRouter"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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'
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
@ -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"})
|
||||||
|
@ -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
|
||||||
!
|
!
|
||||||
|
@ -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"
|
||||||
|
@ -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.
|
||||||
|
@ -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
|
||||||
|
@ -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}"
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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')
|
||||||
|
@ -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
@ -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>
|
||||||
|
@ -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": {
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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">
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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",
|
||||||
|
@ -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",
|
||||||
|
@ -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">
|
||||||
|
@ -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">
|
||||||
|
@ -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">
|
||||||
|
@ -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">
|
||||||
|
@ -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">
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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">
|
||||||
|
@ -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">
|
||||||
|
@ -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">
|
||||||
|
@ -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">
|
||||||
|
@ -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'}}"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -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']
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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")
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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:
|
||||||
|
@ -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)))
|
||||||
|
@ -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
|
||||||
|
@ -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 = {
|
||||||
|
@ -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:
|
||||||
|
@ -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):
|
||||||
|
@ -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,
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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" };
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
|
@ -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");
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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) ?
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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
Loading…
Reference in New Issue
Block a user