diff --git a/controller/pinctrl.c b/controller/pinctrl.c index c86b4f9401..b891435c12 100644 --- a/controller/pinctrl.c +++ b/controller/pinctrl.c @@ -2598,11 +2598,6 @@ pinctrl_handle_put_dhcp_opts( switch (dhcp_opts.dhcp_msg_type) { case DHCP_MSG_DISCOVER: msg_type = DHCP_MSG_OFFER; - if (in_flow->nw_dst != htonl(INADDR_BROADCAST)) { - static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 5); - VLOG_WARN_RL(&rl, "DHCP DISCOVER must be Broadcast"); - goto exit; - } break; case DHCP_MSG_REQUEST: { msg_type = DHCP_MSG_ACK; diff --git a/tests/ovn.at b/tests/ovn.at index d7f01169cd..d9cb81fa2e 100644 --- a/tests/ovn.at +++ b/tests/ovn.at @@ -7479,6 +7479,22 @@ expected_dhcp_opts=${boofile}330400000e100104ffffff0003040a00000136040a000001 test_dhcp 20 1 f00000000001 01 0 $ciaddr $offer_ip $request_ip 1 0 ff1000000001 $server_ip 02 $expected_dhcp_opts compare_dhcp_packets 1 +# ---------------------------------------------------------------------- + +# Send unicast DHCPDISCOVER. +reset_pcap_file hv1-vif1 hv1/vif1 +reset_pcap_file hv1-vif2 hv1/vif2 +rm -f 1.expected +rm -f 2.expected + +offer_ip=`ip_to_hex 10 0 0 4` +server_ip=`ip_to_hex 10 0 0 1` +ciaddr=`ip_to_hex 0 0 0 0` +request_ip=0 +expected_dhcp_opts=4311626f6f7466696c655f6e616d655f616c74330400000e100104ffffff0003040a00000136040a000001 +test_dhcp 21 1 f00000000001 01 0 $ciaddr $offer_ip $request_ip 0 1 $offer_ip $server_ip ff1000000001 $server_ip 02 $expected_dhcp_opts +compare_dhcp_packets 1 + as hv1 OVS_APP_EXIT_AND_WAIT([ovn-controller])