[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 mock_helper.c $(IFLAGS) $(CFLAGS) -o mock_helper.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:
|
||||
# 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;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
// all other case return mock handle
|
||||
mock_dlerror = NULL;
|
||||
return mock_plugin_handle;
|
||||
@ -133,21 +133,21 @@ void *dlsym(void *restrict handle, const char *restrict symbol)
|
||||
mock_dlerror = mock_dlerror_failed;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
case TEST_SCEANRIO_PLUGIN_UNINIT_NOT_EXIT:
|
||||
if (strcmp(symbol, "plugin_uninit") == 0)
|
||||
{
|
||||
mock_dlerror = mock_dlerror_failed;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
case TEST_SCEANRIO_PLUGIN_INIT_NOT_EXIT:
|
||||
if (strcmp(symbol, "plugin_init") == 0)
|
||||
{
|
||||
mock_dlerror = mock_dlerror_failed;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
case TEST_SCEANRIO_PLUGIN_INIT_SUCCESS:
|
||||
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_plugin_default_function_handle;
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,7 @@ int start_up() {
|
||||
/* Test plugin not exist scenario */
|
||||
void testcase_try_load_plugin_by_path_not_exist() {
|
||||
set_test_scenario(TEST_SCEANRIO_PLUGIN_NOT_EXIT);
|
||||
|
||||
|
||||
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");
|
||||
@ -25,7 +25,7 @@ void testcase_try_load_plugin_by_path_not_exist() {
|
||||
/* Test plugin exist but not support shell_execve scenario */
|
||||
void testcase_try_load_plugin_by_path_execve_not_exist() {
|
||||
set_test_scenario(TEST_SCEANRIO_PLUGIN_EXECVE_NOT_EXIT);
|
||||
|
||||
|
||||
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");
|
||||
@ -34,18 +34,18 @@ void testcase_try_load_plugin_by_path_execve_not_exist() {
|
||||
/* Test plugin exist but not support plugin_uninit scenario */
|
||||
void testcase_try_load_plugin_by_path_plugin_uninit_not_exist() {
|
||||
set_test_scenario(TEST_SCEANRIO_PLUGIN_UNINIT_NOT_EXIT);
|
||||
|
||||
|
||||
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");
|
||||
}
|
||||
|
||||
/* Test plugin exist but not support plugin_init scenario */
|
||||
void testcase_try_load_plugin_by_path_plugin_init_not_exist() {
|
||||
set_test_scenario(TEST_SCEANRIO_PLUGIN_INIT_NOT_EXIT);
|
||||
|
||||
|
||||
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");
|
||||
}
|
||||
|
||||
@ -54,22 +54,22 @@ void testcase_try_load_plugin_by_path_plugin_init_success() {
|
||||
set_test_scenario(TEST_SCEANRIO_PLUGIN_INIT_SUCCESS);
|
||||
set_memory_allocate_count(0);
|
||||
set_plugin_init_status(PLUGIN_NOT_INITIALIZE);
|
||||
|
||||
|
||||
try_load_plugin_by_path("./testplugin.so");
|
||||
|
||||
|
||||
// check plugin init success
|
||||
CU_ASSERT_EQUAL(get_plugin_init_status(), PLUGIN_INITIALIZED);
|
||||
|
||||
|
||||
// check API success
|
||||
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
|
||||
CU_ASSERT_NOT_EQUAL(global_plugin_list, NULL);
|
||||
CU_ASSERT_EQUAL(global_plugin_list->plugin_handle, TEST_MOCK_PLUGIN_HANDLE);
|
||||
|
||||
// release all loaded plugins
|
||||
free_loaded_plugins();
|
||||
|
||||
|
||||
// check if memory fully released
|
||||
CU_ASSERT_EQUAL(global_plugin_list, NULL);
|
||||
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_memory_allocate_count(0);
|
||||
try_load_plugin_by_path("./testplugin.so");
|
||||
|
||||
|
||||
// check memory allocated
|
||||
CU_ASSERT_NOT_EQUAL(get_memory_allocate_count(), 0);
|
||||
|
||||
|
||||
// check plugin init success
|
||||
CU_ASSERT_EQUAL(get_plugin_init_status(), PLUGIN_INITIALIZED);
|
||||
|
||||
|
||||
// release all loaded plugins
|
||||
free_loaded_plugins();
|
||||
|
||||
|
||||
// check if memory fully released
|
||||
CU_ASSERT_EQUAL(global_plugin_list, NULL);
|
||||
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_memory_allocate_count(0);
|
||||
load_plugin_by_config("./bash_plugins.conf");
|
||||
|
||||
|
||||
// check memory allocated
|
||||
CU_ASSERT_NOT_EQUAL(get_memory_allocate_count(), 0);
|
||||
|
||||
|
||||
// check plugin init success
|
||||
CU_ASSERT_EQUAL(get_plugin_init_status(), PLUGIN_INITIALIZED);
|
||||
|
||||
// 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");
|
||||
|
||||
|
||||
// check there are 2 plugins loaded
|
||||
CU_ASSERT_EQUAL(get_memory_allocate_count(), 2);
|
||||
|
||||
|
||||
// release all loaded plugins
|
||||
free_loaded_plugins();
|
||||
|
||||
|
||||
// check if memory fully released
|
||||
CU_ASSERT_EQUAL(global_plugin_list, NULL);
|
||||
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_memory_allocate_count(0);
|
||||
load_plugin_by_config("./bash_plugins.conf");
|
||||
|
||||
|
||||
// invoke plugin method
|
||||
char** pargv = (char**)0x5234;
|
||||
invoke_plugin_on_shell_execve("testuser", "testcommand", pargv);
|
||||
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");
|
||||
|
||||
|
||||
// release all loaded plugins
|
||||
free_loaded_plugins();
|
||||
|
||||
|
||||
// check if memory fully released
|
||||
CU_ASSERT_EQUAL(global_plugin_list, NULL);
|
||||
printf("Count %d\n", get_memory_allocate_count());
|
||||
@ -198,7 +198,7 @@ int main(void) {
|
||||
CU_cleanup_registry();
|
||||
return CU_get_error();
|
||||
}
|
||||
|
||||
|
||||
if (CU_get_error() != CUE_SUCCESS) {
|
||||
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());
|
||||
|
||||
|
||||
// use failed UT count as return value
|
||||
return CU_get_number_of_failure_records();
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ else ifeq ($(CROSS_BUILD_ENVIRON), y)
|
||||
else
|
||||
dpkg-buildpackage -rfakeroot -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR)
|
||||
endif
|
||||
|
||||
|
||||
popd
|
||||
mv $(DERIVED_TARGET) $* $(DEST)/
|
||||
|
||||
|
@ -6,7 +6,7 @@ Standards-Version: 3.9.3
|
||||
Section: net
|
||||
|
||||
Package: gobgp
|
||||
Priority: extra
|
||||
Priority: extra
|
||||
Architecture: amd64
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: gobgp BGP daemon
|
||||
|
@ -31,7 +31,7 @@ case "$1" in
|
||||
echo /etc/gobgp/gobgpd.conf not found
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
stop)
|
||||
kill -9 $(echo /var/run/gobgpd.pid)
|
||||
;;
|
||||
|
@ -1,3 +1,3 @@
|
||||
#!/usr/bin/make -f
|
||||
%:
|
||||
#!/usr/bin/make -f
|
||||
%:
|
||||
dh $@ --with systemd
|
||||
|
@ -487,17 +487,17 @@ enum MCLAG_DOMAIN_CFG_OP_TYPE {
|
||||
MCLAG_CFG_OPER_ADD = 1, //Add domain
|
||||
MCLAG_CFG_OPER_DEL = 2, //Delete 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 {
|
||||
MCLAG_CFG_ATTR_NONE = 0x0,
|
||||
MCLAG_CFG_ATTR_SRC_ADDR = 0x1,
|
||||
MCLAG_CFG_ATTR_PEER_ADDR = 0x2,
|
||||
MCLAG_CFG_ATTR_PEER_LINK = 0x4,
|
||||
MCLAG_CFG_ATTR_KEEPALIVE_INTERVAL = 0x8,
|
||||
MCLAG_CFG_ATTR_SESSION_TIMEOUT = 0x10
|
||||
MCLAG_CFG_ATTR_NONE = 0x0,
|
||||
MCLAG_CFG_ATTR_SRC_ADDR = 0x1,
|
||||
MCLAG_CFG_ATTR_PEER_ADDR = 0x2,
|
||||
MCLAG_CFG_ATTR_PEER_LINK = 0x4,
|
||||
MCLAG_CFG_ATTR_KEEPALIVE_INTERVAL = 0x8,
|
||||
MCLAG_CFG_ATTR_SESSION_TIMEOUT = 0x10
|
||||
};
|
||||
|
||||
struct IccpSyncdHDr
|
||||
|
@ -270,9 +270,9 @@ typedef struct system_dbg_counter_info
|
||||
uint32_t peer_link_down_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_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_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 socket_close_err_counter; //socket close failure
|
||||
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.session_timeout = csm->session_timeout;
|
||||
|
||||
|
||||
logconfig = logger_get_configuration();
|
||||
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->iccp_info.sender_name, 0, MAX_L_ICC_SENDER_NAME);
|
||||
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;
|
||||
}
|
||||
|
||||
@ -217,7 +217,7 @@ void iccp_csm_finalize(struct CSM* csm)
|
||||
LIST_REMOVE(cif,csm_next);
|
||||
free(cif);
|
||||
}
|
||||
|
||||
|
||||
/* Release iccp_csm */
|
||||
pthread_mutex_destroy(&(csm->conn_mutex));
|
||||
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)) {
|
||||
@ -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;
|
||||
sprintf(ndisc_info->ifname, "%s", ndisc_msg->ifname);
|
||||
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;
|
||||
}
|
||||
@ -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_key = { 0 };
|
||||
char vlan_name[16] = "";
|
||||
if (!mbr_if)
|
||||
if (!mbr_if)
|
||||
{
|
||||
return MCLAG_ERROR;
|
||||
}
|
||||
@ -1340,7 +1340,7 @@ int add_pending_vlan_mbr(struct PendingVlanMbrIf* mbr_if, uint16_t vid)
|
||||
vlan_key.vid = vid;
|
||||
|
||||
vlan = RB_FIND(vlan_rb_tree, &(mbr_if->vlan_tree), &vlan_key);
|
||||
|
||||
|
||||
if (!vlan)
|
||||
{
|
||||
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_key = { 0 };
|
||||
if (!mbr_if)
|
||||
if (!mbr_if)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -1372,7 +1372,7 @@ void del_pending_vlan_mbr(struct PendingVlanMbrIf* mbr_if, uint16_t vid)
|
||||
vlan_key.vid = vid;
|
||||
|
||||
vlan = RB_FIND(vlan_rb_tree, &(mbr_if->vlan_tree), &vlan_key);
|
||||
|
||||
|
||||
if (vlan != NULL)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
//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
|
||||
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");
|
||||
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 (!add_flag)
|
||||
if (!add_flag)
|
||||
{
|
||||
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);
|
||||
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_pending_vlan_mbr(mbr_if, vlan_id);
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
//delete from pending vlan member if
|
||||
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)
|
||||
{
|
||||
struct PendingVlanMbrIf *mbr_if;
|
||||
struct VLAN_ID* vlan = NULL;
|
||||
struct VLAN_ID* vlan_temp = NULL;
|
||||
if (!sys || !lif)
|
||||
if (!sys || !lif)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -1504,7 +1504,7 @@ void vlan_mbrship_change_handler(unsigned int vlan_id, char *mbr_if_name, int ad
|
||||
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");
|
||||
update_pending_vlan_mbr(mbr_if_name, vlan_id, add_flag);
|
||||
update_pending_vlan_mbr(mbr_if_name, vlan_id, add_flag);
|
||||
return;
|
||||
}
|
||||
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;
|
||||
struct LocalInterface* member_if;
|
||||
char *tmp_member_buf = NULL;
|
||||
|
||||
|
||||
if (!lif_po)
|
||||
return MCLAG_ERROR;
|
||||
|
||||
@ -649,7 +649,7 @@ void update_if_ipmac_on_standby(struct LocalInterface* lif_po, int dir)
|
||||
return;
|
||||
|
||||
pif = peer_if_find_by_name(csm, lif_po->name);
|
||||
|
||||
|
||||
/*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))
|
||||
{
|
||||
@ -659,7 +659,7 @@ void update_if_ipmac_on_standby(struct LocalInterface* lif_po, int dir)
|
||||
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",
|
||||
(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],
|
||||
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],
|
||||
@ -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_startup_set(lif_po->ifindex);
|
||||
/* 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()
|
||||
*/
|
||||
*/
|
||||
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_whitelist[i].ifname, strlen(if_whitelist[i].ifname)) == 0))
|
||||
{
|
||||
|
||||
|
||||
/*if the iface exists, but the ifindex changed, then delete old
|
||||
* interface and add the new interface
|
||||
* possible scenario is due to many kernel events, there is
|
||||
* possiblility of losing if deletion event and just
|
||||
* getting a add of same iface with new ifindex.
|
||||
* 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
|
||||
* ifindex
|
||||
*/
|
||||
@ -2174,7 +2174,7 @@ int iccp_handle_events(struct System * sys)
|
||||
int i;
|
||||
int err;
|
||||
int max_nfds;
|
||||
struct mLACPHeartbeatTLV dummy_tlv;
|
||||
struct mLACPHeartbeatTLV dummy_tlv;
|
||||
|
||||
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)
|
||||
{
|
||||
//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);
|
||||
}
|
||||
break;
|
||||
@ -2334,7 +2334,7 @@ void update_vlan_if_mac_on_standby(struct LocalInterface* lif_vlan, int dir)
|
||||
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",
|
||||
(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],
|
||||
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)
|
||||
{
|
||||
/*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*/
|
||||
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)
|
||||
{
|
||||
/*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.
|
||||
After warm-reboot, this MAC must be learnt by peer and sync to local switch*/
|
||||
if (!(mac_msg->age_flag & MAC_AGE_LOCAL))
|
||||
|
@ -559,7 +559,7 @@ void set_peerlink_mlag_port_learn(struct LocalInterface *lif, int enable)
|
||||
return;
|
||||
}
|
||||
|
||||
/* Send request to Mclagsyncd to enable or disable traffic on
|
||||
/* Send request to Mclagsyncd to enable or disable traffic on
|
||||
* MLAG interface
|
||||
*/
|
||||
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.
|
||||
// When interface is UP MAC addresses gets re-learned
|
||||
// When interface is UP MAC addresses gets re-learned
|
||||
#if 0
|
||||
/*this may be peerlink is not configured and portchannel is down*/
|
||||
/*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",
|
||||
"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->name,
|
||||
local_if->name,
|
||||
(local_if->state == PORT_STATE_UP) ? "up" : "down",
|
||||
local_if->po_active, local_if->is_traffic_disable,
|
||||
mlacp_state(csm));
|
||||
@ -2147,14 +2147,14 @@ void mlacp_mlag_intf_detach_handler(struct CSM* csm, struct LocalInterface* loca
|
||||
else
|
||||
update_l3_po_state(csm, local_if, 0);
|
||||
|
||||
|
||||
|
||||
//If the traffic is disabled due to interface flap; while coming up, if
|
||||
//mclag interface is removed before receiving ack, it will be in
|
||||
//blocked state; to address timing scenario unblock Tx/Rx of
|
||||
//traffic on this portchannel if the traffic is blocked on this port
|
||||
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);
|
||||
}
|
||||
@ -2178,7 +2178,7 @@ void mlacp_peer_mlag_intf_delete_handler(struct CSM* csm, char *mlag_if_name)
|
||||
ICCPD_LOG_DEBUG("ICCP_FSM",
|
||||
"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->name,
|
||||
local_if->name,
|
||||
(local_if->state == PORT_STATE_UP) ? "up" : "down",
|
||||
local_if->po_active, local_if->is_traffic_disable,
|
||||
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;
|
||||
int count, i = 0;
|
||||
char system_mac_str[ETHER_ADDR_STR_LEN];
|
||||
|
||||
|
||||
msg_hdr = (struct IccpSyncdHDr *)msg_buf;
|
||||
|
||||
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++)
|
||||
{
|
||||
@ -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));
|
||||
|
||||
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
|
||||
{
|
||||
@ -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)
|
||||
{
|
||||
unset_peer_link(cfg_info->domain_id);
|
||||
}
|
||||
}
|
||||
else if(cfg_info->attr_bmap & MCLAG_CFG_ATTR_KEEPALIVE_INTERVAL)
|
||||
{
|
||||
//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 mclag_iface_cfg_info* cfg_info;
|
||||
int count, i = 0;
|
||||
|
||||
|
||||
msg_hdr = (struct IccpSyncdHDr *)msg_buf;
|
||||
|
||||
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++)
|
||||
{
|
||||
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)
|
||||
{
|
||||
@ -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));
|
||||
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;
|
||||
|
||||
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++)
|
||||
{
|
||||
@ -3592,7 +3592,7 @@ int iccp_mclagsyncd_msg_handler(struct System *sys)
|
||||
{
|
||||
iccp_mclagsyncd_vlan_mbr_update_handler(sys, &msg_buf[pos]);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
ICCPD_LOG_ERR(__FUNCTION__, "recv unknown msg type %d ", msg_hdr->type);
|
||||
pos += msg_hdr->len;
|
||||
@ -3612,10 +3612,10 @@ int iccp_mclagsyncd_msg_handler(struct System *sys)
|
||||
{
|
||||
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)
|
||||
return;
|
||||
|
||||
|
||||
/* Expecting ACK from peer only after reaching EXCHANGE state */
|
||||
if (MLACP(lif->csm).current_state != MLACP_STATE_EXCHANGE)
|
||||
return;
|
||||
@ -4197,7 +4197,7 @@ int mclagd_ctl_interactive_process(int client_fd)
|
||||
|
||||
case INFO_TYPE_DUMP_MAC:
|
||||
mclagd_ctl_handle_dump_mac(client_fd, req->mclag_id);
|
||||
break;
|
||||
break;
|
||||
|
||||
case INFO_TYPE_DUMP_LOCAL_PORTLIST:
|
||||
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:
|
||||
mclagd_ctl_handle_config_loglevel(client_fd, req->mclag_id);
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
return MCLAG_ERROR;
|
||||
}
|
||||
|
@ -579,7 +579,7 @@ int local_if_add_vlan(struct LocalInterface* local_if, uint16_t vid)
|
||||
vlan_key.vid = vid;
|
||||
|
||||
vlan = RB_FIND(vlan_rb_tree, &(local_if->vlan_tree), &vlan_key);
|
||||
|
||||
|
||||
if (!vlan)
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
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 = RB_FIND(vlan_rb_tree, &(local_if->vlan_tree), &vlan_key);
|
||||
|
||||
|
||||
if (vlan != NULL)
|
||||
{
|
||||
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;
|
||||
|
||||
peer_vlan = RB_FIND(vlan_rb_tree, &(peer_if->vlan_tree), &vlan_key);
|
||||
|
||||
|
||||
if (!peer_vlan)
|
||||
{
|
||||
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_RCV_BUF_LEN (6 * 1024 * 1024)
|
||||
#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
|
||||
//cli
|
||||
iccp_config_from_file(sys->config_file_path);
|
||||
|
||||
|
||||
/*Get kernel ARP info */
|
||||
iccp_neigh_get_init();
|
||||
|
||||
|
@ -822,7 +822,7 @@ libnl3 (3.0-2) unstable; urgency=low
|
||||
libnl3 (3.0-1.1) unstable; urgency=low
|
||||
|
||||
* 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).
|
||||
|
||||
-- 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
|
||||
|
||||
* debian/control
|
||||
* debian/control
|
||||
- Add ${misc:Depends} to all binary packages.
|
||||
- Bump Build-Depends on debhelper to (>= 7).
|
||||
* debian/compat
|
||||
@ -958,7 +958,7 @@ libnl (1.0~pre6-5) unstable; urgency=low
|
||||
- Add XS-Vcs-* fields.
|
||||
- Replace Build-Depends: tetex-bin with texlive-latex-base. teTeX is now
|
||||
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"
|
||||
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
|
||||
|
||||
* 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
|
||||
* 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
|
||||
|
||||
* 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
|
||||
|
||||
@ -997,7 +997,7 @@ libnl (1.0~pre6-1) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
* 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.
|
||||
|
||||
-- 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
|
||||
|
||||
* 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
|
||||
|
||||
|
@ -15,7 +15,7 @@ Section: libs
|
||||
Pre-Depends: ${misc:Pre-Depends}
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
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.
|
||||
The library provides an interface for raw netlink messaging and various
|
||||
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}
|
||||
Multi-Arch: same
|
||||
Description: development library and headers for libnl-cli-3
|
||||
This is a library for applications dealing with netlink sockets.
|
||||
The library provides an interface for raw netlink messaging and various
|
||||
This is a library for applications dealing with netlink sockets.
|
||||
The library provides an interface for raw netlink messaging and various
|
||||
netlink family specific interfaces.
|
||||
.
|
||||
This package contains the files that are needed to build applications using
|
||||
@ -225,7 +225,7 @@ Architecture: linux-any
|
||||
XC-Package-Type: udeb
|
||||
Section: debian-installer
|
||||
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.
|
||||
The library provides an interface for raw netlink messaging and various
|
||||
netlink family specific interfaces.
|
||||
|
@ -9,9 +9,9 @@ Upstream Author:
|
||||
Thomas Graf <tgraf@suug.ch>
|
||||
|
||||
|
||||
Copyright:
|
||||
Copyright:
|
||||
|
||||
lib/route/addr.c
|
||||
lib/route/addr.c
|
||||
include/netlink/route/addr.h
|
||||
|
||||
Copyright (c) Thomas Graf <tgraf@suug.ch>
|
||||
@ -90,7 +90,7 @@ src/cls/basic.c
|
||||
src/nl-addr-delete.c:
|
||||
|
||||
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.
|
||||
|
||||
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:
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
stg init
|
||||
stg import -s ../patch/series
|
||||
|
||||
|
||||
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)
|
||||
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
|
||||
|
||||
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 "unset with_openssl_libdir" >> 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
|
||||
|
||||
%:
|
||||
dh $@
|
||||
dh $@
|
||||
|
||||
override_dh_fixperms:
|
||||
dh_fixperms
|
||||
|
@ -37,7 +37,7 @@ test: test_nss_radius.c $(LIBNSS_SOURCE) $(CACHE_SOURCE) \
|
||||
$(LIBNSS_SOURCE) test_nss_radius.c
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) -g -DTEST_RADIUS_NSS -o test_cache_radius \
|
||||
$(CACHE_SOURCE)
|
||||
|
||||
|
||||
|
||||
.PHONY: all clean distclean test
|
||||
|
||||
|
@ -11,7 +11,7 @@ libpam-radius-auth (1.4.0-3~deb10u1) buster; urgency=medium
|
||||
* Rebuild for buster.
|
||||
* Revert packaging changes:
|
||||
- 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
|
||||
|
||||
|
@ -51,7 +51,7 @@ class AdvertiseRouteMgr(Manager):
|
||||
APP which config the data should be responsible to pass a valid IP prefix
|
||||
"""
|
||||
return True
|
||||
|
||||
|
||||
log_err("BGPAdvertiseRouteMgr:: Invalid data %s for advertised route %s" % (data, key))
|
||||
return False
|
||||
|
||||
|
@ -267,8 +267,8 @@ class BGPAllowListMgr(Manager):
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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)
|
||||
@ -308,7 +308,7 @@ class BGPAllowListMgr(Manager):
|
||||
2001:cdba:0000:0000:0000:0000:3257:9652
|
||||
2001:cdba:0:0:0:0:3257:9652
|
||||
2001:cdba::3257:9652
|
||||
after normalize, all would be normalized to
|
||||
after normalize, all would be normalized to
|
||||
2001:cdba::3257:9652
|
||||
'''
|
||||
normalize_list = []
|
||||
@ -347,7 +347,7 @@ class BGPAllowListMgr(Manager):
|
||||
config_list.append(rule)
|
||||
|
||||
# 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):
|
||||
"""
|
||||
|
@ -128,7 +128,7 @@ class BGPPeerMgrBase(Manager):
|
||||
if self.check_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"))
|
||||
|
||||
super(BGPPeerMgrBase, self).__init__(
|
||||
|
@ -47,7 +47,7 @@ class DeviceGlobalCfgMgr(Manager):
|
||||
self.cfg_mgr.update()
|
||||
self.isolate_unisolate_device(data["tsa_enabled"])
|
||||
self.directory.put(self.db_name, self.table_name, "tsa_enabled", data["tsa_enabled"])
|
||||
return True
|
||||
return True
|
||||
return False
|
||||
|
||||
def del_handler(self, key):
|
||||
@ -62,7 +62,7 @@ class DeviceGlobalCfgMgr(Manager):
|
||||
if tsa_status == "true":
|
||||
cmds = cfg.replace("#012", "\n").split("\n")
|
||||
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
|
||||
|
||||
def isolate_unisolate_device(self, tsa_status):
|
||||
@ -88,22 +88,22 @@ class DeviceGlobalCfgMgr(Manager):
|
||||
def __generate_routemaps_from_template(self, route_map_names, template):
|
||||
cmd = "\n"
|
||||
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
|
||||
if "_INTERNAL_" in rm or "VOQ_" in rm:
|
||||
continue
|
||||
continue
|
||||
if "V4" in rm:
|
||||
ipv="V4" ; ipp="ip"
|
||||
elif "V6" in rm:
|
||||
ipv="V6" ; ipp="ipv6"
|
||||
ipv="V6" ; ipp="ipv6"
|
||||
else:
|
||||
continue
|
||||
continue
|
||||
cmd += template.render(route_map_name=rm,ip_version=ipv,ip_protocol=ipp, constants=self.constants)
|
||||
cmd += "\n"
|
||||
return cmd
|
||||
|
||||
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$')
|
||||
for line in cmds:
|
||||
result = out_route_map.match(line)
|
||||
|
@ -21,7 +21,7 @@ class StaticRouteMgr(Manager):
|
||||
db,
|
||||
table,
|
||||
)
|
||||
|
||||
|
||||
self.directory.subscribe([("CONFIG_DB", swsscommon.CFG_DEVICE_METADATA_TABLE_NAME, "localhost/bgp_asn"),], self.on_bgp_asn_change)
|
||||
self.static_routes = {}
|
||||
self.vrf_pending_redistribution = set()
|
||||
@ -41,7 +41,7 @@ class StaticRouteMgr(Manager):
|
||||
intf_list = arg_list(data['ifname']) if 'ifname' 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
|
||||
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:
|
||||
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": {
|
||||
"localhost": {
|
||||
"localhost": {
|
||||
"type": "LeafRouter"
|
||||
}
|
||||
},
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"CONFIG_DB__DEVICE_METADATA": {
|
||||
"localhost": {
|
||||
"localhost": {
|
||||
"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',
|
||||
' 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',
|
||||
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V4 permit 65535',
|
||||
' set community no-export additive',
|
||||
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 65535',
|
||||
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V4 permit 65535',
|
||||
' set community no-export additive',
|
||||
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 65535',
|
||||
' 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',
|
||||
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 30000',
|
||||
' match ipv6 address prefix-list PL_ALLOW_LIST_DEPLOYMENT_ID_5_COMMUNITY_empty_V6',
|
||||
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V4 permit 65535',
|
||||
' set community no-export additive',
|
||||
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 65535',
|
||||
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V4 permit 65535',
|
||||
' set community no-export additive',
|
||||
'route-map ALLOW_LIST_DEPLOYMENT_ID_5_V6 permit 65535',
|
||||
' set community no-export additive'
|
||||
]
|
||||
)
|
||||
|
@ -17,7 +17,7 @@ def load_constant_files():
|
||||
for path in paths:
|
||||
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")]
|
||||
|
||||
|
||||
return constant_files
|
||||
|
||||
|
||||
@ -55,7 +55,7 @@ def constructor(constants_path):
|
||||
return m
|
||||
|
||||
@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():
|
||||
m = constructor(constant)
|
||||
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'")
|
||||
|
||||
@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():
|
||||
m = constructor(constant)
|
||||
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'")
|
||||
|
||||
@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():
|
||||
m = constructor(constant)
|
||||
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, [])
|
||||
|
||||
@ -139,11 +139,11 @@ router bgp 12345
|
||||
bgp router-id 1020
|
||||
address-family ipv4
|
||||
neighbor PEER_V4 peer-group
|
||||
neighbor PEER_V4 route-map A10 in
|
||||
neighbor PEER_V4 route-map A10 in
|
||||
exit-address-family
|
||||
address-family ipv6
|
||||
neighbor PEER_V6 peer-group
|
||||
neighbor PEER_V6 route-map A20 in
|
||||
neighbor PEER_V6 route-map A20 in
|
||||
exit-address-family
|
||||
route-map A10 permit 10
|
||||
!
|
||||
|
@ -37,7 +37,7 @@ def constructor():
|
||||
cfg_mgr.update = update
|
||||
cfg_mgr.push = push
|
||||
cfg_mgr.get_config = get_config
|
||||
|
||||
|
||||
constants = deepcopy(global_constants)
|
||||
common_objs = {
|
||||
'directory': Directory(),
|
||||
@ -46,12 +46,12 @@ def constructor():
|
||||
'constants': constants
|
||||
}
|
||||
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
|
||||
|
||||
|
||||
@patch('bgpcfgd.managers_device_global.log_debug')
|
||||
def test_isolate_device(mocked_log_info):
|
||||
def test_isolate_device(mocked_log_info):
|
||||
m = constructor()
|
||||
res = m.set_handler("STATE", {"tsa_enabled": "true"})
|
||||
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")
|
||||
|
||||
@patch('bgpcfgd.managers_device_global.log_debug')
|
||||
def test_unisolate_device(mocked_log_info):
|
||||
def test_unisolate_device(mocked_log_info):
|
||||
m = constructor()
|
||||
res = m.set_handler("STATE", {"tsa_enabled": "false"})
|
||||
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"})
|
||||
res = m.check_state_and_get_tsa_routemaps(m.cfg_mgr.get_config())
|
||||
assert res == ""
|
||||
|
||||
def test_get_tsa_routemaps():
|
||||
|
||||
def test_get_tsa_routemaps():
|
||||
m = constructor()
|
||||
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")
|
||||
assert res == expected_res
|
||||
|
||||
def test_get_tsb_routemaps():
|
||||
def test_get_tsb_routemaps():
|
||||
m = constructor()
|
||||
assert m.get_ts_routemaps([], m.tsb_template) == ""
|
||||
|
||||
@ -100,13 +100,13 @@ def get_string_from_file(filename):
|
||||
return cfg
|
||||
|
||||
@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()
|
||||
res = m.set_handler("STATE", {})
|
||||
assert res == False, "Expect False return value for invalid data passed to set_handler"
|
||||
mocked_log_info.assert_called_with("DeviceGlobalCfgMgr:: data is None")
|
||||
|
||||
def test_del_handler():
|
||||
def test_del_handler():
|
||||
m = constructor()
|
||||
res = m.del_handler("STATE")
|
||||
assert res, "Expect True return value for del_handler"
|
||||
|
@ -3,7 +3,7 @@ Version: 1.0
|
||||
Section: devel
|
||||
Priority: optional
|
||||
Architecture: all
|
||||
Depends:
|
||||
Depends:
|
||||
Maintainer: SONiC <sonic@microsoft.com>
|
||||
Description: sonic build hooks
|
||||
Hooks the build tools, such as apt-get, wget, pip, etc.
|
||||
|
@ -373,7 +373,7 @@ update_version_file()
|
||||
done
|
||||
sort -u $tmp_file > $version_file
|
||||
rm -f $tmp_file
|
||||
|
||||
|
||||
if [[ "${version_name}" == *-deb ]]; then
|
||||
update_preference_deb
|
||||
fi
|
||||
|
@ -12,7 +12,7 @@ DIST=$(grep VERSION_CODENAME /etc/os-release | cut -d= -f2)
|
||||
mkdir -p $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.
|
||||
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}"
|
||||
|
@ -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"; };
|
||||
APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };
|
||||
EOF
|
||||
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
@ -4,7 +4,7 @@ IMAGENAME=$1
|
||||
|
||||
. /usr/local/share/buildinfo/scripts/buildinfo_base.sh
|
||||
|
||||
set -x
|
||||
set -x
|
||||
|
||||
|
||||
if [ ! -z "$(get_version_cache_option)" ]; then
|
||||
@ -18,7 +18,7 @@ fi
|
||||
apt-get -s clean -y
|
||||
apt-get -s autoclean -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
|
||||
|
||||
if [[ ! ${IMAGENAME} =~ -slave- ]]; then
|
||||
|
@ -118,7 +118,7 @@ def generate_l2_config(data):
|
||||
if 'uplinks' in data:
|
||||
uplinks = data['uplinks']
|
||||
data.pop('uplinks')
|
||||
|
||||
|
||||
if 'downlinks' in data:
|
||||
downlinks = data['downlinks']
|
||||
data.pop('downlinks')
|
||||
|
@ -48,7 +48,7 @@ BACKEND_ASIC_SUB_ROLE = 'BackEnd'
|
||||
|
||||
dualtor_cable_types = ["active-active", "active-standby"]
|
||||
|
||||
# Default Virtual Network Index (VNI)
|
||||
# Default Virtual Network Index (VNI)
|
||||
vni_default = 8000
|
||||
|
||||
# Defination of custom acl table types
|
||||
@ -475,7 +475,7 @@ def parse_dpg(dpg, hname):
|
||||
tunnelintfs_qos_remap_config = defaultdict(dict)
|
||||
|
||||
for child in dpg:
|
||||
"""
|
||||
"""
|
||||
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
|
||||
Get the aclintfs node first.
|
||||
@ -499,7 +499,7 @@ def parse_dpg(dpg, hname):
|
||||
if vni_element.text.isdigit():
|
||||
vni = int(vni_element.text)
|
||||
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")))
|
||||
intfs = {}
|
||||
@ -553,7 +553,7 @@ def parse_dpg(dpg, hname):
|
||||
pc_intfs = []
|
||||
pcs = {}
|
||||
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"))):
|
||||
pcintfname = pcintf.find(str(QName(ns, "Name"))).text
|
||||
pcintfmbr = pcintf.find(str(QName(ns, "AttachTo"))).text
|
||||
@ -787,7 +787,7 @@ def parse_dpg(dpg, hname):
|
||||
else:
|
||||
is_bmc_data = True
|
||||
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.
|
||||
# For multi-asic platforms it's possible there is no
|
||||
# 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")))
|
||||
if mg_tunnels is not None:
|
||||
table_key_to_mg_key_map = {"encap_ecn_mode": "EcnEncapsulationMode",
|
||||
"ecn_mode": "EcnDecapsulationMode",
|
||||
"dscp_mode": "DifferentiatedServicesCodePointMode",
|
||||
table_key_to_mg_key_map = {"encap_ecn_mode": "EcnEncapsulationMode",
|
||||
"ecn_mode": "EcnDecapsulationMode",
|
||||
"dscp_mode": "DifferentiatedServicesCodePointMode",
|
||||
"ttl_mode": "TtlMode"}
|
||||
|
||||
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 mg_key in mg_tunnel.attrib:
|
||||
tunnelintfs[tunnel_type][tunnel_name][table_key] = mg_tunnel.attrib[mg_key]
|
||||
|
||||
|
||||
tunnelintfs_qos_remap_config[tunnel_type][tunnel_name] = {
|
||||
"tunnel_type": mg_tunnel.attrib["Type"].upper(),
|
||||
}
|
||||
@ -1209,12 +1209,12 @@ def parse_deviceinfo(meta, hwsku):
|
||||
|
||||
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.
|
||||
def is_ip_prefix_in_key(key):
|
||||
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):
|
||||
chassis_vnet ='VnetFE'
|
||||
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 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": {}"
|
||||
# We only care about the one without IP information
|
||||
if is_ip_prefix_in_key(intf) == True:
|
||||
continue
|
||||
|
||||
continue
|
||||
|
||||
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:
|
||||
# Enslave the interface to a Vnet
|
||||
phyport_intfs[intf] = {'vnet_name': chassis_vnet}
|
||||
|
||||
|
||||
# For each port channel IP interface
|
||||
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": {}"
|
||||
# We only care about the one without IP information
|
||||
if is_ip_prefix_in_key(pc_intf) == True:
|
||||
continue
|
||||
continue
|
||||
|
||||
intf_name = None
|
||||
# Get a physical interface that belongs to this port channel
|
||||
intf_name = None
|
||||
# Get a physical interface that belongs to this port channel
|
||||
for pc_member in pc_members:
|
||||
if pc_member[0] == pc_intf:
|
||||
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
|
||||
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:
|
||||
# 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)
|
||||
|
||||
filter_acls = {}
|
||||
|
||||
|
||||
# If the asic role is BackEnd no ACL Table (Ctrl/Data/Everflow) is binded.
|
||||
# This will be applicable in Multi-NPU Platforms.
|
||||
|
||||
|
||||
if sub_role == BACKEND_ASIC_SUB_ROLE:
|
||||
return filter_acls
|
||||
|
||||
@ -1317,7 +1317,7 @@ def filter_acl_table_bindings(acls, neighbors, port_channels, pc_members, sub_ro
|
||||
|
||||
# List of Backplane ports
|
||||
backplane_port_list = [v for k,v in port_alias_map.items() if v.startswith(backplane_prefix())]
|
||||
|
||||
|
||||
# Get the front panel port channel.
|
||||
for port_channel_intf in port_channels:
|
||||
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:
|
||||
continue
|
||||
front_panel_ports.append(port)
|
||||
|
||||
|
||||
# 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
|
||||
# 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]
|
||||
|
||||
|
||||
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)
|
||||
|
||||
@ -1421,7 +1421,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
|
||||
filename -- minigraph file name
|
||||
platform -- device platform
|
||||
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.
|
||||
"""
|
||||
|
||||
@ -1501,7 +1501,7 @@ def parse_xml(filename, platform=None, port_config_file=None, asic_name=None, hw
|
||||
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)
|
||||
|
||||
|
||||
port_names_map.update(ports)
|
||||
port_alias_map.update(alias_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]))
|
||||
|
||||
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_map = False
|
||||
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:
|
||||
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
|
||||
if sub_role is not None:
|
||||
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_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
|
||||
if port_default_speed == '400000' and (port_png_speed == '100000' or port_png_speed == '40000'):
|
||||
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>
|
||||
<Address>200.200.200.10</Address>
|
||||
<Type>FineGrainedECMPGroupMember</Type>
|
||||
</IPNextHop>
|
||||
</IPNextHop>
|
||||
<IPNextHop>
|
||||
<ElementType>IPNextHop</ElementType>
|
||||
<Name i:nil="true" />
|
||||
@ -481,7 +481,7 @@
|
||||
<AttachTo>etp19</AttachTo>
|
||||
<Address>200:200:200:200::10</Address>
|
||||
<Type>FineGrainedECMPGroupMember</Type>
|
||||
</IPNextHop>
|
||||
</IPNextHop>
|
||||
</IPNextHops>
|
||||
</DeviceDataPlaneInfo>
|
||||
</DpgDec>
|
||||
|
@ -1,11 +1,11 @@
|
||||
{
|
||||
"PORT|Ethernet0": {
|
||||
"lanes": "29,30,31,32",
|
||||
"description": "config_db:switch-01t1:port1",
|
||||
"pfc_asym": "off",
|
||||
"mtu": "9100",
|
||||
"alias": "fortyGigE0/0",
|
||||
"admin_status": "up",
|
||||
"lanes": "29,30,31,32",
|
||||
"description": "config_db:switch-01t1:port1",
|
||||
"pfc_asym": "off",
|
||||
"mtu": "9100",
|
||||
"alias": "fortyGigE0/0",
|
||||
"admin_status": "up",
|
||||
"speed": "10000"
|
||||
},
|
||||
"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
|
||||
Ethernet4 29,30,31,32 Ethernet1/2 1 Eth1-ASIC0 Ext
|
||||
Ethernet8 41,42,43,44 Ethernet1/3 2 Eth2-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-BP4 17,18,19,20 Eth5-ASIC0 1 Eth5-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
|
||||
Ethernet4 29,30,31,32 Ethernet1/2 1 Eth1-ASIC0 Ext
|
||||
Ethernet8 41,42,43,44 Ethernet1/3 2 Eth2-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-BP4 17,18,19,20 Eth5-ASIC0 1 Eth5-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
|
||||
|
@ -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
|
||||
Ethernet4 29,30,31,32 Ethernet1/2 1 Eth1-ASIC0 Ext
|
||||
Ethernet8 41,42,43,44 Ethernet1/3 2 Eth2-ASIC0 Ext
|
||||
|
@ -910,9 +910,9 @@
|
||||
</EthernetInterfaces>
|
||||
<FlowControl>true</FlowControl>
|
||||
<Height>0</Height>
|
||||
<HwSku>Arista-7050-QX-32S</HwSku>
|
||||
<HwSku>Arista-7050-QX-32S</HwSku>
|
||||
<ManagementInterfaces/>
|
||||
</DeviceInfo>
|
||||
</DeviceInfo>
|
||||
</DeviceInfos>
|
||||
<MetadataDeclaration>
|
||||
<Devices xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">
|
||||
|
@ -806,7 +806,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.2/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -836,7 +836,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.3/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::3/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -866,7 +866,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.4/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::4/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -896,7 +896,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.5/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::5/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -926,7 +926,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.6/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::6/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -956,7 +956,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.7/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::7/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -986,7 +986,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.8/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::8/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1016,7 +1016,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.9/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::9/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1046,7 +1046,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.10/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::a/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1076,7 +1076,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.11/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::b/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1106,7 +1106,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.12/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::c/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1136,7 +1136,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.13/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::d/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1166,7 +1166,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.14/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::e/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1196,7 +1196,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.15/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::f/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1226,7 +1226,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.16/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::10/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1256,7 +1256,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.17/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::11/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1286,7 +1286,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.18/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::12/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1316,7 +1316,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.19/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::13/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1346,7 +1346,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.20/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::14/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1376,7 +1376,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.21/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::15/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1406,7 +1406,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.22/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::16/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1436,7 +1436,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.23/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::17/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1466,7 +1466,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.24/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::18/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1496,7 +1496,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.25/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::19/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
|
@ -806,7 +806,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.2/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -836,7 +836,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.3/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::3/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -866,7 +866,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.4/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::4/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -896,7 +896,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.5/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::5/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -926,7 +926,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.6/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::6/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -956,7 +956,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.7/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::7/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -986,7 +986,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.8/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::8/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1016,7 +1016,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.9/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::9/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1046,7 +1046,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.10/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::a/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1076,7 +1076,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.11/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::b/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1106,7 +1106,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.12/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::c/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1136,7 +1136,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.13/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::d/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1166,7 +1166,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.14/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::e/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1196,7 +1196,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.15/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::f/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1226,7 +1226,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.16/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::10/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1256,7 +1256,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.17/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::11/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1286,7 +1286,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.18/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::12/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1316,7 +1316,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.19/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::13/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1346,7 +1346,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.20/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::14/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1376,7 +1376,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.21/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::15/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1406,7 +1406,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.22/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::16/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1436,7 +1436,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.23/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::17/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1466,7 +1466,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.24/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::18/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1496,7 +1496,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.25/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::19/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
|
@ -1254,7 +1254,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.2/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1284,7 +1284,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.3/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::3/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1314,7 +1314,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.4/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::4/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1344,7 +1344,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.5/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::5/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1374,7 +1374,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.6/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::6/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1404,7 +1404,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.7/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::7/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1434,7 +1434,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.8/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::8/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1464,7 +1464,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.9/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::9/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1494,7 +1494,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.10/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::a/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1524,7 +1524,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.11/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::b/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1554,7 +1554,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.12/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::c/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1584,7 +1584,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.13/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::d/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1614,7 +1614,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.14/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::e/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1644,7 +1644,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.15/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::f/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1674,7 +1674,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.16/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::10/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1704,7 +1704,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.17/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::11/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1734,7 +1734,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.18/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::12/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1764,7 +1764,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.19/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::13/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1794,7 +1794,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.20/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::14/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1824,7 +1824,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.21/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::15/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1854,7 +1854,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.22/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::16/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1884,7 +1884,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.23/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::17/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1914,7 +1914,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.24/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::18/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1944,7 +1944,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.25/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::19/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1974,7 +1974,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.26/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::1a/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2004,7 +2004,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.27/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::1b/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2034,7 +2034,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.28/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::1c/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2064,7 +2064,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.29/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::1d/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2094,7 +2094,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.30/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::1e/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2124,7 +2124,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.31/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::1f/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2154,7 +2154,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.32/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::20/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2184,7 +2184,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.33/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::21/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2214,7 +2214,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.34/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::22/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2244,7 +2244,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.35/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::23/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2274,7 +2274,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.36/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::24/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2304,7 +2304,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.37/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::25/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2334,7 +2334,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.38/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::26/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2364,7 +2364,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.39/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::27/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2394,7 +2394,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.40/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::28/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2424,7 +2424,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.41/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::29/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2454,7 +2454,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.42/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2a/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2484,7 +2484,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.43/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2b/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2514,7 +2514,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.44/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2c/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2544,7 +2544,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.45/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2d/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2574,7 +2574,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.46/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2e/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2604,7 +2604,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.47/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2f/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2634,7 +2634,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.48/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::30/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2664,7 +2664,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.49/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::31/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2694,7 +2694,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.50/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::32/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2724,7 +2724,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.51/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::33/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2754,7 +2754,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.52/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::34/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2784,7 +2784,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.53/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::35/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2814,7 +2814,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.54/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::36/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2844,7 +2844,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.55/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::37/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2874,7 +2874,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.56/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::38/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2904,7 +2904,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.57/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::39/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
|
@ -1254,7 +1254,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.2/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1284,7 +1284,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.3/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::3/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1314,7 +1314,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.4/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::4/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1344,7 +1344,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.5/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::5/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1374,7 +1374,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.6/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::6/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1404,7 +1404,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.7/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::7/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1434,7 +1434,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.8/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::8/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1464,7 +1464,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.9/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::9/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1494,7 +1494,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.10/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::a/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1524,7 +1524,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.11/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::b/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1554,7 +1554,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.12/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::c/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1584,7 +1584,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.13/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::d/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1614,7 +1614,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.14/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::e/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1644,7 +1644,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.15/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::f/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1674,7 +1674,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.16/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::10/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1704,7 +1704,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.17/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::11/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1734,7 +1734,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.18/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::12/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1764,7 +1764,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.19/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::13/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1794,7 +1794,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.20/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::14/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1824,7 +1824,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.21/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::15/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1854,7 +1854,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.22/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::16/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1884,7 +1884,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.23/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::17/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1914,7 +1914,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.24/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::18/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1944,7 +1944,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.25/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::19/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -1974,7 +1974,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.26/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::1a/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2004,7 +2004,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.27/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::1b/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2034,7 +2034,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.28/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::1c/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2064,7 +2064,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.29/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::1d/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2094,7 +2094,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.30/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::1e/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2124,7 +2124,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.31/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::1f/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2154,7 +2154,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.32/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::20/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2184,7 +2184,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.33/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::21/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2214,7 +2214,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.34/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::22/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2244,7 +2244,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.35/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::23/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2274,7 +2274,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.36/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::24/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2304,7 +2304,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.37/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::25/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2334,7 +2334,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.38/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::26/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2364,7 +2364,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.39/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::27/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2394,7 +2394,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.40/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::28/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2424,7 +2424,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.41/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::29/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2454,7 +2454,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.42/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2a/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2484,7 +2484,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.43/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2b/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2514,7 +2514,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.44/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2c/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2544,7 +2544,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.45/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2d/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2574,7 +2574,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.46/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2e/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2604,7 +2604,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.47/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::2f/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2634,7 +2634,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.48/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::30/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2664,7 +2664,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.49/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::31/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2694,7 +2694,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.50/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::32/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2724,7 +2724,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.51/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::33/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2754,7 +2754,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.52/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::34/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2784,7 +2784,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.53/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::35/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2814,7 +2814,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.54/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::36/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2844,7 +2844,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.55/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::37/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2874,7 +2874,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.56/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::38/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
@ -2904,7 +2904,7 @@
|
||||
<ElementType>Server</ElementType>
|
||||
<Address xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>192.168.0.57/26</d5p1:IPPrefix>
|
||||
</Address>
|
||||
</Address>
|
||||
<AddressV6 xmlns:d5p1="Microsoft.Search.Autopilot.NetMux">
|
||||
<d5p1:IPPrefix>fc02:1000::39/96</d5p1:IPPrefix>
|
||||
</AddressV6>
|
||||
|
@ -914,8 +914,8 @@
|
||||
<HoldTime>10</HoldTime>
|
||||
<KeepAliveTime>3</KeepAliveTime>
|
||||
</BGPSession>
|
||||
|
||||
|
||||
|
||||
|
||||
<BGPSession>
|
||||
<StartRouter>ASIC0</StartRouter>
|
||||
<EndRouter>ASIC1</EndRouter>
|
||||
|
@ -914,8 +914,8 @@
|
||||
<HoldTime>10</HoldTime>
|
||||
<KeepAliveTime>3</KeepAliveTime>
|
||||
</BGPSession>
|
||||
|
||||
|
||||
|
||||
|
||||
<BGPSession>
|
||||
<StartRouter>ASIC0</StartRouter>
|
||||
<EndRouter>str3-7800-lc2-1</EndRouter>
|
||||
|
@ -1,57 +1,57 @@
|
||||
# name lanes alias index speed
|
||||
Ethernet0 2304,2305,2306,2307 etp0a 0 100000
|
||||
Ethernet4 2308,2309,2310,2311 etp0b 0 100000
|
||||
Ethernet8 2320,2321,2322,2323 etp1a 1 100000
|
||||
Ethernet12 2324,2325,2326,2327 etp1b 1 100000
|
||||
Ethernet16 2312,2313,2314,2315 etp2a 2 100000
|
||||
Ethernet20 2316,2317,2318,2319 etp2b 2 100000
|
||||
Ethernet24 2056,2057,2058,2059 etp3a 3 100000
|
||||
Ethernet28 2060,2061,2062,2063 etp3b 3 100000
|
||||
Ethernet32 1792,1793,1794,1795 etp4a 4 100000
|
||||
Ethernet36 1796,1797,1798,1799 etp4b 4 100000
|
||||
Ethernet40 2048,2049,2050,2051 etp5a 5 100000
|
||||
Ethernet44 2052,2053,2054,2055 etp5b 5 100000
|
||||
Ethernet48 2560,2561,2562,2563 etp6a 6 100000
|
||||
Ethernet52 2564,2565,2566,2567 etp6b 6 100000
|
||||
Ethernet56 2824,2825,2826,2827 etp7a 7 100000
|
||||
Ethernet60 2828,2829,2830,2831 etp7b 7 100000
|
||||
Ethernet64 2832,2833,2834,2835 etp8a 8 100000
|
||||
Ethernet68 2836,2837,2838,2839 etp8b 8 100000
|
||||
Ethernet72 2816,2817,2818,2819 etp9a 9 100000
|
||||
Ethernet76 2820,2821,2822,2823 etp9b 9 100000
|
||||
Ethernet80 2568,2569,2570,2571 etp10a 10 100000
|
||||
Ethernet84 2572,2573,2574,2575 etp10b 10 100000
|
||||
Ethernet88 2576,2577,2578,2579 etp11a 11 100000
|
||||
Ethernet92 2580,2581,2582,2583 etp11b 11 100000
|
||||
Ethernet96 1536,1537,1538,1539,1540,1541,1542,1543 etp12 12 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
|
||||
Ethernet120 1544,1545,1546,1547,1548,1549,1550,1551 etp15 15 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
|
||||
Ethernet144 1280,1281,1282,1283,1284,1285,1286,1287 etp18 18 400000
|
||||
Ethernet152 1032,1033,1034,1035,1036,1037,1038,1039 etp19 19 400000
|
||||
Ethernet160 264,265,266,267 etp20a 20 100000
|
||||
Ethernet164 268,269,270,271 etp20b 20 100000
|
||||
Ethernet168 272,273,274,275 etp21a 21 100000
|
||||
Ethernet172 276,277,278,279 etp21b 21 100000
|
||||
Ethernet176 16,17,18,19 etp22a 22 100000
|
||||
Ethernet180 20,21,22,23 etp22b 22 100000
|
||||
Ethernet184 0,1,2,3 etp23a 23 100000
|
||||
Ethernet188 4,5,6,7 etp23b 23 100000
|
||||
Ethernet192 256,257,258,259 etp24a 24 100000
|
||||
Ethernet196 260,261,262,263 etp24b 24 100000
|
||||
Ethernet200 8,9,10,11 etp25a 25 100000
|
||||
Ethernet204 12,13,14,15 etp25b 25 100000
|
||||
Ethernet208 1024,1025,1026,1027 etp26a 26 100000
|
||||
Ethernet212 1028,1029,1030,1031 etp26b 26 100000
|
||||
Ethernet216 768,769,770,771 etp27a 27 100000
|
||||
Ethernet220 772,773,774,775 etp27b 27 100000
|
||||
Ethernet224 524,525,526,527 etp28a 28 100000
|
||||
Ethernet228 520,521,522,523 etp28b 28 100000
|
||||
Ethernet232 776,777,778,779 etp29a 29 100000
|
||||
Ethernet236 780,781,782,783 etp29b 29 100000
|
||||
Ethernet240 516,517,518,519 etp30a 30 100000
|
||||
Ethernet244 512,513,514,515 etp30b 30 100000
|
||||
Ethernet248 528,529,530,531 etp31a 31 100000
|
||||
# name lanes alias index speed
|
||||
Ethernet0 2304,2305,2306,2307 etp0a 0 100000
|
||||
Ethernet4 2308,2309,2310,2311 etp0b 0 100000
|
||||
Ethernet8 2320,2321,2322,2323 etp1a 1 100000
|
||||
Ethernet12 2324,2325,2326,2327 etp1b 1 100000
|
||||
Ethernet16 2312,2313,2314,2315 etp2a 2 100000
|
||||
Ethernet20 2316,2317,2318,2319 etp2b 2 100000
|
||||
Ethernet24 2056,2057,2058,2059 etp3a 3 100000
|
||||
Ethernet28 2060,2061,2062,2063 etp3b 3 100000
|
||||
Ethernet32 1792,1793,1794,1795 etp4a 4 100000
|
||||
Ethernet36 1796,1797,1798,1799 etp4b 4 100000
|
||||
Ethernet40 2048,2049,2050,2051 etp5a 5 100000
|
||||
Ethernet44 2052,2053,2054,2055 etp5b 5 100000
|
||||
Ethernet48 2560,2561,2562,2563 etp6a 6 100000
|
||||
Ethernet52 2564,2565,2566,2567 etp6b 6 100000
|
||||
Ethernet56 2824,2825,2826,2827 etp7a 7 100000
|
||||
Ethernet60 2828,2829,2830,2831 etp7b 7 100000
|
||||
Ethernet64 2832,2833,2834,2835 etp8a 8 100000
|
||||
Ethernet68 2836,2837,2838,2839 etp8b 8 100000
|
||||
Ethernet72 2816,2817,2818,2819 etp9a 9 100000
|
||||
Ethernet76 2820,2821,2822,2823 etp9b 9 100000
|
||||
Ethernet80 2568,2569,2570,2571 etp10a 10 100000
|
||||
Ethernet84 2572,2573,2574,2575 etp10b 10 100000
|
||||
Ethernet88 2576,2577,2578,2579 etp11a 11 100000
|
||||
Ethernet92 2580,2581,2582,2583 etp11b 11 100000
|
||||
Ethernet96 1536,1537,1538,1539,1540,1541,1542,1543 etp12 12 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
|
||||
Ethernet120 1544,1545,1546,1547,1548,1549,1550,1551 etp15 15 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
|
||||
Ethernet144 1280,1281,1282,1283,1284,1285,1286,1287 etp18 18 400000
|
||||
Ethernet152 1032,1033,1034,1035,1036,1037,1038,1039 etp19 19 400000
|
||||
Ethernet160 264,265,266,267 etp20a 20 100000
|
||||
Ethernet164 268,269,270,271 etp20b 20 100000
|
||||
Ethernet168 272,273,274,275 etp21a 21 100000
|
||||
Ethernet172 276,277,278,279 etp21b 21 100000
|
||||
Ethernet176 16,17,18,19 etp22a 22 100000
|
||||
Ethernet180 20,21,22,23 etp22b 22 100000
|
||||
Ethernet184 0,1,2,3 etp23a 23 100000
|
||||
Ethernet188 4,5,6,7 etp23b 23 100000
|
||||
Ethernet192 256,257,258,259 etp24a 24 100000
|
||||
Ethernet196 260,261,262,263 etp24b 24 100000
|
||||
Ethernet200 8,9,10,11 etp25a 25 100000
|
||||
Ethernet204 12,13,14,15 etp25b 25 100000
|
||||
Ethernet208 1024,1025,1026,1027 etp26a 26 100000
|
||||
Ethernet212 1028,1029,1030,1031 etp26b 26 100000
|
||||
Ethernet216 768,769,770,771 etp27a 27 100000
|
||||
Ethernet220 772,773,774,775 etp27b 27 100000
|
||||
Ethernet224 524,525,526,527 etp28a 28 100000
|
||||
Ethernet228 520,521,522,523 etp28b 28 100000
|
||||
Ethernet232 776,777,778,779 etp29a 29 100000
|
||||
Ethernet236 780,781,782,783 etp29b 29 100000
|
||||
Ethernet240 516,517,518,519 etp30a 30 100000
|
||||
Ethernet244 512,513,514,515 etp30b 30 100000
|
||||
Ethernet248 528,529,530,531 etp31a 31 100000
|
||||
Ethernet252 532,533,534,535 etp31b 31 100000
|
||||
|
@ -725,7 +725,7 @@
|
||||
</a:DeviceMetadata>
|
||||
</Devices>
|
||||
<Properties xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"/>
|
||||
</MetadataDeclaration>
|
||||
</MetadataDeclaration>
|
||||
<LinkMetadataDeclaration>
|
||||
<Link xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">
|
||||
<a:LinkMetadata>
|
||||
|
@ -914,8 +914,8 @@
|
||||
<HoldTime>10</HoldTime>
|
||||
<KeepAliveTime>3</KeepAliveTime>
|
||||
</BGPSession>
|
||||
|
||||
|
||||
|
||||
|
||||
<BGPSession>
|
||||
<StartRouter>ASIC0</StartRouter>
|
||||
<EndRouter>ASIC1</EndRouter>
|
||||
|
@ -154,8 +154,8 @@
|
||||
<HoldTime>10</HoldTime>
|
||||
<KeepAliveTime>3</KeepAliveTime>
|
||||
</BGPSession>
|
||||
|
||||
|
||||
|
||||
|
||||
<BGPSession>
|
||||
<StartRouter>ASIC0</StartRouter>
|
||||
<EndRouter>ASIC1</EndRouter>
|
||||
|
@ -15,7 +15,7 @@
|
||||
"AZURE": {
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "1",
|
||||
"2": "1",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
@ -26,7 +26,7 @@
|
||||
"AZURE_UPLINK": {
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
|
@ -289,7 +289,7 @@
|
||||
"PORT_QOS_MAP": {
|
||||
|
||||
"Ethernet2": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -298,7 +298,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet4": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -307,7 +307,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet6": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -316,7 +316,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet8": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -325,7 +325,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet10": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -334,7 +334,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet12": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -343,7 +343,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet14": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -352,7 +352,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet16": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -361,7 +361,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet18": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -370,7 +370,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet20": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -379,7 +379,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet22": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -388,7 +388,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet24": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -397,7 +397,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet26": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -406,7 +406,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet28": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -415,7 +415,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet30": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -424,7 +424,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet32": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -433,7 +433,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet34": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -442,7 +442,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet36": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -451,7 +451,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet38": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
@ -460,7 +460,7 @@
|
||||
"pfcwd_sw_enable" : "3,4"
|
||||
},
|
||||
"Ethernet48": {
|
||||
|
||||
|
||||
"dscp_to_tc_map" : "AZURE",
|
||||
"tc_to_queue_map" : "AZURE",
|
||||
"tc_to_pg_map" : "AZURE",
|
||||
|
@ -379,7 +379,7 @@
|
||||
<DeviceLocation i:nil="true"/>
|
||||
<ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux">
|
||||
<a:IPPrefix>10.7.0.196/26</a:IPPrefix>
|
||||
</ManagementAddress>
|
||||
</ManagementAddress>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
</Device>
|
||||
<Device i:type="SmartCable">
|
||||
|
@ -314,7 +314,7 @@
|
||||
<DeviceLocation i:nil="true"/>
|
||||
<ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux">
|
||||
<a:IPPrefix>10.7.0.196/26</a:IPPrefix>
|
||||
</ManagementAddress>
|
||||
</ManagementAddress>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
</Device>
|
||||
<Device i:type="Server">
|
||||
|
@ -314,7 +314,7 @@
|
||||
<DeviceLocation i:nil="true"/>
|
||||
<ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux">
|
||||
<a:IPPrefix>10.7.0.196/26</a:IPPrefix>
|
||||
</ManagementAddress>
|
||||
</ManagementAddress>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
</Device>
|
||||
<Device i:type="Server">
|
||||
|
@ -314,7 +314,7 @@
|
||||
<DeviceLocation i:nil="true"/>
|
||||
<ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux">
|
||||
<a:IPPrefix>10.7.0.196/26</a:IPPrefix>
|
||||
</ManagementAddress>
|
||||
</ManagementAddress>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
</Device>
|
||||
<Device i:type="Server">
|
||||
|
@ -359,7 +359,7 @@
|
||||
<DeviceLocation i:nil="true"/>
|
||||
<ManagementAddress xmlns:a="Microsoft.Search.Autopilot.NetMux">
|
||||
<a:IPPrefix>10.7.0.196/26</a:IPPrefix>
|
||||
</ManagementAddress>
|
||||
</ManagementAddress>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
</Device>
|
||||
<Device i:type="SmartCable">
|
||||
|
@ -109,7 +109,7 @@
|
||||
<Vrf i:nil="true"/>
|
||||
</BGPPeer>
|
||||
<BGPPeer>
|
||||
<Address>10.1.0.32</Address>
|
||||
<Address>10.1.0.32</Address>
|
||||
<a:Name>BGPSLBPassive</a:Name>
|
||||
<a:PeersRange>10.10.10.10/26;100.100.100.100/26</a:PeersRange>
|
||||
</BGPPeer>
|
||||
|
@ -109,7 +109,7 @@
|
||||
<Vrf i:nil="true"/>
|
||||
</BGPPeer>
|
||||
<BGPPeer>
|
||||
<Address>10.1.0.32</Address>
|
||||
<Address>10.1.0.32</Address>
|
||||
<a:Name>BGPSLBPassive</a:Name>
|
||||
<a:PeersRange>10.10.10.10/26;100.100.100.100/26</a:PeersRange>
|
||||
</BGPPeer>
|
||||
|
@ -2133,9 +2133,9 @@
|
||||
</EthernetInterfaces>
|
||||
<FlowControl>true</FlowControl>
|
||||
<Height>0</Height>
|
||||
<HwSku>ACS-MSN2700</HwSku>
|
||||
<HwSku>ACS-MSN2700</HwSku>
|
||||
<ManagementInterfaces/>
|
||||
</DeviceInfo>
|
||||
</DeviceInfo>
|
||||
</DeviceInfos>
|
||||
<MetadataDeclaration>
|
||||
<Devices xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">
|
||||
|
@ -127,7 +127,7 @@
|
||||
<Name>PortChannel8</Name>
|
||||
<AttachTo>Ethernet16;Ethernet20</AttachTo>
|
||||
<SubInterface/>
|
||||
</PortChannel>
|
||||
</PortChannel>
|
||||
</PortChannelInterfaces>
|
||||
<VlanInterfaces/>
|
||||
<IPInterfaces>
|
||||
@ -201,11 +201,11 @@
|
||||
<Devices>
|
||||
<Device i:type="SpineChassisFrontendRouter">
|
||||
<Hostname>SpineFront01</Hostname>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
</Device>
|
||||
<Device i:type="SpineChassisFrontendRouter">
|
||||
<Hostname>SpineFront02</Hostname>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
</Device>
|
||||
<Device i:type="LeafRouter">
|
||||
<Hostname>Leaf01</Hostname>
|
||||
@ -611,9 +611,9 @@
|
||||
</EthernetInterfaces>
|
||||
<FlowControl>false</FlowControl>
|
||||
<Height>0</Height>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
<ManagementInterfaces/>
|
||||
</DeviceInfo>
|
||||
</DeviceInfo>
|
||||
</DeviceInfos>
|
||||
<MetadataDeclaration>
|
||||
<Devices xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">
|
||||
|
@ -165,11 +165,11 @@
|
||||
<Devices>
|
||||
<Device i:type="SpineChassisFrontendRouter">
|
||||
<Hostname>SpineFront01</Hostname>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
</Device>
|
||||
<Device i:type="SpineChassisFrontendRouter">
|
||||
<Hostname>SpineFront02</Hostname>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
</Device>
|
||||
<Device i:type="LeafRouter">
|
||||
<Hostname>Leaf01</Hostname>
|
||||
@ -575,9 +575,9 @@
|
||||
</EthernetInterfaces>
|
||||
<FlowControl>false</FlowControl>
|
||||
<Height>0</Height>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
<ManagementInterfaces/>
|
||||
</DeviceInfo>
|
||||
</DeviceInfo>
|
||||
</DeviceInfos>
|
||||
<MetadataDeclaration>
|
||||
<Devices xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">
|
||||
|
@ -164,11 +164,11 @@
|
||||
<Devices>
|
||||
<Device i:type="SpineChassisFrontendRouter">
|
||||
<Hostname>SpineFront01</Hostname>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
</Device>
|
||||
<Device i:type="SpineChassisFrontendRouter">
|
||||
<Hostname>SpineFront02</Hostname>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
</Device>
|
||||
<Device i:type="LeafRouter">
|
||||
<Hostname>Leaf01</Hostname>
|
||||
@ -574,9 +574,9 @@
|
||||
</EthernetInterfaces>
|
||||
<FlowControl>false</FlowControl>
|
||||
<Height>0</Height>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
<HwSku>Force10-S6000</HwSku>
|
||||
<ManagementInterfaces/>
|
||||
</DeviceInfo>
|
||||
</DeviceInfo>
|
||||
</DeviceInfos>
|
||||
<MetadataDeclaration>
|
||||
<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']
|
||||
output = self.run_script(argument)
|
||||
print(output.strip())
|
||||
self.assertEqual(utils.to_dict(output.strip()),
|
||||
self.assertEqual(utils.to_dict(output.strip()),
|
||||
utils.to_dict(
|
||||
"{'fgnhg_v4': {'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(
|
||||
"{'Ethernet124': {'name': 'ARISTA04T1', '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'}, "
|
||||
"'Ethernet100': {'name': 'Servers100', 'port': 'eth0'}, "
|
||||
"'Ethernet112': {'name': 'ARISTA01T1', 'port': 'Ethernet1/1'}}")
|
||||
@ -619,7 +619,7 @@ class TestCfgGen(TestCase):
|
||||
)
|
||||
|
||||
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"]
|
||||
output = self.run_script(argument)
|
||||
|
||||
@ -982,7 +982,7 @@ class TestCfgGen(TestCase):
|
||||
"'Vlan2000': {'dhcpv6_servers': ['fc02:2000::3', 'fc02:2000::4']}}"
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
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\']"]
|
||||
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'}, "
|
||||
"'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'}, "
|
||||
"'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'}}"
|
||||
)
|
||||
)
|
||||
|
@ -227,13 +227,13 @@ class TestCfgGenCaseInsensitive(TestCase):
|
||||
'hwsku': 'server-sku',
|
||||
'type': 'Server'
|
||||
},
|
||||
'switch-01t1': {
|
||||
'switch-01t1': {
|
||||
'lo_addr': '10.1.0.186/32',
|
||||
'deployment_id': '2',
|
||||
'hwsku': 'Force10-S6000',
|
||||
'type': 'LeafRouter',
|
||||
'mgmt_addr': '10.7.0.196/26'
|
||||
},
|
||||
'mgmt_addr': '10.7.0.196/26'
|
||||
},
|
||||
'server1-SC': {
|
||||
'lo_addr_v6': '::/0',
|
||||
'mgmt_addr': '0.0.0.0/0',
|
||||
@ -299,7 +299,7 @@ class TestCfgGenCaseInsensitive(TestCase):
|
||||
'address_ipv4': "25.1.1.10"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
output = self.run_script(argument)
|
||||
self.assertEqual(
|
||||
utils.to_dict(output.strip()),
|
||||
@ -308,7 +308,7 @@ class TestCfgGenCaseInsensitive(TestCase):
|
||||
|
||||
def test_mux_cable_parsing(self):
|
||||
result = minigraph.parse_xml(self.sample_graph, port_config_file=self.port_config)
|
||||
|
||||
|
||||
expected_mux_cable_ports = ["Ethernet4", "Ethernet8"]
|
||||
port_table = result['PORT']
|
||||
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)
|
||||
else:
|
||||
output = subprocess.check_output(["sed", "-i", 's/%s/%s/g' % (BACKEND_TOR_ROUTER, TOR_ROUTER), graph_file])
|
||||
|
||||
|
||||
def test_minigraph_tunnel_table(self):
|
||||
argument = ['-m', self.sample_graph, '-p', self.port_config, '-v', "TUNNEL"]
|
||||
expected_tunnel = {
|
||||
@ -436,7 +436,7 @@ class TestCfgGenCaseInsensitive(TestCase):
|
||||
utils.to_dict(output.strip()),
|
||||
expected_table
|
||||
)
|
||||
|
||||
|
||||
def test_dhcp_table(self):
|
||||
argument = ['-m', self.sample_graph, '-p', self.port_config, '-v', "DHCP_RELAY"]
|
||||
expected = {
|
||||
@ -458,12 +458,12 @@ class TestCfgGenCaseInsensitive(TestCase):
|
||||
utils.to_dict(output.strip()),
|
||||
expected
|
||||
)
|
||||
|
||||
|
||||
def test_minigraph_mirror_dscp(self):
|
||||
result = minigraph.parse_xml(self.sample_graph, port_config_file=self.port_config)
|
||||
self.assertTrue('EVERFLOW_DSCP' in result['ACL_TABLE'])
|
||||
everflow_dscp_entry = result['ACL_TABLE']['EVERFLOW_DSCP']
|
||||
|
||||
|
||||
self.assertEqual(everflow_dscp_entry['type'], 'MIRROR_DSCP')
|
||||
self.assertEqual(everflow_dscp_entry['stage'], 'ingress')
|
||||
expected_ports = ['PortChannel01', 'Ethernet12', 'Ethernet8', 'Ethernet0']
|
||||
|
@ -1,21 +1,21 @@
|
||||
# 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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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-IB0 222 Recirc0/1 38 Inb 400000 Rcy1-ASIC0
|
||||
# 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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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-IB0 222 Recirc0/1 38 Inb 400000 Rcy1-ASIC0
|
||||
|
@ -914,8 +914,8 @@
|
||||
<HoldTime>10</HoldTime>
|
||||
<KeepAliveTime>3</KeepAliveTime>
|
||||
</BGPSession>
|
||||
|
||||
|
||||
|
||||
|
||||
<BGPSession>
|
||||
<StartRouter>ASIC0</StartRouter>
|
||||
<EndRouter>ASIC1</EndRouter>
|
||||
|
@ -98,7 +98,7 @@ def read_data(is_config, feature, fields):
|
||||
|
||||
def read_config(feature):
|
||||
""" 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")])
|
||||
|
||||
return (set_owner, not no_fallback, state)
|
||||
@ -143,13 +143,13 @@ def container_version(feature):
|
||||
for env in envs:
|
||||
if env.startswith("IMAGE_VERSION="):
|
||||
version = env.split('=')[1]
|
||||
|
||||
|
||||
syslog.syslog(syslog.LOG_INFO, "docker get image version for {}".format(feature))
|
||||
|
||||
|
||||
except (docker.errors.NotFound, docker.errors.APIError) as err:
|
||||
syslog.syslog(syslog.LOG_ERR, "docker get image version for {} failed with {}".
|
||||
format(feature, str(err)))
|
||||
|
||||
|
||||
return version
|
||||
|
||||
|
||||
@ -164,11 +164,11 @@ def set_label(feature, create):
|
||||
|
||||
# redundant set (data already exist) can still raise subscriber
|
||||
# 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.
|
||||
#
|
||||
tbl.set(KUBE_LABEL_SET_KEY, [(fld, "true" if create else "false")])
|
||||
|
||||
|
||||
|
||||
def update_data(feature, data):
|
||||
if remote_ctr_enabled:
|
||||
@ -180,13 +180,13 @@ def update_data(feature, data):
|
||||
def container_id(feature):
|
||||
"""
|
||||
Return the container ID for the feature.
|
||||
|
||||
|
||||
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
|
||||
|
||||
:param feature: Name of the feature to start.
|
||||
|
||||
|
||||
"""
|
||||
init()
|
||||
|
||||
@ -202,19 +202,19 @@ def container_id(feature):
|
||||
def container_start(feature, **kwargs):
|
||||
"""
|
||||
Starts a container for given feature.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
If feature's set_owner is local, invoke docker start.
|
||||
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
|
||||
the local image using docker, which will run until kube
|
||||
deployment occurs.
|
||||
|
||||
:param feature: Name of the feature to start.
|
||||
|
||||
|
||||
"""
|
||||
START_LOCAL = 1
|
||||
START_KUBE = 2
|
||||
@ -279,7 +279,7 @@ def container_stop(feature, **kwargs):
|
||||
Marks the feature state down in STATE-DB FEATURE table.
|
||||
|
||||
:param feature: Name of the feature to stop.
|
||||
|
||||
|
||||
"""
|
||||
debug_msg("BEGIN")
|
||||
|
||||
@ -336,7 +336,7 @@ def container_kill(feature, **kwargs):
|
||||
Instruct/ensure kube terminates, by removing label.
|
||||
|
||||
:param feature: Name of the feature to kill.
|
||||
|
||||
|
||||
"""
|
||||
debug_msg("BEGIN")
|
||||
|
||||
@ -383,7 +383,7 @@ def container_wait(feature, **kwargs):
|
||||
table and exit.
|
||||
|
||||
:param feature: Name of the feature to wait.
|
||||
|
||||
|
||||
"""
|
||||
debug_msg("BEGIN")
|
||||
|
||||
|
@ -70,7 +70,7 @@ def read_data(feature):
|
||||
|
||||
def read_fields(state_db, feature, fields):
|
||||
# Read directly from STATE-DB, given fields
|
||||
# for given feature.
|
||||
# for given feature.
|
||||
# Fields is a list of tuples (<field name>, <default val>)
|
||||
#
|
||||
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.
|
||||
# Update is done in state-db.
|
||||
# ctrmgrd sets it with kube API server per reaschability
|
||||
|
||||
|
||||
tbl = swsscommon.Table(state_db, KUBE_LABEL_TABLE)
|
||||
name = _get_local_version_key(feature)
|
||||
tbl.set(KUBE_LABEL_SET_KEY, [(name, version)])
|
||||
|
||||
|
||||
|
||||
def update_data(state_db, feature, 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.
|
||||
|
||||
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 = {
|
||||
@ -197,7 +197,7 @@ def do_freeze(feat, m):
|
||||
if UNIT_TESTING:
|
||||
break
|
||||
time.sleep(60)
|
||||
|
||||
|
||||
|
||||
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
|
||||
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
|
||||
to enable container start the main application. Else it proceeds to
|
||||
@ -245,7 +245,7 @@ def container_up(feature, owner, version):
|
||||
else:
|
||||
debug_msg("{}: Skip remote_state({}) update".format(feature, mode))
|
||||
|
||||
|
||||
|
||||
i = 0
|
||||
while (mode != "ready"):
|
||||
if (i % 10) == 0:
|
||||
@ -253,7 +253,7 @@ def container_up(feature, owner, version):
|
||||
i += 1
|
||||
|
||||
time.sleep(2)
|
||||
mode, db_version = read_fields(state_db,
|
||||
mode, db_version = read_fields(state_db,
|
||||
feature, [(REMOTE_STATE, "none"), (VERSION, "")])
|
||||
if version != db_version:
|
||||
# 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("-o", "--owner", choices=["local", "kube"], required=True)
|
||||
parser.add_argument("-v", "--version", required=True)
|
||||
|
||||
|
||||
args = parser.parse_args()
|
||||
container_up(args.feature, args.owner, args.version)
|
||||
|
||||
|
@ -12,7 +12,7 @@ UNIT_TESTING = 0
|
||||
# NOTE:
|
||||
# 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
|
||||
# "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".
|
||||
# As we can't use two modes and using non-default could make any debugging effort
|
||||
# very tough.
|
||||
|
@ -194,7 +194,7 @@ class MainServer:
|
||||
|
||||
|
||||
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
|
||||
"""
|
||||
self.timer_handlers[ts].append((handler, args))
|
||||
@ -232,7 +232,7 @@ class MainServer:
|
||||
|
||||
|
||||
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
|
||||
"""
|
||||
conn = self.db_connectors[db_name]
|
||||
@ -459,7 +459,7 @@ class RemoteServerHandler:
|
||||
# Handle Set_owner change:
|
||||
# restart service and/or label add/drop
|
||||
#
|
||||
# Handle remote_state change:
|
||||
# Handle remote_state change:
|
||||
# When pending, trigger restart
|
||||
#
|
||||
class FeatureTransitionHandler:
|
||||
@ -526,10 +526,10 @@ class FeatureTransitionHandler:
|
||||
log_debug("No change in feat={} set_owner={}. Bail out.".format(
|
||||
key, set_owner))
|
||||
return
|
||||
|
||||
|
||||
if key in self.st_data:
|
||||
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_REMOTE_STATE])
|
||||
|
||||
@ -557,7 +557,7 @@ class FeatureTransitionHandler:
|
||||
start_time = datetime.datetime.now() + datetime.timedelta(
|
||||
seconds=remote_ctr_config[TAG_IMAGE_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_VER]))
|
||||
|
||||
@ -578,7 +578,7 @@ class FeatureTransitionHandler:
|
||||
self.st_data[key][ST_FEAT_OWNER],
|
||||
remote_state)
|
||||
return
|
||||
|
||||
|
||||
def do_tag_latest(self, feat, docker_id, image_ver):
|
||||
ret = kube_commands.tag_latest(feat, docker_id, image_ver)
|
||||
if ret != 0:
|
||||
|
@ -103,7 +103,7 @@ def kube_read_labels():
|
||||
|
||||
return (ret, labels)
|
||||
|
||||
|
||||
|
||||
def kube_write_labels(set_labels):
|
||||
""" Set given set_labels.
|
||||
"""
|
||||
@ -147,7 +147,7 @@ def kube_write_labels(set_labels):
|
||||
|
||||
return ret
|
||||
|
||||
|
||||
|
||||
def func_get_labels(args):
|
||||
""" args parser default function for get labels"""
|
||||
ret, node_labels = kube_read_labels()
|
||||
@ -157,7 +157,7 @@ def func_get_labels(args):
|
||||
|
||||
log_debug(json.dumps(node_labels, indent=4))
|
||||
return 0
|
||||
|
||||
|
||||
|
||||
def is_connected(server=""):
|
||||
""" Check if we are currently connected """
|
||||
@ -218,7 +218,7 @@ def _download_file(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
|
||||
"""
|
||||
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))
|
||||
return (ret, out, err)
|
||||
|
||||
|
||||
|
||||
def kube_reset_master(force):
|
||||
err = ""
|
||||
@ -440,7 +440,7 @@ def _do_tag(docker_id, image_ver):
|
||||
else:
|
||||
out = "New version {} is not running.".format(image_ver)
|
||||
ret = -1
|
||||
|
||||
|
||||
return (ret, out, err)
|
||||
|
||||
def _remove_container(feat):
|
||||
@ -465,7 +465,7 @@ def _remove_container(feat):
|
||||
else:
|
||||
err = "Failed to docker inspect {} |jq -r .[].State.Running. Err: {}".format(feat, err)
|
||||
ret = 1
|
||||
|
||||
|
||||
return (ret, out, err)
|
||||
|
||||
def tag_latest(feat, docker_id, image_ver):
|
||||
@ -519,10 +519,10 @@ def _do_clean(feat, current_version, last_version):
|
||||
ret = 1
|
||||
err = "Failed to tag {} local version images. Err: {}".format(feat, err)
|
||||
return ret, out, err
|
||||
|
||||
|
||||
if last_version in version_dict:
|
||||
del version_dict[last_version]
|
||||
|
||||
|
||||
versions = [item[DOCKER_ID] for item in version_dict.values()]
|
||||
if versions:
|
||||
clean_res, _, err = _run_command("docker rmi {} --force".format(" ".join(versions)))
|
||||
|
@ -318,13 +318,13 @@ class Table:
|
||||
d = self.data[key]
|
||||
for (k, v) in items:
|
||||
d[k] = v
|
||||
|
||||
|
||||
|
||||
def check(self):
|
||||
expected = self.get_val(current_test_data, [POST, self.db, self.tbl])
|
||||
|
||||
ret = check_subset(expected, self.data)
|
||||
|
||||
|
||||
if ret != 0:
|
||||
print("Failed test={} no={} ret={}".format(
|
||||
current_test_name, current_test_no, ret))
|
||||
@ -430,7 +430,7 @@ class mock_subscriber:
|
||||
return (key, "", mock_tbl.get(key)[1])
|
||||
else:
|
||||
return ("", "", {})
|
||||
|
||||
|
||||
|
||||
def getDbConnector(self):
|
||||
return self.dbconn
|
||||
@ -507,7 +507,7 @@ def kube_join_side_effect(ip, port, insecure):
|
||||
else:
|
||||
kube_return = 0
|
||||
return (1, "not joined", "error")
|
||||
|
||||
|
||||
|
||||
def kube_reset_side_effect(flag):
|
||||
global kube_actions
|
||||
@ -529,10 +529,10 @@ def check_kube_actions():
|
||||
ret = 0
|
||||
expected = {}
|
||||
expected[KUBE_CMD] = current_test_data.get(KUBE_CMD, {})
|
||||
|
||||
|
||||
if expected[KUBE_CMD]:
|
||||
ret = check_subset(expected, kube_actions)
|
||||
|
||||
|
||||
if ret != 0:
|
||||
print("Failed test={} no={} ret={}".format(
|
||||
current_test_name, current_test_no, ret))
|
||||
@ -540,7 +540,7 @@ def check_kube_actions():
|
||||
print("expect: {}".format(json.dumps(expected, indent=4)))
|
||||
return -1
|
||||
return 0
|
||||
|
||||
|
||||
|
||||
def set_mock_kube(kube_labels, kube_join, kube_reset):
|
||||
kube_labels.side_effect = kube_labels_side_effect
|
||||
|
@ -260,11 +260,11 @@ stop_test_data = {
|
||||
|
||||
|
||||
# container_kill test cases
|
||||
# test case 0 -- container kill local
|
||||
# -- no change in state-db
|
||||
# test case 0 -- container kill local
|
||||
# -- no change in state-db
|
||||
# -- no label update
|
||||
# test case 1 -- container kill kube -- set label
|
||||
# -- no change in state-db
|
||||
# -- no change in state-db
|
||||
# -- label update
|
||||
#
|
||||
kill_test_data = {
|
||||
@ -356,7 +356,7 @@ kill_test_data = {
|
||||
|
||||
# container_kill test cases
|
||||
# test case 0 -- container kill local disabled container
|
||||
# -- no change in state-db
|
||||
# -- no change in state-db
|
||||
# -- no label update
|
||||
#
|
||||
invalid_kill_test_data = {
|
||||
@ -380,11 +380,11 @@ invalid_kill_test_data = {
|
||||
|
||||
|
||||
# container_wait test cases
|
||||
# test case 0 -- container wait local
|
||||
# -- no change in state-db
|
||||
# test case 0 -- container wait local
|
||||
# -- no change in state-db
|
||||
# -- no label update
|
||||
# test case 1 -- container wait kube with fallback
|
||||
# -- change in state-db
|
||||
# -- change in state-db
|
||||
# -- no label update
|
||||
#
|
||||
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"]
|
||||
|
||||
assert shell == False
|
||||
|
||||
|
||||
print("cmd={}".format(cmd))
|
||||
if list_cmd == cmd[:len(list_cmd)]:
|
||||
if len(cmd) == len(list_cmd) + 1:
|
||||
|
@ -524,7 +524,7 @@ clusters:\n\
|
||||
# test to_str()
|
||||
f = "abcd"
|
||||
f == kube_commands.to_str(str.encode(f))
|
||||
|
||||
|
||||
|
||||
@patch("kube_commands.subprocess.Popen")
|
||||
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
|
||||
NO AUTHORIZED LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE
|
||||
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,
|
||||
|
||||
1. This program, including its structure, sequence and organization,
|
||||
|
@ -167,7 +167,7 @@ xgxs_tx_lane_map
|
||||
ifp_inports_support_enable
|
||||
port_flex_enable
|
||||
pdma_descriptor_prefetch_enable
|
||||
pktdma_poll_mode_channel_bitmap
|
||||
pktdma_poll_mode_channel_bitmap
|
||||
num_queues_pci
|
||||
num_queues_uc0
|
||||
num_queues_uc1
|
||||
@ -179,7 +179,7 @@ flowtracker_drop_monitor_enable
|
||||
flowtracker_export_interval_usecs
|
||||
flowtracker_max_export_pkt_length
|
||||
flowtracker_fsp_reinject_max_length
|
||||
host_as_route_disable
|
||||
host_as_route_disable
|
||||
sai_fast_convergence_support
|
||||
ccm_dma_enable
|
||||
ccmdma_intr_enable
|
||||
@ -298,7 +298,7 @@ lb_port_pipe1_int
|
||||
ing_origin_id_device_id_mask
|
||||
egr_origin_id_device_id_mask
|
||||
port_count_in_pb_stream
|
||||
cancun_dir
|
||||
cancun_dir
|
||||
pcie_file
|
||||
capi_level
|
||||
phy_pin_compatibility_enable
|
||||
@ -308,7 +308,7 @@ sap_rx_polarity_flip
|
||||
sap_tx_polarity_flip
|
||||
sap_mdio_num
|
||||
dport_map_port_9
|
||||
cancun_dir
|
||||
cancun_dir
|
||||
pcie_file
|
||||
capi_level
|
||||
phy_pin_compatibility_enable
|
||||
|
@ -2,4 +2,4 @@ sonic-eventd (1.0.0-0) UNRELEASED; urgency=medium
|
||||
|
||||
* 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) {
|
||||
for(long unsigned int i = 0; i < params.size(); i++) {
|
||||
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;
|
||||
}
|
||||
EventParam ep = EventParam();
|
||||
@ -62,7 +62,7 @@ bool RsyslogPlugin::createRegexList() {
|
||||
}
|
||||
|
||||
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;
|
||||
vector<RegexStruct> regexList;
|
||||
|
||||
@ -71,7 +71,7 @@ bool RsyslogPlugin::createRegexList() {
|
||||
vector<EventParam> eventParams;
|
||||
try {
|
||||
string eventRegex = jsonList[i]["regex"];
|
||||
regexString = timestampRegex + eventRegex;
|
||||
regexString = timestampRegex + eventRegex;
|
||||
string tag = jsonList[i]["tag"];
|
||||
vector<string> params = jsonList[i]["params"];
|
||||
vector<string> timestampParams = { "month", "day", "time" };
|
||||
|
@ -19,7 +19,7 @@ bool SyslogParser::parseMessage(string message, string& eventTag, event_params_t
|
||||
}
|
||||
string formattedTimestamp;
|
||||
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()) {
|
||||
paramMap["timestamp"] = formattedTimestamp;
|
||||
@ -29,7 +29,7 @@ bool SyslogParser::parseMessage(string message, string& eventTag, event_params_t
|
||||
|
||||
// found matching regex
|
||||
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++) {
|
||||
string resultValue = matchResults[j + 1].str();
|
||||
string paramName = m_regexList[i].params[j].paramName;
|
||||
|
@ -36,7 +36,7 @@ struct RegexStruct {
|
||||
*/
|
||||
|
||||
class SyslogParser {
|
||||
public:
|
||||
public:
|
||||
unique_ptr<TimestampFormatter> m_timestampFormatter;
|
||||
vector<RegexStruct> m_regexList;
|
||||
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;
|
||||
}
|
||||
|
||||
TEST(syslog_parser, matching_regex) {
|
||||
TEST(syslog_parser, matching_regex) {
|
||||
json jList = json::array();
|
||||
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 (.*)";
|
||||
vector<string> params = { "month", "day", "time", "message", "other_data", "even_more_data" };
|
||||
vector<string> luaCodes = { "", "", "", "", "", "" };
|
||||
regex expression(regexString);
|
||||
|
||||
|
||||
RegexStruct rs = RegexStruct();
|
||||
rs.tag = "test_tag";
|
||||
rs.regexExpression = expression;
|
||||
@ -63,11 +63,11 @@ TEST(syslog_parser, matching_regex) {
|
||||
EXPECT_EQ(true, success);
|
||||
EXPECT_EQ("test_tag", tag);
|
||||
EXPECT_EQ(expectedDict, paramDict);
|
||||
|
||||
|
||||
lua_close(luaState);
|
||||
}
|
||||
|
||||
TEST(syslog_parser, matching_regex_timestamp) {
|
||||
TEST(syslog_parser, matching_regex_timestamp) {
|
||||
json jList = json::array();
|
||||
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 (.*)";
|
||||
@ -101,7 +101,7 @@ TEST(syslog_parser, matching_regex_timestamp) {
|
||||
EXPECT_EQ(true, success);
|
||||
EXPECT_EQ("test_tag", tag);
|
||||
EXPECT_EQ(expectedDict, paramDict);
|
||||
|
||||
|
||||
lua_close(luaState);
|
||||
}
|
||||
|
||||
@ -165,7 +165,7 @@ TEST(syslog_parser, lua_code_valid_1) {
|
||||
EXPECT_EQ(true, success);
|
||||
EXPECT_EQ("test_tag", tag);
|
||||
EXPECT_EQ(expectedDict, paramDict);
|
||||
|
||||
|
||||
lua_close(luaState);
|
||||
}
|
||||
|
||||
@ -204,7 +204,7 @@ TEST(syslog_parser, lua_code_valid_2) {
|
||||
EXPECT_EQ(true, success);
|
||||
EXPECT_EQ("test_tag", tag);
|
||||
EXPECT_EQ(expectedDict, paramDict);
|
||||
|
||||
|
||||
lua_close(luaState);
|
||||
}
|
||||
|
||||
@ -255,10 +255,10 @@ TEST(rsyslog_plugin, onMessage_noParams) {
|
||||
|
||||
TEST(timestampFormatter, changeTimestampFormat) {
|
||||
unique_ptr<TimestampFormatter> formatter(new TimestampFormatter());
|
||||
|
||||
|
||||
vector<string> timestampOne = { "Jul", "20", "10:09:40.230874" };
|
||||
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_storedYear = g_stored_year;
|
||||
|
@ -8,7 +8,7 @@
|
||||
* (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.
|
||||
*
|
||||
* (1) capture/cache service
|
||||
* (1) capture/cache service
|
||||
* Saves all the events between cache start & stop.
|
||||
* Update missed cached counter in memory.
|
||||
*
|
||||
@ -111,7 +111,7 @@ stats_collector::set_heartbeat_interval(int val)
|
||||
{
|
||||
if (val > 0) {
|
||||
/* Round to highest possible multiples of MIN */
|
||||
m_heartbeats_interval_cnt =
|
||||
m_heartbeats_interval_cnt =
|
||||
(((val * 1000) + STATS_HEARTBEAT_MIN - 1) / STATS_HEARTBEAT_MIN);
|
||||
}
|
||||
else if (val == 0) {
|
||||
@ -269,7 +269,7 @@ stats_collector::run_collector()
|
||||
|
||||
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
|
||||
* bring down all other features. Hence done only at system level shutdown,
|
||||
* 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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Initialize cache with set of events provided.
|
||||
@ -358,10 +358,10 @@ capture_service::do_capture()
|
||||
|
||||
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.
|
||||
*/
|
||||
CAP_STATE_INIT = 0,
|
||||
CAP_STATE_INIT = 0,
|
||||
|
||||
/* In this state, all events read are cached until max limit */
|
||||
CAP_STATE_ACTIVE,
|
||||
@ -399,7 +399,7 @@ capture_service::do_capture()
|
||||
/*
|
||||
* The cache service connects but defers any reading until caller provides
|
||||
* 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.
|
||||
* 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;
|
||||
}
|
||||
catch (bad_alloc& e)
|
||||
catch (bad_alloc& e)
|
||||
{
|
||||
stringstream ss;
|
||||
ss << e.what();
|
||||
@ -535,7 +535,7 @@ capture_service::set_control(capture_control_t ctrl, event_serialized_lst_t *lst
|
||||
break;
|
||||
|
||||
case START_CAPTURE:
|
||||
|
||||
|
||||
/*
|
||||
* 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
|
||||
@ -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) {
|
||||
m_last_events[to_string(i)] = "";
|
||||
}
|
||||
|
||||
|
||||
if ((lst != NULL) && (!lst->empty())) {
|
||||
init_capture_cache(*lst);
|
||||
}
|
||||
@ -663,7 +663,7 @@ run_eventd_service()
|
||||
RET_ON_ERR(stats_instance.is_running(), "Failed to start stats instance");
|
||||
|
||||
while(code != EVENT_EXIT) {
|
||||
int resp = -1;
|
||||
int resp = -1;
|
||||
event_serialized_lst_t req_data, resp_data;
|
||||
|
||||
RET_ON_ERR(service.channel_read(code, req_data) == 0,
|
||||
@ -684,7 +684,7 @@ run_eventd_service()
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
|
||||
case EVENT_CACHE_START:
|
||||
if (capture == NULL) {
|
||||
SWSS_LOG_ERROR("Cache is not initialized to start");
|
||||
@ -697,7 +697,7 @@ run_eventd_service()
|
||||
resp = capture->set_control(START_CAPTURE, &req_data);
|
||||
break;
|
||||
|
||||
|
||||
|
||||
case EVENT_CACHE_STOP:
|
||||
if (capture == NULL) {
|
||||
SWSS_LOG_ERROR("Cache is not initialized to stop");
|
||||
|
@ -136,7 +136,7 @@ class stats_collector
|
||||
void run_collector();
|
||||
|
||||
void run_writer();
|
||||
|
||||
|
||||
atomic<bool> m_updated;
|
||||
|
||||
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,
|
||||
* whichever comes first.
|
||||
*
|
||||
*
|
||||
* The sequence number in internal event will help assess the missed count
|
||||
* by the consumer of the cache data.
|
||||
*
|
||||
*/
|
||||
typedef enum {
|
||||
NEED_INIT = 0,
|
||||
NEED_INIT = 0,
|
||||
INIT_CAPTURE,
|
||||
START_CAPTURE,
|
||||
STOP_CAPTURE
|
||||
|
@ -1,6 +1,6 @@
|
||||
CC := g++
|
||||
|
||||
TEST_OBJS += ./src/eventd.o
|
||||
TEST_OBJS += ./src/eventd.o
|
||||
OBJS += ./src/eventd.o ./src/main.o
|
||||
|
||||
C_DEPS += ./src/eventd.d ./src/main.d
|
||||
|
@ -699,7 +699,7 @@ TEST(eventd, service)
|
||||
|
||||
void
|
||||
wait_for_heartbeat(stats_collector &stats_instance, long unsigned int cnt,
|
||||
int wait_ms = 3000)
|
||||
int wait_ms = 3000)
|
||||
{
|
||||
int diff = 0;
|
||||
|
||||
@ -749,7 +749,7 @@ TEST(eventd, heartbeat)
|
||||
|
||||
/* Pause heartbeat */
|
||||
stats_instance.heartbeat_ctrl(true);
|
||||
|
||||
|
||||
/* Sleep to ensure the other thread noticed the pause request. */
|
||||
this_thread::sleep_for(chrono::milliseconds(200));
|
||||
|
||||
@ -870,7 +870,7 @@ TEST(eventd, testDB)
|
||||
if (db.exists(key)) {
|
||||
try {
|
||||
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));
|
||||
if (itc != m.end()) {
|
||||
int expect = (counter_keys[i] == string(COUNTERS_EVENTS_PUBLISHED) ?
|
||||
|
@ -73,7 +73,7 @@ public:
|
||||
}
|
||||
|
||||
// Get this info handy
|
||||
try
|
||||
try
|
||||
{
|
||||
DBConnector db("TEST_DB", 0, true);
|
||||
g_is_redis_available = true;
|
||||
|
@ -74,7 +74,7 @@ def test_receiver(event_obj, cnt):
|
||||
while cnt_done < cnt:
|
||||
p = event_receive_op_t()
|
||||
rc = event_receive(sh, p)
|
||||
|
||||
|
||||
if rc > 0 and publish_cnt < 2:
|
||||
# ignore timeout as test code has not yet published an event yet
|
||||
continue
|
||||
|
@ -80,7 +80,7 @@ t_map_to_str(const Map &m)
|
||||
_ss << sep << "{" << elem.first << "," << elem.second << "}";
|
||||
if (sep.empty()) {
|
||||
sep = ", ";
|
||||
}
|
||||
}
|
||||
}
|
||||
_ss << "}";
|
||||
return _ss.str();
|
||||
@ -99,7 +99,7 @@ do_receive(const event_subscribe_sources_t filter, const string outfile, int cnt
|
||||
fp = &fout;
|
||||
printf("outfile=%s set\n", outfile.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
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",
|
||||
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);
|
||||
(*fp) << t_map_to_str(evtOp) << "\n";
|
||||
fp->flush();
|
||||
|
||||
|
||||
if ((++index % PRINT_CHUNK_SZ) == 0) {
|
||||
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());
|
||||
}
|
||||
evt.tag = key.substr(key.find(":")+1);
|
||||
|
||||
|
||||
const auto &val = data.begin().value();
|
||||
ASSERT(val.is_object(), "Parsed params is not object");
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
h = events_init_publisher(source);
|
||||
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) {
|
||||
printf("Sending index %d\n", index);
|
||||
}
|
||||
|
||||
|
||||
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);
|
||||
|
||||
|
@ -30,7 +30,7 @@ def run_test(process, file, count, duplicate):
|
||||
# log messages to see if events have been received
|
||||
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")
|
||||
sub_cmd = ["logger", "-p", "local0.notice", "-t", process, "test", "message"]
|
||||
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