Skip to content

Commit

Permalink
Merge "In test mode, use dynamic ports."
Browse files Browse the repository at this point in the history
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed Feb 25, 2016
2 parents 97dbf43 + 987ce85 commit 7ae4064
Show file tree
Hide file tree
Showing 8 changed files with 80 additions and 10 deletions.
6 changes: 6 additions & 0 deletions src/vnsw/agent/contrail-vrouter-agent.conf
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ log_local=1
# value provided by discovery service will be used. (Optional)
# server=10.0.0.1 10.0.0.2

# Client port used by vrouter-agent while connecting to contrail-named
# dns_client_port=

[HYPERVISOR]
# Everything in this section is optional

Expand Down Expand Up @@ -120,6 +123,9 @@ log_local=1
# Shared secret for metadata proxy service (Optional)
# metadata_proxy_secret=contrail

# Metadata proxy port on which agent listens (Optional)
# metadata_proxy_port=

[NETWORKS]
# control-channel IP address used by WEB-UI to connect to vnswad to fetch
# required information (Optional)
Expand Down
41 changes: 36 additions & 5 deletions src/vnsw/agent/init/agent_param.cc
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,15 @@ void AgentParam::ParseVirtualHost() {
}
}

void AgentParam::ParseDns() {
ParseServerList("DNS.server", &dns_server_1_, &dns_port_1_,
&dns_server_2_, &dns_port_2_);
if (!GetValueFromTree<uint16_t>(dns_client_port_,
"DNS.dns_client_port")) {
dns_client_port_ = ContrailPorts::VrouterAgentDnsClientUdpPort();
}
}

void AgentParam::ParseDiscovery() {
GetValueFromTree<string>(dss_server_, "DISCOVERY.server");
GetValueFromTree<uint16_t>(dss_port_, "DISCOVERY.port");
Expand Down Expand Up @@ -478,6 +487,11 @@ void AgentParam::ParseDefaultSection() {
} else {
subnet_hosts_resolvable_ = true;
}

if (!GetValueFromTree<uint16_t>(mirror_client_port_,
"DEFAULT.mirror_client_port")) {
mirror_client_port_ = ContrailPorts::VrouterAgentMirrorClientUdpPort();
}
}

void AgentParam::ParseTaskSection() {
Expand All @@ -494,6 +508,10 @@ void AgentParam::ParseTaskSection() {
void AgentParam::ParseMetadataProxy() {
GetValueFromTree<string>(metadata_shared_secret_,
"METADATA.metadata_proxy_secret");
if (!GetValueFromTree<uint16_t>(metadata_proxy_port_,
"METADATA.metadata_proxy_port")) {
metadata_proxy_port_ = ContrailPorts::MetadataProxyVrouterAgentPort();
}
}

void AgentParam::ParseFlows() {
Expand Down Expand Up @@ -610,6 +628,13 @@ void AgentParam::ParseVirtualHostArguments
"VIRTUAL-HOST-INTERFACE.physical_interface");
}

void AgentParam::ParseDnsArguments
(const boost::program_options::variables_map &var_map) {
ParseServerListArguments(var_map_, &dns_server_1_, &dns_port_1_,
&dns_server_2_, &dns_port_2_, "DNS.server");
GetOptValue<uint16_t>(var_map, dns_client_port_, "DNS.dns_client_port");
}

void AgentParam::ParseDiscoveryArguments
(const boost::program_options::variables_map &var_map) {
GetOptValue<string>(var_map, dss_server_, "DISCOVERY.server");
Expand Down Expand Up @@ -708,6 +733,8 @@ void AgentParam::ParseDefaultSectionArguments
"DEFAULT.sandesh_send_rate_limit");
GetOptValue<bool>(var_map, subnet_hosts_resolvable_,
"DEFAULT.subnet_hosts_resolvable");
GetOptValue<uint16_t>(var_map, mirror_client_port_,
"DEFAULT.mirror_client_port");
}

