diff options
author | Mauro Sardara <msardara@cisco.com> | 2019-05-15 14:31:17 +0200 |
---|---|---|
committer | Mauro Sardara <msardara@cisco.com> | 2019-05-15 15:26:20 +0200 |
commit | 31f349f4c4457344efcff20ccadfed53042891b1 (patch) | |
tree | 3158a7216fc3ede9beb603ef6267255238014de9 /apps | |
parent | 8a4273ffe83b46bc018da58135427d40012282b8 (diff) |
[HICN-196] Add mtu to command line parameters.
Change-Id: Ib6932c23408630be1ca98146d22ac494ad5e5077
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Diffstat (limited to 'apps')
-rw-r--r-- | apps/http-proxy/main.cc | 17 | ||||
-rw-r--r-- | apps/http-proxy/src/ATSConnector.cc | 3 | ||||
-rw-r--r-- | apps/http-proxy/src/IcnReceiver.cc | 11 | ||||
-rw-r--r-- | apps/http-proxy/src/IcnReceiver.h | 3 |
4 files changed, 25 insertions, 9 deletions
diff --git a/apps/http-proxy/main.cc b/apps/http-proxy/main.cc index 0dedbd8a7..fe1bda5de 100644 --- a/apps/http-proxy/main.cc +++ b/apps/http-proxy/main.cc @@ -19,9 +19,9 @@ using namespace transport; int usage(char* program) { std::cerr << "ICN Plugin not loaded!" << std::endl; - std::cerr << "USAGE: " << program + std::cerr << "USAGE: " << program << "\n" << "[HTTP_PREFIX] -a [SERVER_IP_ADDRESS] " - "-p [SERVER_PORT] -c [CACHE_SIZE]" + "-p [SERVER_PORT] -c [CACHE_SIZE] -m [MTU]" << std::endl; return -1; } @@ -31,9 +31,10 @@ int main(int argc, char** argv) { std::string ip_address("127.0.0.1"); std::string port("80"); std::string cache_size("50000"); + std::string mtu("1500"); int opt; - while ((opt = getopt(argc, argv, "a:p:c:")) != -1) { + while ((opt = getopt(argc, argv, "a:p:c:m:")) != -1) { switch (opt) { case 'a': prefix = optarg; @@ -44,6 +45,9 @@ int main(int argc, char** argv) { case 'c': cache_size = optarg; break; + case 'm': + mtu = optarg; + break; case 'h': default: return usage(argv[0]); @@ -58,9 +62,10 @@ int main(int argc, char** argv) { } std::cout << "Connecting to " << ip_address << " port " << port - << " Cache size " << cache_size << " Prefix " << prefix - << std::endl; - transport::AsyncConsumerProducer proxy(prefix, ip_address, port, cache_size); + << " Cache size " << cache_size << " Prefix " << prefix << " MTU " + << mtu << std::endl; + transport::AsyncConsumerProducer proxy(prefix, ip_address, port, cache_size, + mtu); proxy.run(); diff --git a/apps/http-proxy/src/ATSConnector.cc b/apps/http-proxy/src/ATSConnector.cc index 287907347..a1c8c9708 100644 --- a/apps/http-proxy/src/ATSConnector.cc +++ b/apps/http-proxy/src/ATSConnector.cc @@ -193,7 +193,8 @@ void ATSConnector::doConnect() { } } else { - TRANSPORT_LOGE("Impossible to reconnect."); + TRANSPORT_LOGE("Impossible to reconnect: %s", + ec.message().c_str()); close(); } }); diff --git a/apps/http-proxy/src/IcnReceiver.cc b/apps/http-proxy/src/IcnReceiver.cc index 4ad616168..fc6837a2c 100644 --- a/apps/http-proxy/src/IcnReceiver.cc +++ b/apps/http-proxy/src/IcnReceiver.cc @@ -55,12 +55,14 @@ core::Prefix generatePrefix(const std::string& prefix_url) { AsyncConsumerProducer::AsyncConsumerProducer(const std::string& prefix, std::string& ip_address, std::string& port, - std::string& cache_size) + std::string& cache_size, + std::string& mtu) : prefix_(generatePrefix(prefix)), producer_socket_(), ip_address_(ip_address), port_(port), cache_size_(std::stoul(cache_size)), + mtu_(std::stoul(mtu)), request_counter_(0), signals_(io_service_, SIGINT, SIGQUIT), connector_(io_service_, ip_address_, port_, @@ -78,6 +80,13 @@ AsyncConsumerProducer::AsyncConsumerProducer(const std::string& prefix, TRANSPORT_LOGD("Warning: output buffer size has not been set."); } + ret = producer_socket_.setSocketOption( + interface::GeneralTransportOptions::DATA_PACKET_SIZE, mtu_); + + if (ret != SOCKET_OPTION_SET) { + TRANSPORT_LOGD("Warning: mtu has not been set."); + } + producer_socket_.registerPrefix(prefix_); // Let the main thread to catch SIGINT and SIGQUIT diff --git a/apps/http-proxy/src/IcnReceiver.h b/apps/http-proxy/src/IcnReceiver.h index 7d5c5e4c8..61ca4333a 100644 --- a/apps/http-proxy/src/IcnReceiver.h +++ b/apps/http-proxy/src/IcnReceiver.h @@ -31,7 +31,7 @@ class AsyncConsumerProducer { public: explicit AsyncConsumerProducer(const std::string& prefix, std::string& ip_address, std::string& port, - std::string& cache_size); + std::string& cache_size, std::string& mtu); void start(); @@ -55,6 +55,7 @@ class AsyncConsumerProducer { std::string ip_address_; std::string port_; uint32_t cache_size_; + uint32_t mtu_; uint64_t request_counter_; asio::signal_set signals_; |