<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en" style='--code-editor-font: var(--default-mono-font, "GitLab Mono"), JetBrains Mono, Menlo, DejaVu Sans Mono, Liberation Mono, Consolas, Ubuntu Mono, Courier New, andale mono, lucida console, monospace;'>
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>
<style data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>
<style>img {
max-width: 100%; height: auto;
}
body {
font-size: .875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px;
}
body {
font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style='font-size: inherit; -webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px; font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";'>
<div class="content">
<p class="details" style="font-style: italic; color: #737278;">
<a href="https://gitlab.rtems.org/opticron">Kinsey Moore</a> created an issue: <a href="https://gitlab.rtems.org/rtems/pkg/rtems-net-services/-/issues/10">#10</a>
</p>
<p>
Assignee: Trac Migrate
</p>
<div class="md" style="position: relative; z-index: 1; color: #28272d; word-wrap: break-word;">
<p dir="auto" style="color: #28272d; margin: 0 0 16px;" align="initial">Reproduction:</p>
<ul dir="auto" style="text-align: initial; list-style-type: disc; margin: 0 0 16px; padding: 0;">
<li style="margin-top: 0; line-height: 1.6em; margin-left: 25px; padding-left: 3px;">Install lwIP on top of a compatible BSP</li>
<li style="line-height: 1.6em; margin-left: 25px; padding-left: 3px;">Modify the existing ntp01 test to use the broadcast client</li>
<li style="line-height: 1.6em; margin-left: 25px; padding-left: 3px;">Set NTP_DEBUG to 1</li>
<li style="line-height: 1.6em; margin-left: 25px; padding-left: 3px;">Replace the first two lines of etc_ntp_conf with:</li>
<li style="line-height: 1.6em; margin-left: 25px; padding-left: 3px;">broadcastclient</li>
<li style="line-height: 1.6em; margin-left: 25px; padding-left: 3px;">disable auth</li>
<li style="line-height: 1.6em; margin-left: 25px; padding-left: 3px;">Build rtems-net-services against the installed BSP with lwIP network stack</li>
<li style="line-height: 1.6em; margin-left: 25px; padding-left: 3px;">Run the modified ntp01 test</li>
</ul>
<p dir="auto" style="color: #28272d; margin: 0 0 16px;" align="initial">Expected result:
NTP opens broadcast listener successfully.</p>
<p dir="auto" style="color: #28272d; margin: 0 0 16px;" align="initial">Actual result:
NTP fails to open broadcast listener with error message:
bind(37) AF_INET 0.0.0.0#123 flags 0x409 failed: Address already in use</p>
<p dir="auto" style="color: #28272d; margin: 0 0 16px;" align="initial">Workaround:
In open_socket() in bsd/freebsd/contrib/ntp/ntpd/ntp_io.c, there is a test for wildcard addresses inside a OS_NEEDS_REUSEADDR_FOR_IFADDRBIND conditional. If the set_wildcard_reuse() call is made unconditional, the socket creation succeeds.</p>
<p dir="auto" style="color: #28272d; margin: 0;" align="initial">The root cause is that behavior differs between LibBSD and lwIP. On lwIP, early-bound wildcard and non-wildcard address bindings succeed, but late-bound wildcard address bindings fail. Once any any address is bound, lwIP will fail to bind any further wildcard sockets. Either we can change lwIP's behavior to be closer to LibBSD or we can alter the NTP client to check for lwIP or blindly apply the address reuse flags.</p>
</div>
</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #737278;">
—
<br>
<a href="https://gitlab.rtems.org/rtems/pkg/rtems-net-services/-/issues/10">View it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.rtems.org">gitlab.rtems.org</a>. <a href="https://gitlab.rtems.org/-/sent_notifications/b49fed993da26f9a018288a7a2c35870/unsubscribe" target="_blank" rel="noopener noreferrer">Unsubscribe</a> from this thread · <a href="https://gitlab.rtems.org/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link">Manage all notifications</a> · <a href="https://gitlab.rtems.org/help" target="_blank" rel="noopener noreferrer" class="help-link">Help</a>
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Issue","url":"https://gitlab.rtems.org/rtems/pkg/rtems-net-services/-/issues/10"}}</script>
</p>
</div>
</body>
</html>