void AgentParam::ParseTaskSectionArguments
Expand All @@ -726,6 +753,8 @@ void AgentParam::ParseMetadataProxyArguments
(const boost::program_options::variables_map &var_map) {
GetOptValue<string>(var_map, metadata_shared_secret_,
"METADATA.metadata_proxy_secret");
GetOptValue<uint16_t>(var_map, metadata_proxy_port_,
"METADATA.metadata_proxy_port");
}

void AgentParam::ParseFlowArguments
Expand Down Expand Up @@ -846,8 +875,7 @@ void AgentParam::InitFromConfig() {
ParseCollector();
ParseVirtualHost();
ParseServerList("CONTROL-NODE.server", &xmpp_server_1_, &xmpp_server_2_);
ParseServerList("DNS.server", &dns_server_1_, &dns_port_1_,
&dns_server_2_, &dns_port_2_);
ParseDns();
ParseDiscovery();
ParseNetworks();
ParseHypervisor();
Expand All @@ -872,8 +900,7 @@ void AgentParam::InitFromArguments() {
ParseVirtualHostArguments(var_map_);
ParseServerListArguments(var_map_, xmpp_server_1_, xmpp_server_2_,
"CONTROL-NODE.server");
ParseServerListArguments(var_map_, &dns_server_1_, &dns_port_1_,
&dns_server_2_, &dns_port_2_, "DNS.server");
ParseDnsArguments(var_map_);
ParseDiscoveryArguments(var_map_);
ParseNetworksArguments(var_map_);
ParseHypervisorArguments(var_map_);
Expand Down Expand Up @@ -1076,6 +1103,7 @@ void AgentParam::LogConfig() const {
LOG(DEBUG, "DNS Port-1 : " << dns_port_1_);
LOG(DEBUG, "DNS Server-2 : " << dns_server_2_);
LOG(DEBUG, "DNS Port-2 : " << dns_port_2_);
LOG(DEBUG, "DNS client port : " << dns_client_port_);
LOG(DEBUG, "Xmpp Dns Authentication : " << xmpp_dns_auth_enable_);
if (xmpp_dns_auth_enable_) {
LOG(DEBUG, "Xmpp Server Certificate : " << xmpp_server_cert_);
Expand All @@ -1087,6 +1115,7 @@ void AgentParam::LogConfig() const {
LOG(DEBUG, "Controller Instances : " << xmpp_instance_count_);
LOG(DEBUG, "Tunnel-Type : " << tunnel_type_);
LOG(DEBUG, "Metadata-Proxy Shared Secret: " << metadata_shared_secret_);
LOG(DEBUG, "Metadata-Proxy Port : " << metadata_proxy_port_);
LOG(DEBUG, "Max Vm Flows : " << max_vm_flows_);
LOG(DEBUG, "Linklocal Max System Flows : " << linklocal_system_flows_);
LOG(DEBUG, "Linklocal Max Vm Flows : " << linklocal_vm_flows_);
Expand Down Expand Up @@ -1181,8 +1210,10 @@ AgentParam::AgentParam(bool enable_flow_options,
xmpp_instance_count_(),
dns_port_1_(ContrailPorts::DnsServerPort()),
dns_port_2_(ContrailPorts::DnsServerPort()),
dns_client_port_(0), mirror_client_port_(0),
dss_server_(), dss_port_(0), mgmt_ip_(), hypervisor_mode_(MODE_KVM),
xen_ll_(), tunnel_type_(), metadata_shared_secret_(), max_vm_flows_(),
xen_ll_(), tunnel_type_(), metadata_shared_secret_(),
metadata_proxy_port_(0), max_vm_flows_(),
linklocal_system_flows_(), linklocal_vm_flows_(),
flow_cache_timeout_(), config_file_(), program_name_(),
log_file_(), log_local_(false), log_flow_(false), log_level_(),
Expand Down
21 changes: 21 additions & 0 deletions src/vnsw/agent/init/agent_param.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,26 @@ class AgentParam {
const Ip4Address &dns_server_2() const { return dns_server_2_; }
const uint16_t dns_port_1() const { return dns_port_1_; }
const uint16_t dns_port_2() const { return dns_port_2_; }
const uint16_t dns_client_port() const {
if (test_mode_)
return 0;
return dns_client_port_;
}
const uint16_t mirror_client_port() const {
if (test_mode_)
return 0;
return mirror_client_port_;
}
const std::string &discovery_server() const { return dss_server_; }
const Ip4Address &mgmt_ip() const { return mgmt_ip_; }
const int xmpp_instance_count() const { return xmpp_instance_count_; }
const std::string &tunnel_type() const { return tunnel_type_; }
const std::string &metadata_shared_secret() const { return metadata_shared_secret_; }
uint16_t metadata_proxy_port() const {
if (test_mode_)
return 0;
return metadata_proxy_port_;
}
float max_vm_flows() const { return max_vm_flows_; }
uint32_t linklocal_system_flows() const { return linklocal_system_flows_; }
uint32_t linklocal_vm_flows() const { return linklocal_vm_flows_; }
Expand Down Expand Up @@ -296,6 +311,7 @@ class AgentParam {
void ComputeFlowLimits();
void ParseCollector();
void ParseVirtualHost();
void ParseDns();
void ParseDiscovery();
void ParseNetworks();
void ParseHypervisor();
Expand All @@ -317,6 +333,8 @@ class AgentParam {
(const boost::program_options::variables_map &v);
void ParseVirtualHostArguments
(const boost::program_options::variables_map &v);
void ParseDnsArguments
(const boost::program_options::variables_map &v);
void ParseDiscoveryArguments
(const boost::program_options::variables_map &v);
void ParseNetworksArguments
Expand Down Expand Up @@ -367,13 +385,16 @@ class AgentParam {
Ip4Address dns_server_2_;
uint16_t dns_port_1_;
uint16_t dns_port_2_;
uint16_t dns_client_port_;
uint16_t mirror_client_port_;
std::string dss_server_;
uint16_t dss_port_;
Ip4Address mgmt_ip_;
HypervisorMode hypervisor_mode_;
PortInfo xen_ll_;
std::string tunnel_type_;
std::string metadata_shared_secret_;
uint16_t metadata_proxy_port_;
float max_vm_flows_;
uint16_t linklocal_system_flows_;
uint16_t linklocal_vm_flows_;
Expand Down
4 changes: 4 additions & 0 deletions src/vnsw/agent/init/test/cfg.ini
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ dhcp_relay_mode=true
# Agent base directory
agent_base_directory=/var/lib/contrail

mirror_client_port=8999

[DISCOVERY]
# IP address and port of discovery server
# port=5998
Expand All @@ -67,6 +69,7 @@ max_control_nodes=2
# addresses (separated by a space) can be provided. If no IP is configured then
# the value provided by discovery service will be used.
server=127.0.0.1:53
dns_client_port=8997

[HYPERVISOR]
# Hypervisor type. Possible values are kvm, xen and vmware
Expand All @@ -92,6 +95,7 @@ max_vm_linklocal_flows=512
[METADATA]
# Shared secret for metadata proxy service
metadata_proxy_secret=contrail
metadata_proxy_port=8998

[NETWORKS]
# control-channel IP address used by WEB-UI to connect to vnswad to fetch
Expand Down
6 changes: 6 additions & 0 deletions src/vnsw/agent/init/test/test_agent_init.cc
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ TEST_F(FlowTest, Agent_Conf_file_1) {
EXPECT_STREQ(param.tunnel_type().c_str(), "MPLSoGRE");
EXPECT_EQ(param.dhcp_relay_mode(), true);
EXPECT_STREQ(param.metadata_shared_secret().c_str(), "contrail");
EXPECT_EQ(param.metadata_proxy_port(), 8998);
EXPECT_EQ(param.dns_client_port(), 8997);
EXPECT_EQ(param.mirror_client_port(), 8999);
EXPECT_EQ(param.max_vm_flows(), 50);
EXPECT_EQ(param.linklocal_system_flows(), 1024);
EXPECT_EQ(param.linklocal_vm_flows(), 512);
Expand Down Expand Up @@ -82,6 +85,9 @@ TEST_F(FlowTest, Agent_Conf_file_2) {
EXPECT_EQ(param.agent_mode(), AgentParam::VROUTER_AGENT);
EXPECT_EQ(param.dhcp_relay_mode(), false);
EXPECT_EQ(param.subnet_hosts_resolvable(), false);
EXPECT_EQ(param.metadata_proxy_port(), 8097);
EXPECT_EQ(param.dns_client_port(), 8098);
EXPECT_EQ(param.mirror_client_port(), 8097);
}

TEST_F(FlowTest, Agent_Flows_Option_1) {
Expand Down
3 changes: 2 additions & 1 deletion src/vnsw/agent/oper/mirror_table.cc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <db/db_table.h>

#include <cmn/agent_cmn.h>
#include <init/agent_param.h>
#include "oper/route_common.h"
#include "oper/nexthop.h"
#include "oper/tunnel_nh.h"
Expand Down Expand Up @@ -293,7 +294,7 @@ void MirrorTable::MirrorSockInit(void) {
event_mgr = agent()->event_manager();
boost::asio::io_service &io = *event_mgr->io_service();
ip::udp::endpoint ep(ip::udp::v4(),
ContrailPorts::VrouterAgentMirrorClientUdpPort());
agent()->params()->mirror_client_port());

udp_sock_.reset(new ip::udp::socket(io));

Expand Down
3 changes: 2 additions & 1 deletion src/vnsw/agent/services/dns_proto.cc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include "services/dns_proto.h"
#include "bind/bind_resolver.h"
#include "cmn/agent_cmn.h"
#include "init/agent_param.h"
#include "ifmap/ifmap_link.h"
#include "ifmap/ifmap_table.h"
#include "pkt/pkt_init.h"
Expand Down Expand Up @@ -40,7 +41,7 @@ void DnsProto::ConfigInit() {
server, agent()->dns_server_port(i)));
}
BindResolver::Init(*agent()->event_manager()->io_service(), dns_servers,
ContrailPorts::VrouterAgentDnsClientUdpPort(),
agent()->params()->dns_client_port(),
boost::bind(&DnsProto::SendDnsIpc, this, _1));
}

Expand Down
6 changes: 3 additions & 3 deletions src/vnsw/agent/services/metadata_proxy.cc
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include "http/client/http_curl.h"
#include "io/event_manager.h"
#include "cmn/agent_cmn.h"
#include "init/agent_param.h"
#include "oper/operdb_init.h"
#include "oper/mirror_table.h"
#include "oper/interface_common.h"
Expand Down Expand Up @@ -88,9 +89,8 @@ MetadataProxy::MetadataProxy(ServicesModule *module,
// Register wildcard entry to match any URL coming on the metadata port
http_server_->RegisterHandler(HTTP_WILDCARD_ENTRY,
boost::bind(&MetadataProxy::HandleMetadataRequest, this, _1, _2));
http_server_->Initialize(ContrailPorts::MetadataProxyVrouterAgentPort());
services_->agent()->set_metadata_server_port(
ContrailPorts::MetadataProxyVrouterAgentPort());
http_server_->Initialize(services_->agent()->params()->metadata_proxy_port());
services_->agent()->set_metadata_server_port(http_server_->GetPort());

http_client_->Init();
}
Expand Down

0 comments on commit 7ae4064

Please sign in to comment.