Line data Source code
1 : /* 2 : * Copyright (c) 2014 Juniper Networks, Inc. All rights reserved. 3 : */ 4 : 5 : #include "cmn/agent_cmn.h" 6 : #include "init/agent_init.h" 7 : #include "services/dhcpv6_proto.h" 8 : #include "services/services_types.h" 9 : #include "services/services_init.h" 10 : #include "pkt/pkt_init.h" 11 : 12 : using namespace boost::asio; 13 : using boost::asio::ip::udp; 14 : 15 1 : Dhcpv6Proto::Dhcpv6Proto(Agent *agent, boost::asio::io_context &io, 16 1 : bool run_with_vrouter) : 17 : Proto(agent, "Agent::Services", PktHandler::DHCPV6, io), 18 1 : run_with_vrouter_(run_with_vrouter) { 19 : // limit the number of entries in the workqueue 20 1 : work_queue_.SetSize(agent->params()->services_queue_limit()); 21 1 : work_queue_.SetBounded(true); 22 : 23 : // server duid based on vrrp mac 24 1 : server_duid_.type = htons(DHCPV6_DUID_TYPE_LL); 25 1 : server_duid_.hw_type = 0; 26 1 : agent->vrrp_mac().ToArray(server_duid_.mac, sizeof(server_duid_.mac)); 27 1 : } 28 : 29 2 : Dhcpv6Proto::~Dhcpv6Proto() { 30 2 : } 31 : 32 0 : ProtoHandler *Dhcpv6Proto::AllocProtoHandler(boost::shared_ptr<PktInfo> info, 33 : boost::asio::io_context &io) { 34 0 : return new Dhcpv6Handler(agent(), info, io); 35 : } 36 : 37 1 : void Dhcpv6Proto::Shutdown() { 38 1 : }