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