diff --git a/src/vnsw/agent/oper/agent.sandesh b/src/vnsw/agent/oper/agent.sandesh index 83dc74fc1c3..bb873326e1f 100644 --- a/src/vnsw/agent/oper/agent.sandesh +++ b/src/vnsw/agent/oper/agent.sandesh @@ -104,8 +104,9 @@ struct ItfSandeshData { 49: optional string ipv4_active; 50: list fixed_ip4_list; 51: list fixed_ip6_list; - 52: optional string health_check_active; - 53: optional string metadata_ip_active; + 52: list fat_flow_list; + 53: optional string health_check_active; + 54: optional string metadata_ip_active; } struct VnIpamData { diff --git a/src/vnsw/agent/oper/interface.cc b/src/vnsw/agent/oper/interface.cc index 1dc7deaf05d..363986f30a1 100644 --- a/src/vnsw/agent/oper/interface.cc +++ b/src/vnsw/agent/oper/interface.cc @@ -951,6 +951,17 @@ void Interface::SetItfSandeshData(ItfSandeshData &data) const { } data.set_fixed_ip6_list(fixed_ip6_list); + std::vector fat_flow_list; + VmInterface::FatFlowEntrySet::iterator fat_flow_it = + vintf->fat_flow_list().list_.begin(); + while (fat_flow_it != vintf->fat_flow_list().list_.end()) { + ostringstream str; + str << (int)fat_flow_it->protocol << ":" << (int)fat_flow_it->port<<""; + fat_flow_list.push_back(str.str()); + fat_flow_it++; + } + data.set_fat_flow_list(fat_flow_list); + if (vintf->fabric_port()) { data.set_fabric_port("FabricPort"); } else { diff --git a/src/vnsw/agent/vrouter/ksync/interface_ksync.cc b/src/vnsw/agent/vrouter/ksync/interface_ksync.cc index f466933d3e3..76a5bfaece4 100644 --- a/src/vnsw/agent/vrouter/ksync/interface_ksync.cc +++ b/src/vnsw/agent/vrouter/ksync/interface_ksync.cc @@ -540,6 +540,16 @@ int InterfaceKSyncEntry::Encode(sandesh_op::type op, char *buf, int buf_len) { ((const int8_t *)smac(), (const int8_t *)smac() + smac().size())); } + + if (fat_flow_list_.list_.size() != 0) { + std::vector fat_flow_list; + for (VmInterface::FatFlowEntrySet::const_iterator it = + fat_flow_list_.list_.begin(); it != fat_flow_list_.list_.end(); + it++) { + fat_flow_list.push_back(it->protocol << 16 | it->port); + } + encoder.set_vifr_fat_flow_protocol_port(fat_flow_list); + } break; }