<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/ipxe/ipxe/pull/78'>https://github.com/ipxe/ipxe/pull/78</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Initial working static route support, with hard coded example static routes for testing</li>
  <li>Tidy up static routing related comments so that they make more sense</li>
  <li>Only create default route if default gateway address is nonzero</li>
  <li>Change discard of non-local unicast packet debug messages to DBGC2 level</li>
  <li>Add support for requesting RFC 3442 Classless Static Route DHCPv4 option, plus settings definition for it.</li>
  <li>Initial code to insert routes based on RFC 3442 option 121 data.</li>
  <li>Fix bug where /32 route receives all-ones netmask instead of all-zeroes.</li>
  <li>Add debug prints to RFC 3442 (option 121) parsing code</li>
  <li>Use htonl(...) when generating subnet mask</li>
  <li>Ensure we always free(rfc3442_data) each time around the for_each_netdev loop</li>
  <li>Debug logging on invalid RFC 3442 data</li>
  <li>Add extra safety checks to RFC 3442/option 121 static routes code</li>
  <li>Revert change to debug level for non-local unicast packet discards</li>
  <li>Remove spurious 'static' keyword from rfc3442_data void pointer</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/ipxe/ipxe/pull/78/files#diff-0">src/include/ipxe/dhcp.h</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/ipxe/ipxe/pull/78/files#diff-1">src/include/ipxe/ip.h</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/ipxe/ipxe/pull/78/files#diff-2">src/net/ipv4.c</a>
    (167)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/ipxe/ipxe/pull/78/files#diff-3">src/net/udp/dhcp.c</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/ipxe/ipxe/pull/78/files#diff-4">src/usr/route_ipv4.c</a>
    (3)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/ipxe/ipxe/pull/78.patch'>https://github.com/ipxe/ipxe/pull/78.patch</a></li>
  <li><a href='https://github.com/ipxe/ipxe/pull/78.diff'>https://github.com/ipxe/ipxe/pull/78.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/ipxe/ipxe/pull/78">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AArTVDm1IOhkKQfJ_ELpIQzLo9mefVtFks5uWaY1gaJpZM4WV2_E">mute the thread</a>.<img src="https://github.com/notifications/beacon/AArTVGh1ISKpCZVgYR_aAYiWS_PBpRUkks5uWaY1gaJpZM4WV2_E.gif" height="1" width="1" alt="" /></p>
<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/ipxe/ipxe","title":"ipxe/ipxe","subtitle":"GitHub repository","main_image_url":"https://assets-cdn.github.com/images/email/message_cards/header.png","avatar_image_url":"https://assets-cdn.github.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/ipxe/ipxe"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"Static routes support (#78)"}],"action":{"name":"View Pull Request","url":"https://github.com/ipxe/ipxe/pull/78"}}}</script>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/ipxe/ipxe/pull/78",
"url": "https://github.com/ipxe/ipxe/pull/78",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
},
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"hideOriginalBody": "false",
"originator": "AF6C5A86-E920-430C-9C59-A73278B5EFEB",
"title": "Static routes support (#78)",
"sections": [
{
"text": "",
"activityTitle": "**Hazel Smith**",
"activityImage": "https://assets-cdn.github.com/images/email/message_cards/avatar.png",
"activitySubtitle": "@hazelesque",
"facts": [

]
},
{
"title": "Commit Summary",
"facts": [
{
"name": "f3ab557",
"value": "Initial working static route support, with hard coded example static routes for testing"
},
{
"name": "e3f7fba",
"value": "Tidy up static routing related comments so that they make more sense"
},
{
"name": "1f571d8",
"value": "Only create default route if default gateway address is nonzero"
},
{
"name": "af4ead8",
"value": "Change discard of non-local unicast packet debug messages to DBGC2 level"
},
{
"name": "c77a7f6",
"value": "Add support for requesting RFC 3442 Classless Static Route DHCPv4 option, plus settings definition for it."
},
{
"name": "dd2111f",
"value": "Initial code to insert routes based on RFC 3442 option 121 data."
},
{
"name": "404af39",
"value": "Fix bug where /32 route receives all-ones netmask instead of all-zeroes."
},
{
"name": "c74a734",
"value": "Add debug prints to RFC 3442 (option 121) parsing code"
},
{
"name": "bc66f22",
"value": "Use htonl(...) when generating subnet mask"
},
{
"name": "1e838cb",
"value": "Ensure we always free(rfc3442_data) each time around the for_each_netdev loop"
},
{
"name": "d588b44",
"value": "Debug logging on invalid RFC 3442 data"
},
{
"name": "882de7a",
"value": "Add extra safety checks to RFC 3442/option 121 static routes code"
},
{
"name": "087bafe",
"value": "Revert change to debug level for non-local unicast packet discards"
},
{
"name": "2ae3a41",
"value": "Remove spurious 'static' keyword from rfc3442_data void pointer"
}
]
},
{
"title": "File Changes",
"facts": [
{
"name": "Modified",
"value": "[src/include/ipxe/dhcp.h](https://github.com/ipxe/ipxe/pull/78/files#diff-0) (3 changes)"
},
{
"name": "Modified",
"value": "[src/include/ipxe/ip.h](https://github.com/ipxe/ipxe/pull/78/files#diff-1) (4 changes)"
},
{
"name": "Modified",
"value": "[src/net/ipv4.c](https://github.com/ipxe/ipxe/pull/78/files#diff-2) (167 changes)"
},
{
"name": "Modified",
"value": "[src/net/udp/dhcp.c](https://github.com/ipxe/ipxe/pull/78/files#diff-3) (3 changes)"
},
{
"name": "Modified",
"value": "[src/usr/route_ipv4.c](https://github.com/ipxe/ipxe/pull/78/files#diff-4) (3 changes)"
}
]
}
],
"potentialAction": [
{
"name": "Add a comment",
"@type": "ActionCard",
"inputs": [
{
"isMultiLine": true,
"@type": "TextInput",
"id": "IssueComment",
"isRequired": false
}
],
"actions": [
{
"name": "Comment",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"IssueComment\",\n\"repositoryFullName\": \"ipxe/ipxe\",\n\"issueId\": 78,\n\"IssueComment\": \"{{IssueComment.value}}\"\n}"
}
]
},
{
"name": "Close pull request",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"PullRequestClose\",\n\"repositoryFullName\": \"ipxe/ipxe\",\n\"pullRequestId\": 78\n}"
},
{
"targets": [
{
"os": "default",
"uri": "https://github.com/ipxe/ipxe/pull/78"
}
],
"@type": "OpenUri",
"name": "View on GitHub"
},
{
"targets": [
{
"os": "default",
"uri": "https://github.com/ipxe/ipxe/pull/78.patch"
}
],
"@type": "OpenUri",
"name": "View patch"
},
{
"targets": [
{
"os": "default",
"uri": "https://github.com/ipxe/ipxe/pull/78.diff"
}
],
"@type": "OpenUri",
"name": "View diff"
},
{
"name": "Unsubscribe",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"MuteNotification\",\n\"threadId\": 374828996\n}"
}
],
"themeColor": "26292E"
}
]</script>