The following pull request was submitted through Github.
It can be accessed and reviewed at: https://github.com/lxc/lxc/pull/3487

This e-mail was sent by the LXC bot, direct replies will not reach the author
unless they happen to be subscribed to this list.

=== Description (from pull-request) ===
To detect if a newly generated interface name is a duplicate of an existing interface lxc_ifname_alnum_case_sensitive() currently gets a list of all interfaces using netns_getifaddrs(). When the system has a small number of interfaces this works fine, however when there are thousands or tens of thousands of interfaces this quickly becomes less than optimal.

As we only need to check if an interface name exists, and do not need the detailed information about the interfaces provided by netns_getifaddrs(), we can instead use the if_nametoindex() function, which is much more efficient.

Signed-off-by: Sam Boyles <sam.boy...@alliedtelesis.co.nz>




<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
  <link rel="dns-prefetch" href="https://github.githubassets.com";>
  <link rel="dns-prefetch" href="https://avatars0.githubusercontent.com";>
  <link rel="dns-prefetch" href="https://avatars1.githubusercontent.com";>
  <link rel="dns-prefetch" href="https://avatars2.githubusercontent.com";>
  <link rel="dns-prefetch" href="https://avatars3.githubusercontent.com";>
  <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com";>
  <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/";>



  <link crossorigin="anonymous" media="all" 
integrity="sha512-YMmzFjPJlvm/Qhqug7ZE3UZYDXl4sfGs/xmLIlbN/cPFV/AU5/89DOLsHIwlpQFyji5oVuWE049paRcr+RF3cQ=="
 rel="stylesheet" 
href="https://github.githubassets.com/assets/frameworks-60c9b31633c996f9bf421aae83b644dd.css";
 />
  <link crossorigin="anonymous" media="all" 
integrity="sha512-37pLQI8klDWPjWVVWFB9ITJLwVTTkp3Rt4bVf+yixrViURK9OoGHEJDbTLxBv/rTJhsLm8pb00H2H5AG3hUJfg=="
 rel="stylesheet" 
href="https://github.githubassets.com/assets/site-dfba4b408f2494358f8d655558507d21.css";
 />
    <link crossorigin="anonymous" media="all" 
integrity="sha512-5NyS2A1Mhx51mR91olMBW1iL0kBi5gRrROJhSkMG1lM48Mob4ORoSbS3ASfsxUTIc/lRcgqW/ER25LlOayZTpw=="
 rel="stylesheet" 
href="https://github.githubassets.com/assets/github-e4dc92d80d4c871e75991f75a253015b.css";
 />
    
    
    
    


  <meta name="viewport" content="width=device-width">
  
  <title>Improve efficiency of lxc_ifname_alnum_case_sensitive by samboyles1 · 
Pull Request #3487 · lxc/lxc · GitHub</title>
    <meta name="description" content="To detect if a newly generated interface 
name is a duplicate of an existing interface lxc_ifname_alnum_case_sensitive() 
currently gets a list of all interfaces using netns_getifaddrs(). When the 
system has a small number of interfaces this works fine, however when there are 
thousands or tens of thousands of interfaces this quickly becomes less than 
optimal.
As we only need to check if an interface name exists, and do not need the 
detailed information about the interfaces provided by netns_getifaddrs(), we 
can instead use the if_nametoindex() function, which is much more efficient.
Signed-off-by: Sam Boyles sam.boy...@alliedtelesis.co.nz">
    <link rel="search" type="application/opensearchdescription+xml" 
href="/opensearch.xml" title="GitHub">
  <link rel="fluid-icon" href="https://github.com/fluidicon.png"; title="GitHub">
  <meta property="fb:app_id" content="1401488693436528">
  <meta name="apple-itunes-app" content="app-id=1477376905">

    <meta name="twitter:image:src" 
content="https://avatars1.githubusercontent.com/u/2301756?s=400&amp;v=4"; 
/><meta name="twitter:site" content="@github" /><meta name="twitter:card" 
content="summary" /><meta name="twitter:title" content="Improve efficiency of 
lxc_ifname_alnum_case_sensitive by samboyles1 · Pull Request #3487 · lxc/lxc" 
/><meta name="twitter:description" content="To detect if a newly generated 
interface name is a duplicate of an existing interface 
lxc_ifname_alnum_case_sensitive() currently gets a list of all interfaces using 
netns_getifaddrs(). When the sy..." />
    <meta property="og:image" 
content="https://avatars1.githubusercontent.com/u/2301756?s=400&amp;v=4"; 
/><meta property="og:site_name" content="GitHub" /><meta property="og:type" 
content="object" /><meta property="og:title" content="Improve efficiency of 
lxc_ifname_alnum_case_sensitive by samboyles1 · Pull Request #3487 · lxc/lxc" 
/><meta property="og:url" content="https://github.com/lxc/lxc/pull/3487"; 
/><meta property="og:description" content="To detect if a newly generated 
interface name is a duplicate of an existing interface 
lxc_ifname_alnum_case_sensitive() currently gets a list of all interfaces using 
netns_getifaddrs(). When the sy..." />

  <link rel="assets" href="https://github.githubassets.com/";>
  

  <meta name="request-id" content="9DB8:3DD5:2412FB:40EB3A:5F110D45" 
data-pjax-transient="true"/><meta name="html-safe-nonce" 
content="58df1189223f0da75e65f77bdda0d40f50328e8d" 
data-pjax-transient="true"/><meta name="visitor-payload" 
content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5REI4OjNERDU6MjQxMkZCOjQwRUIzQTo1RjExMEQ0NSIsInZpc2l0b3JfaWQiOiIzNzI5NTQ1NjI0ODU0NTMxMzk3IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0="
 data-pjax-transient="true"/><meta name="visitor-hmac" 
content="f6b2c7570dbae8a25ebfc95bb52f017a27c33c505682874e54070cb83cb1ab65" 
data-pjax-transient="true"/>

    <meta name="hovercard-subject-tag" content="pull_request:450693367" 
data-pjax-transient>


  <meta name="github-keyboard-shortcuts" 
content="repository,pull-request-list,pull-request-conversation,pull-request-files-changed"
 data-pjax-transient="true" />

  

  <meta name="selected-link" value="repo_pulls" data-pjax-transient>

    <meta name="google-site-verification" 
content="c1kuD-K2HIVF635lypcsWPoD4kilo5-jA_wBFyT4uMY">
  <meta name="google-site-verification" 
content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
  <meta name="google-site-verification" 
content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
  <meta name="google-site-verification" 
content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">

  <meta name="octolytics-host" content="collector.githubapp.com" /><meta 
name="octolytics-app-id" content="github" /><meta name="octolytics-event-url" 
content="https://collector.githubapp.com/github-external/browser_event"; /><meta 
name="octolytics-dimension-ga_id" content="" class="js-octo-ga-id" />

  <meta name="analytics-location" 
content="/&lt;user-name&gt;/&lt;repo-name&gt;/pull_requests/show" 
data-pjax-transient="true" />

  




    <meta name="google-analytics" content="UA-3769691-2">


<meta class="js-ga-set" name="dimension10" content="Not Responsive" 
data-pjax-transient>

<meta class="js-ga-set" name="dimension1" content="Logged Out">



  

      <meta name="hostname" content="github.com">
    <meta name="user-login" content="">


      <meta name="expected-hostname" content="github.com">


    <meta name="enabled-features" content="MARKETPLACE_PENDING_INSTALLATIONS">

  <meta http-equiv="x-pjax-version" content="ba47db5b75ee20014f3090a525a8132f">
  

      <link href="https://github.com/lxc/lxc/commits/master.atom"; 
rel="alternate" title="Recent Commits to lxc:master" 
type="application/atom+xml">

  <meta name="go-import" content="github.com/lxc/lxc git 
https://github.com/lxc/lxc.git";>

  <meta name="octolytics-dimension-user_id" content="2301756" /><meta 
name="octolytics-dimension-user_login" content="lxc" /><meta 
name="octolytics-dimension-repository_id" content="5720995" /><meta 
name="octolytics-dimension-repository_nwo" content="lxc/lxc" /><meta 
name="octolytics-dimension-repository_public" content="true" /><meta 
name="octolytics-dimension-repository_is_fork" content="false" /><meta 
name="octolytics-dimension-repository_network_root_id" content="5720995" 
/><meta name="octolytics-dimension-repository_network_root_nwo" 
content="lxc/lxc" /><meta 
name="octolytics-dimension-repository_explore_github_marketplace_ci_cta_shown" 
content="false" />




  <meta name="browser-stats-url" 
content="https://api.github.com/_private/browser/stats";>

  <meta name="browser-errors-url" 
content="https://api.github.com/_private/browser/errors";>

  <link rel="mask-icon" 
href="https://github.githubassets.com/pinned-octocat.svg"; color="#000000">
  <link rel="alternate icon" class="js-site-favicon" type="image/png" 
href="https://github.githubassets.com/favicons/favicon.png";>
  <link rel="icon" class="js-site-favicon" type="image/svg+xml" 
href="https://github.githubassets.com/favicons/favicon.svg";>

<meta name="theme-color" content="#1e2327">


  <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">

  </head>

  <body class="logged-out env-production min-width-lg">
    

    <div class="position-relative js-header-wrapper ">
      <a href="#start-of-content" class="px-2 py-4 bg-blue text-white 
show-on-focus js-skip-to-content">Skip to content</a>
      <span class="Progress progress-pjax-loader position-fixed width-full 
js-pjax-loader-bar">
        <span class="progress-pjax-loader-bar top-0 left-0" style="width: 
0%;"></span>
      </span>

      
      



          <header class="Header-old header-logged-out  position-relative f4 
py-2" role="banner">
  <div class="container-xl d-flex px-3">
    <div class="d-flex flex-justify-between flex-items-center">
        <a class="mr-4" href="https://github.com/"; aria-label="Homepage" 
data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark">
          <svg height="32" class="octicon octicon-mark-github text-white" 
viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path 
fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 
7.59.4.07.55-.17.55-.38 
0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01
 1.08.58 1.23.82.72 1.21 1.87.87 
2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 
0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 
1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 
2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 
1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 
8c0-4.42-3.58-8-8-8z"></path></svg>
        </a>
    </div>

    <div class="HeaderMenu HeaderMenu--logged-out d-flex flex-justify-between 
flex-items-center flex-auto">
      <div class="d-none">
        <button class="btn-link js-details-target" type="button" 
aria-label="Toggle navigation" aria-expanded="false">
          <svg height="24" class="octicon octicon-x text-gray" viewBox="0 0 24 
24" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" 
d="M5.72 5.72a.75.75 0 011.06 0L12 10.94l5.22-5.22a.75.75 0 111.06 1.06L13.06 
12l5.22 5.22a.75.75 0 11-1.06 1.06L12 13.06l-5.22 5.22a.75.75 0 
01-1.06-1.06L10.94 12 5.72 6.78a.75.75 0 010-1.06z"></path></svg>
        </button>
      </div>

        <nav class="mt-0" aria-label="Global">
          <ul class="d-flex list-style-none">
              <li class=" mr-3 mr-lg-3 edge-item-fix position-relative 
flex-wrap flex-justify-between d-flex flex-items-center ">
                <details class="HeaderMenu-details details-overlay 
details-reset width-full">
                  <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 
border-0 no-wrap  d-inline-block">
                    Why GitHub?
                    <svg x="0px" y="0px" viewBox="0 0 14 8" 
xml:space="preserve" fill="none" class="icon-chevon-down-mktg 
position-relative">
                      <path d="M1,1l6.2,6L13,1"></path>
                    </svg>
                  </summary>
                  <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 
mt-0  p-4 left-n4 position-absolute">
                    <a href="/features" class="py-2 lh-condensed-ultra d-block 
link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) 
Header, go to Features">Features <span class="Bump-link-symbol float-right 
text-normal text-gray-light">&rarr;</span></a>
                    <ul class="list-style-none f5 pb-3">
                      <li class="edge-item-fix"><a 
href="/features/code-review/" class="py-2 lh-condensed-ultra d-block link-gray 
no-underline f5" data-ga-click="(Logged out) Header, go to Code review">Code 
review</a></li>
                      <li class="edge-item-fix"><a 
href="/features/project-management/" class="py-2 lh-condensed-ultra d-block 
link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Project 
management">Project management</a></li>
                      <li class="edge-item-fix"><a 
href="/features/integrations" class="py-2 lh-condensed-ultra d-block link-gray 
no-underline f5" data-ga-click="(Logged out) Header, go to 
Integrations">Integrations</a></li>
                      <li class="edge-item-fix"><a href="/features/actions" 
class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" 
data-ga-click="(Logged out) Header, go to Actions">Actions</a></li>
                      <li class="edge-item-fix"><a href="/features/packages" 
class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" 
data-ga-click="(Logged out) Header, go to GitHub Packages">Packages</a></li>
                      <li class="edge-item-fix"><a href="/features/security" 
class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" 
data-ga-click="(Logged out) Header, go to Security">Security</a></li>
                      <li class="edge-item-fix"><a 
href="/features#team-management" class="py-2 lh-condensed-ultra d-block 
link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Team 
management">Team management</a></li>
                      <li class="edge-item-fix"><a href="/features#hosting" 
class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" 
data-ga-click="(Logged out) Header, go to Code hosting">Hosting</a></li>
                    </ul>

                    <ul class="list-style-none mb-0 border-lg-top pt-lg-3">
                      <li class="edge-item-fix"><a href="/customer-stories" 
class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline 
h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Customer 
stories">Customer stories <span class="Bump-link-symbol float-right text-normal 
text-gray-light">&rarr;</span></a></li>
                      <li class="edge-item-fix"><a href="/security" class="py-2 
lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 
Bump-link--hover" data-ga-click="(Logged out) Header, go to Security">Security 
<span class="Bump-link-symbol float-right text-normal 
text-gray-light">&rarr;</span></a></li>
                    </ul>
                  </div>
                </details>
              </li>
              <li class=" mr-3 mr-lg-3">
                <a href="/team" class="HeaderMenu-link no-underline py-3 
d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to 
Team">Team</a>
              </li>
              <li class=" mr-3 mr-lg-3">
                <a href="/enterprise" class="HeaderMenu-link no-underline py-3 
d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to 
Enterprise">Enterprise</a>
              </li>

              <li class=" mr-3 mr-lg-3 edge-item-fix position-relative 
flex-wrap flex-justify-between d-flex flex-items-center ">
                <details class="HeaderMenu-details details-overlay 
details-reset width-full">
                  <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 
border-0 no-wrap  d-inline-block">
                    Explore
                    <svg x="0px" y="0px" viewBox="0 0 14 8" 
xml:space="preserve" fill="none" class="icon-chevon-down-mktg 
position-relative">
                      <path d="M1,1l6.2,6L13,1"></path>
                    </svg>
                  </summary>

                  <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 
pt-2 pb-0 mt-0  p-4 left-n4 position-absolute">
                    <ul class="list-style-none mb-3">
                      <li class="edge-item-fix"><a href="/explore" class="py-2 
lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" 
data-ga-click="(Logged out) Header, go to Explore">Explore GitHub <span 
class="Bump-link-symbol float-right text-normal 
text-gray-light">&rarr;</span></a></li>
                    </ul>

                    <h4 class="text-gray-light text-normal text-mono f5 mb-2  
border-top pt-3">Learn &amp; contribute</h4>
                    <ul class="list-style-none mb-3">
                      <li class="edge-item-fix"><a href="/topics" class="py-2 
lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged 
out) Header, go to Topics">Topics</a></li>
                        <li class="edge-item-fix"><a href="/collections" 
class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" 
data-ga-click="(Logged out) Header, go to Collections">Collections</a></li>
                      <li class="edge-item-fix"><a href="/trending" class="py-2 
lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged 
out) Header, go to Trending">Trending</a></li>
                      <li class="edge-item-fix"><a 
href="https://lab.github.com/"; class="py-2 lh-condensed-ultra d-block link-gray 
no-underline f5" data-ga-click="(Logged out) Header, go to Learning 
lab">Learning Lab</a></li>
                      <li class="edge-item-fix"><a 
href="https://opensource.guide"; class="py-2 lh-condensed-ultra d-block 
link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Open 
source guides">Open source guides</a></li>
                    </ul>

                    <h4 class="text-gray-light text-normal text-mono f5 mb-2  
border-top pt-3">Connect with others</h4>
                    <ul class="list-style-none mb-0">
                      <li class="edge-item-fix"><a 
href="https://github.com/events"; class="py-2 lh-condensed-ultra d-block 
link-gray no-underline f5" data-ga-click="(Logged out) Header, go to 
Events">Events</a></li>
                      <li class="edge-item-fix"><a 
href="https://github.community"; class="py-2 lh-condensed-ultra d-block 
link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Community 
forum">Community forum</a></li>
                      <li class="edge-item-fix"><a 
href="https://education.github.com"; class="py-2 pb-0 lh-condensed-ultra d-block 
link-gray no-underline f5" data-ga-click="(Logged out) Header, go to GitHub 
Education">GitHub Education</a></li>
                    </ul>
                  </div>
                </details>
              </li>

              <li class=" mr-3 mr-lg-3">
                <a href="/marketplace" class="HeaderMenu-link no-underline py-3 
d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to 
Marketplace">Marketplace</a>
              </li>

              <li class=" mr-3 mr-lg-3 edge-item-fix position-relative 
flex-wrap flex-justify-between d-flex flex-items-center ">
                <details class="HeaderMenu-details details-overlay 
details-reset width-full">
                  <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 
border-0 no-wrap  d-inline-block">
                    Pricing
                    <svg x="0px" y="0px" viewBox="0 0 14 8" 
xml:space="preserve" fill="none" class="icon-chevon-down-mktg 
position-relative">
                       <path d="M1,1l6.2,6L13,1"></path>
                    </svg>
                  </summary>

                  <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 
pt-2 pb-4 mt-0  p-4 left-n4 position-absolute">
                    <a href="/pricing" class="pb-2 lh-condensed-ultra d-block 
link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) 
Header, go to Pricing">Plans <span class="Bump-link-symbol float-right 
text-normal text-gray-light">&rarr;</span></a>

                    <ul class="list-style-none mb-3">
                      <li class="edge-item-fix"><a 
href="/pricing#feature-comparison" class="py-2 lh-condensed-ultra d-block 
link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Compare 
plans">Compare plans</a></li>
                      <li class="edge-item-fix"><a 
href="https://enterprise.github.com/contact"; class="py-2 lh-condensed-ultra 
d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to 
Contact Sales">Contact Sales</a></li>
                    </ul>

                    <ul class="list-style-none mb-0  border-top pt-3">
                      <li class="edge-item-fix"><a href="/nonprofit" 
class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline 
h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to 
Nonprofits">Nonprofit <span class="Bump-link-symbol float-right text-normal 
text-gray-light">&rarr;</span></a></li>
                      <li class="edge-item-fix"><a 
href="https://education.github.com"; class="py-2 pb-0 lh-condensed-ultra d-block 
no-underline link-gray-dark no-underline h5 Bump-link--hover"  
data-ga-click="(Logged out) Header, go to Education">Education <span 
class="Bump-link-symbol float-right text-normal 
text-gray-light">&rarr;</span></a></li>
                    </ul>
                  </div>
                </details>
              </li>
          </ul>
        </nav>

      <div class="d-flex flex-items-center px-0 text-center text-left">
          <div class="d-lg-flex ">
            <div class="header-search header-search-current 
js-header-search-current  mr-3 scoped-search site-scoped-search js-site-search 
position-relative js-jump-to js-header-search-current-jump-to"
  role="combobox"
  aria-owns="jump-to-results"
  aria-label="Search or jump to"
  aria-haspopup="listbox"
  aria-expanded="false"
>
  <div class="position-relative">
    <!-- '"` --><!-- </textarea></xmp> --></option></form><form 
class="js-site-search-form" role="search" aria-label="Site" 
data-scope-type="Repository" data-scope-id="5720995" 
data-scoped-search-url="/lxc/lxc/search" data-unscoped-search-url="/search" 
action="/lxc/lxc/search" accept-charset="UTF-8" method="get">
      <label class="form-control input-sm header-search-wrapper p-0 
header-search-wrapper-jump-to position-relative d-flex flex-justify-between 
flex-items-center js-chromeless-input-container">
        <input type="text"
          class="form-control input-sm header-search-input jump-to-field 
js-jump-to-field js-site-search-focus js-site-search-field is-clearable"
          data-hotkey="s,/"
          name="q"
          value=""
          placeholder="Search"
          data-unscoped-placeholder="Search GitHub"
          data-scoped-placeholder="Search"
          autocapitalize="off"
          aria-autocomplete="list"
          aria-controls="jump-to-results"
          aria-label="Search"
          
data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations"
          spellcheck="false"
          autocomplete="off"
          >
          <input type="hidden" data-csrf="true" 
class="js-data-jump-to-suggestions-path-csrf" 
value="FMp9INbvPM+yNoabb6Z8Mt27rH3V2F12E8ykvBq6X6EQbBdy2i3wE9UC/LEvNUlxXcs+ZiH6RfVFpqJzq/jBpA=="
 />
          <input type="hidden" class="js-site-search-type-field" name="type" >
            <img 
src="https://github.githubassets.com/images/search-key-slash.svg"; alt="" 
class="mr-2 header-search-key-slash">

            <div class="Box position-absolute overflow-hidden d-none 
jump-to-suggestions js-jump-to-suggestions-container">
              
<ul class="d-none js-jump-to-suggestions-template-container">
  

<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item 
js-navigation-item js-jump-to-suggestion" role="option">
  <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center 
jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" 
href="">
    <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 
text-center d-none">
      <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 
js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" 
viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 
2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 
01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 
1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 
011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 
15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 
00-.25.25z"></path></svg>
      <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 
js-jump-to-octicon-project d-none" title="Project" aria-label="Project" 
viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 
0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 
14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 
0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 
3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 
00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 
00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg>
      <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 
js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 
0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 
4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 
3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg>
    </div>

    <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" 
alt="" aria-label="Team" src="" width="28" height="28">

    <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto 
overflow-hidden text-left no-wrap css-truncate css-truncate-target">
    </div>

    <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light 
ml-1 f6 d-none js-jump-to-badge-search">
      <span class="js-jump-to-badge-search-text-default d-none" aria-label="in 
this repository">
        In this repository
      </span>
      <span class="js-jump-to-badge-search-text-global d-none" aria-label="in 
all of GitHub">
        All GitHub
      </span>
      <span aria-hidden="true" class="d-inline-block ml-1 
v-align-middle">↵</span>
    </div>

    <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 
text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
      Jump to
      <span class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>
  </a>
</li>

</ul>

<ul class="d-none js-jump-to-no-results-template-container">
  <li class="d-flex flex-justify-center flex-items-center f5 d-none 
js-jump-to-suggestion p-2">
    <span class="text-gray">No suggested jump to results</span>
  </li>
</ul>

<ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container 
jump-to-suggestions-results-container js-jump-to-suggestions-results-container">
  

<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item 
js-navigation-item js-jump-to-scoped-search d-none" role="option">
  <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center 
jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" 
href="">
    <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 
text-center d-none">
      <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 
js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" 
viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 
2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 
01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 
1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 
011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 
15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 
00-.25.25z"></path></svg>
      <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 
js-jump-to-octicon-project d-none" title="Project" aria-label="Project" 
viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 
0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 
14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 
0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 
3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 
00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 
00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg>
      <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 
js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 
0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 
4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 
3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg>
    </div>

    <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" 
alt="" aria-label="Team" src="" width="28" height="28">

    <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto 
overflow-hidden text-left no-wrap css-truncate css-truncate-target">
    </div>

    <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light 
ml-1 f6 d-none js-jump-to-badge-search">
      <span class="js-jump-to-badge-search-text-default d-none" aria-label="in 
this repository">
        In this repository
      </span>
      <span class="js-jump-to-badge-search-text-global d-none" aria-label="in 
all of GitHub">
        All GitHub
      </span>
      <span aria-hidden="true" class="d-inline-block ml-1 
v-align-middle">↵</span>
    </div>

    <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 
text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
      Jump to
      <span class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>
  </a>
</li>

  

<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item 
js-navigation-item js-jump-to-global-search d-none" role="option">
  <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center 
jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" 
href="">
    <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 
text-center d-none">
      <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 
js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" 
viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 
2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 
01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 
1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 
011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 
15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 
00-.25.25z"></path></svg>
      <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 
js-jump-to-octicon-project d-none" title="Project" aria-label="Project" 
viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 
0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 
14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 
0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 
3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 
00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 
00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg>
      <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 
js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 
0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 
4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 
3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg>
    </div>

    <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" 
alt="" aria-label="Team" src="" width="28" height="28">

    <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto 
overflow-hidden text-left no-wrap css-truncate css-truncate-target">
    </div>

    <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light 
ml-1 f6 d-none js-jump-to-badge-search">
      <span class="js-jump-to-badge-search-text-default d-none" aria-label="in 
this repository">
        In this repository
      </span>
      <span class="js-jump-to-badge-search-text-global d-none" aria-label="in 
all of GitHub">
        All GitHub
      </span>
      <span aria-hidden="true" class="d-inline-block ml-1 
v-align-middle">↵</span>
    </div>

    <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 
text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
      Jump to
      <span class="d-inline-block ml-1 v-align-middle">↵</span>
    </div>
  </a>
</li>


</ul>

            </div>
      </label>
</form>  </div>
</div>

          </div>

        <a href="/login?return_to=%2Flxc%2Flxc%2Fpull%2F3487"
          class="HeaderMenu-link no-underline mr-3"
          
data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site
 header 
menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/lxc/lxc/pull/3487&quot;,&quot;user_id&quot;:null}}";
 
data-hydro-click-hmac="30b0cefb8acfa3b561257d7cec04cc77f8a7b89f24b1425690205e0abb9f61cc"
          data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">
          Sign&nbsp;in
        </a>
            <a 
href="/join?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow&amp;source_repo=lxc%2Flxc"
              class="HeaderMenu-link d-inline-block no-underline border 
border-gray-dark rounded-1 px-2 py-1"
              
data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site
 header 
menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/lxc/lxc/pull/3487&quot;,&quot;user_id&quot;:null}}";
 
data-hydro-click-hmac="30b0cefb8acfa3b561257d7cec04cc77f8a7b89f24b1425690205e0abb9f61cc"
              data-ga-click="Sign up, click to sign up for account, 
ref_page:/&lt;user-name&gt;/&lt;repo-name&gt;/pull_requests/show;ref_cta:Sign 
up;ref_loc:header logged out">
              Sign&nbsp;up
            </a>
      </div>
    </div>
  </div>
</header>

    </div>

  <div id="start-of-content" class="show-on-focus"></div>




    <div id="js-flash-container">


  <template class="js-flash-template">
    <div class="flash flash-full  js-flash-template-container">
  <div class=" px-2" >
    <button class="flash-close js-flash-close" type="button" 
aria-label="Dismiss this message">
      <svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" 
width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 
3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 
3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 
4.78a.75.75 0 010-1.06z"></path></svg>
    </button>
    
      <div class="js-flash-template-message"></div>

  </div>
</div>
  </template>
</div>


  

  <include-fragment class="js-notification-shelf-include-fragment" 
data-base-src="https://github.com/notifications/beta/shelf";></include-fragment>



  <div
    class="application-main "
    data-commit-hovercards-enabled
    data-discussion-hovercards-enabled
    data-issue-and-pr-hovercards-enabled
  >
        <div itemscope itemtype="http://schema.org/SoftwareSourceCode"; class="">
    <main id="js-repo-pjax-container" data-pjax-container >
      
<!-- base sha1: &quot;19be19a35249038495dc6fc0e162ec0e5ddb4804&quot; -->
<!-- head sha1: &quot;4810a7a3e6423c85690676474976ee54c3733c9e&quot; -->

  


  










  <div class="bg-gray-light pt-3 hide-full-screen mb-5">

    <div class="d-flex mb-3 px-5">

      <div class="flex-auto min-width-0 width-fit mr-3">
        <h1 class=" d-flex flex-wrap flex-items-center break-word f3 
text-normal">
    <svg class="octicon octicon-repo text-gray" viewBox="0 0 16 16" 
version="1.1" width="16" height="16" aria-hidden="true"><path 
fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 
01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 
1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 
0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 
00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 
00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg>
  <span class="author ml-2 flex-self-stretch" itemprop="author">
    <a class="url fn" rel="author" data-hovercard-type="organization" 
data-hovercard-url="/orgs/lxc/hovercard" href="/lxc">lxc</a>
  </span>
  <span class="mx-1 flex-self-stretch">/</span>
  <strong itemprop="name" class="mr-2 flex-self-stretch">
    <a data-pjax="#js-repo-pjax-container" href="/lxc/lxc">lxc</a>
  </strong>
  
</h1>


      </div>

      <ul class="pagehead-actions flex-shrink-0 " style="padding: 2px 0;">

  <li>
      <a class="tooltipped tooltipped-s btn btn-sm btn-with-count" 
aria-label="You must be signed in to watch a repository" rel="nofollow" 
data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;notification
 subscription menu 
watch&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/lxc/lxc/pull/3487&quot;,&quot;user_id&quot;:null}}";
 
data-hydro-click-hmac="3bcb48c13204ee4016d25cfa8a86935c746ebc1c2d1dae257298f41034ed89db"
 href="/login?return_to=%2Flxc%2Flxc">
    <svg height="16" class="octicon octicon-eye" viewBox="0 0 16 16" 
version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.679 
7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 
2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 
.136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 
0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 
010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 
1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 
14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 
0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 
0 100-4 2 2 0 000 4z"></path></svg>

    Watch
</a>    <a class="social-count" href="/lxc/lxc/watchers"
       aria-label="216 users are watching this repository">
      216
    </a>

  </li>

  <li>
        <a class="btn btn-sm btn-with-count  tooltipped tooltipped-s" 
aria-label="You must be signed in to star a repository" rel="nofollow" 
data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star
 
button&quot;,&quot;repository_id&quot;:5720995,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/lxc/lxc/pull/3487&quot;,&quot;user_id&quot;:null}}";
 
data-hydro-click-hmac="f7fabfe3194d15c01d0f01dc1c54d967816524eee7cacd004059974f65d88e88"
 href="/login?return_to=%2Flxc%2Flxc">
      <svg height="16" class="octicon octicon-star v-align-text-bottom" 
vertical_align="text_bottom" viewBox="0 0 16 16" version="1.1" width="16" 
aria-hidden="true"><path fill-rule="evenodd" d="M8 .25a.75.75 0 
01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 
4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 
01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 
01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 
01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 
2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 
01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 
2.694v.001z"></path></svg>

      Star
</a>
    <a class="social-count js-social-count" href="/lxc/lxc/stargazers"
      aria-label="3094 users starred this repository">
      3.1k
    </a>

  </li>

  <li>
      <a class="btn btn-sm btn-with-count tooltipped tooltipped-s" 
aria-label="You must be signed in to fork a repository" rel="nofollow" 
data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;repo
 details fork 
button&quot;,&quot;repository_id&quot;:5720995,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/lxc/lxc/pull/3487&quot;,&quot;user_id&quot;:null}}";
 
data-hydro-click-hmac="d5509823c74a30b446d0a7b0938c427004787239c384556e74a3f1bc4480f5df"
 href="/login?return_to=%2Flxc%2Flxc">
        <svg class="octicon octicon-repo-forked" viewBox="0 0 16 16" 
version="1.1" width="16" height="16" aria-hidden="true"><path 
fill-rule="evenodd" d="M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 
2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 
0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a.75.75 0 
01-.75.75h-4.5A.75.75 0 015 6.25v-.878zm3.75 7.378a.75.75 0 11-1.5 0 .75.75 0 
011.5 0zm3-8.75a.75.75 0 100-1.5.75.75 0 000 1.5z"></path></svg>
        Fork
</a>
    <a href="/lxc/lxc/network/members" class="social-count"
       aria-label="891 users forked this repository">
      891
    </a>
  </li>
</ul>

    </div>
    
<nav class="js-repo-nav js-sidenav-container-pjax js-responsive-underlinenav 
overflow-hidden UnderlineNav px-3 px-md-4 px-lg-5 bg-gray-light" 
aria-label="Repository" data-pjax="#js-repo-pjax-container">
  <ul class="UnderlineNav-body list-style-none ">
          <li class="d-flex">
        <a class="js-selected-navigation-item UnderlineNav-item 
hx_underlinenav-item no-wrap js-responsive-underlinenav-item" 
data-tab-item="code-tab" data-hotkey="g c" data-ga-click="Repository, 
Navigation click, Code tab" data-selected-links="repo_source repo_downloads 
repo_commits repo_releases repo_tags repo_branches repo_packages 
repo_deployments /lxc/lxc" href="/lxc/lxc">
              <svg height="16" class="octicon octicon-code UnderlineNav-octicon 
d-none d-sm-inline" classes="UnderlineNav-octicon" display="none inline" 
viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path 
fill-rule="evenodd" d="M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 
0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 
1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 
000-1.06l-4.25-4.25z"></path></svg>

            <span data-content="Code">Code</span>
              <span class="Counter " title="Not available"></span>
</a>      </li>
      <li class="d-flex">
        <a class="js-selected-navigation-item UnderlineNav-item 
hx_underlinenav-item no-wrap js-responsive-underlinenav-item" 
data-tab-item="issues-tab" data-hotkey="g i" data-ga-click="Repository, 
Navigation click, Issues tab" data-selected-links="repo_issues repo_labels 
repo_milestones /lxc/lxc/issues" href="/lxc/lxc/issues">
              <svg height="16" class="octicon octicon-issue-opened 
UnderlineNav-octicon d-none d-sm-inline" classes="UnderlineNav-octicon" 
display="none inline" viewBox="0 0 16 16" version="1.1" width="16" 
aria-hidden="true"><path fill-rule="evenodd" d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 
0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 
0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z"></path></svg>

            <span data-content="Issues">Issues</span>
              <span class="Counter " title="51">51</span>
</a>      </li>
      <li class="d-flex">
        <a class="js-selected-navigation-item selected UnderlineNav-item 
hx_underlinenav-item no-wrap js-responsive-underlinenav-item" 
data-tab-item="pull-requests-tab" data-hotkey="g p" data-ga-click="Repository, 
Navigation click, Pull requests tab" aria-current="page" 
data-selected-links="repo_pulls checks /lxc/lxc/pulls" href="/lxc/lxc/pulls">
              <svg height="16" class="octicon octicon-git-pull-request 
UnderlineNav-octicon d-none d-sm-inline" classes="UnderlineNav-octicon" 
display="none inline" viewBox="0 0 16 16" version="1.1" width="16" 
aria-hidden="true"><path fill-rule="evenodd" d="M7.177 3.073L9.573.677A.25.25 0 
0110 .854v4.792a.25.25 0 01-.427.177L7.177 3.427a.25.25 0 010-.354zM3.75 
2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 
2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 2.25 0 011.5 3.25zM11 
2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 2.5 0 0011 2.5zm1 
10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 100 1.5.75.75 0 
000-1.5z"></path></svg>

            <span data-content="Pull requests">Pull requests</span>
              <span class="Counter " title="7">7</span>
</a>      </li>
      <li class="d-flex">
        <a class="js-selected-navigation-item UnderlineNav-item 
hx_underlinenav-item no-wrap js-responsive-underlinenav-item" 
data-tab-item="actions-tab" data-hotkey="g w" data-ga-click="Repository, 
Navigation click, Actions tab" data-selected-links="repo_actions 
/lxc/lxc/actions" href="/lxc/lxc/actions">
              <svg height="16" class="octicon octicon-play UnderlineNav-octicon 
d-none d-sm-inline" classes="UnderlineNav-octicon" display="none inline" 
viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path 
fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 
16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 
00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z"></path></svg>

            <span data-content="Actions">Actions</span>
              <span class="Counter " title="Not available"></span>
</a>      </li>
      <li class="d-flex">
        <a class="js-selected-navigation-item UnderlineNav-item 
hx_underlinenav-item no-wrap js-responsive-underlinenav-item" 
data-tab-item="security-tab" data-hotkey="g s" data-ga-click="Repository, 
Navigation click, Security tab" data-selected-links="security overview alerts 
policy token_scanning code_scanning /lxc/lxc/security" href="/lxc/lxc/security">
              <svg height="16" class="octicon octicon-shield 
UnderlineNav-octicon d-none d-sm-inline" classes="UnderlineNav-octicon" 
display="none inline" viewBox="0 0 16 16" version="1.1" width="16" 
aria-hidden="true"><path fill-rule="evenodd" d="M7.467.133a1.75 1.75 0 011.066 
0l5.25 1.68A1.75 1.75 0 0115 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 
1.498-2.585 2.813-5.032 3.855a1.7 1.7 0 01-1.33 
0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 
011.217-1.667l5.25-1.68zm.61 1.429a.25.25 0 00-.153 0l-5.25 1.68a.25.25 0 
00-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 
3.297a.2.2 0 00.154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 
13.5 7V3.48a.25.25 0 00-.174-.237l-5.25-1.68zM9 10.5a1 1 0 11-2 0 1 1 0 012 
0zm-.25-5.75a.75.75 0 10-1.5 0v3a.75.75 0 001.5 0v-3z"></path></svg>

            <span data-content="Security">Security</span>
              <span class="js-security-tab-count Counter " 
data-url="/lxc/lxc/security/overall-count" title="Not available"></span>
</a>      </li>
      <li class="d-flex">
        <a class="js-selected-navigation-item UnderlineNav-item 
hx_underlinenav-item no-wrap js-responsive-underlinenav-item" 
data-tab-item="insights-tab" data-ga-click="Repository, Navigation click, 
Insights tab" data-selected-links="repo_graphs repo_contributors 
dependency_graph dependabot_updates pulse people /lxc/lxc/pulse" 
href="/lxc/lxc/pulse">
              <svg height="16" class="octicon octicon-graph 
UnderlineNav-octicon d-none d-sm-inline" classes="UnderlineNav-octicon" 
display="none inline" viewBox="0 0 16 16" version="1.1" width="16" 
aria-hidden="true"><path fill-rule="evenodd" d="M1.5 1.75a.75.75 0 00-1.5 
0v12.5c0 .414.336.75.75.75h14.5a.75.75 0 000-1.5H1.5V1.75zm14.28 2.53a.75.75 0 
00-1.06-1.06L10 7.94 7.53 5.47a.75.75 0 00-1.06 0L3.22 8.72a.75.75 0 001.06 
1.06L7 7.06l2.47 2.47a.75.75 0 001.06 0l5.25-5.25z"></path></svg>

            <span data-content="Insights">Insights</span>
              <span class="Counter " title="Not available"></span>
</a>      </li>

</ul>        <div class="position-absolute right-0 pr-3 pr-md-4 pr-lg-5 
js-responsive-underlinenav-overflow" style="visibility:hidden;">
      <details class="details-overlay details-reset position-relative">
  <summary role="button">
              <div class="UnderlineNav-item mr-0 border-0">
            <svg class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" 
version="1.1" width="16" height="16" aria-hidden="true"><path d="M8 9a1.5 1.5 0 
100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 
100-3 1.5 1.5 0 000 3z"></path></svg>
            <span class="sr-only">More</span>
          </div>

</summary>            <details-menu class="dropdown-menu dropdown-menu-sw " 
role="menu">
  
            <ul>
                <li data-menu-item="code-tab" hidden>
                  <a role="menuitem" class="js-selected-navigation-item 
dropdown-item" data-selected-links=" /lxc/lxc" href="/lxc/lxc">
                    Code
</a>                </li>
                <li data-menu-item="issues-tab" hidden>
                  <a role="menuitem" class="js-selected-navigation-item 
dropdown-item" data-selected-links=" /lxc/lxc/issues" href="/lxc/lxc/issues">
                    Issues
</a>                </li>
                <li data-menu-item="pull-requests-tab" hidden>
                  <a role="menuitem" class="js-selected-navigation-item 
dropdown-item" data-selected-links=" /lxc/lxc/pulls" href="/lxc/lxc/pulls">
                    Pull requests
</a>                </li>
                <li data-menu-item="actions-tab" hidden>
                  <a role="menuitem" class="js-selected-navigation-item 
dropdown-item" data-selected-links=" /lxc/lxc/actions" href="/lxc/lxc/actions">
                    Actions
</a>                </li>
                <li data-menu-item="security-tab" hidden>
                  <a role="menuitem" class="js-selected-navigation-item 
dropdown-item" data-selected-links=" /lxc/lxc/security" 
href="/lxc/lxc/security">
                    Security
</a>                </li>
                <li data-menu-item="insights-tab" hidden>
                  <a role="menuitem" class="js-selected-navigation-item 
dropdown-item" data-selected-links=" /lxc/lxc/pulse" href="/lxc/lxc/pulse">
                    Insights
</a>                </li>
            </ul>

</details-menu>
</details>    </div>

</nav>
  </div>

<div class="container-xl clearfix new-discussion-timeline  px-3 px-md-4 
px-lg-5">
  <div class="repository-content " >

    
    
  <div class="js-check-all-container" data-pjax>
    
    <signup-prompt class="signup-prompt-bg rounded-1" data-prompt="signup" 
hidden>
    <div class="signup-prompt p-4 text-center mb-4 rounded-1">
      <div class="position-relative">
        <button
          type="button"
          class="position-absolute top-0 right-0 btn-link link-gray"
          data-action="click:signup-prompt#dismiss"
          data-ga-click="(Logged out) Sign up prompt, clicked Dismiss, 
text:dismiss"
        >
          Dismiss
        </button>
        <h3 class="pt-2">Join GitHub today</h3>
        <p class="col-6 mx-auto">GitHub is home to over 50 million developers 
working together to host and review code, manage projects, and build software 
together.</p>
        <a class="btn btn-primary" data-ga-click="(Logged out) Sign up prompt, 
clicked Sign up, text:sign-up" 
data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;files
 signup 
prompt&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/lxc/lxc/pull/3487&quot;,&quot;user_id&quot;:null}}";
 
data-hydro-click-hmac="c667c361a1d3a3f4c32c3473113410b8be960682755cd4646b76c0445d46ddb4"
 href="/join?source=prompt-pr-show&amp;source_repo=lxc%2Flxc">Sign up</a>
      </div>
    </div>
  </signup-prompt>



  <div id="js-report-pull-request-refresh" 
data-hydro-view="{&quot;event_type&quot;:&quot;pull-request-refresh&quot;,&quot;payload&quot;:{&quot;pull_request_id&quot;:450693367,&quot;tab_context&quot;:&quot;conversation&quot;,&quot;originating_url&quot;:&quot;https://github.com/lxc/lxc/pull/3487&quot;,&quot;user_id&quot;:null}}";
 
data-hydro-view-hmac="66a1ed90074cec8e70cc80dba0d36d3fa0a0dcc7795b851cb24e754967b08dc8"></div>


  <div class="clearfix js-issues-results">
    
  <div
    id="partial-discussion-header"
    class="gh-header js-details-container Details js-socket-channel 
js-updatable-content pull request js-pull-header-details"
    
data-channel="eyJjIjoicHVsbF9yZXF1ZXN0OjQ1MDY5MzM2NyIsInQiOjE1OTQ5NTMwMjl9--5d71c7e5f6bbecd26591b4f4fd54a86da257939b252a70c6dbf41d49abaacc20"
    
data-url="/lxc/lxc/pull/3487/show_partial?partial=pull_requests%2Ftitle&amp;sticky=true"
    data-pull-is-open="true"
    data-gid="MDExOlB1bGxSZXF1ZXN0NDUwNjkzMzY3">
  <div class="gh-header-show ">
    
      <div class="gh-header-actions ">


          
<details class="details-reset details-overlay details-overlay-dark float-right" 
>
  <summary
    class="btn btn-sm btn-primary "
    
    
    data-ga-click="Issues, create new issue, view:issue_show 
location:issue_header style:button logged_in:false"
>
    
    New issue
  </summary>
  <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast 
overflow-auto" aria-label="Sign up for GitHub">
      <button class="position-absolute p-4 right-0 btn-link muted-link" 
type="button" aria-label="Close dialog" data-close-dialog>
        <svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" 
width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 
3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 
3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 
4.78a.75.75 0 010-1.06z"></path></svg>
      </button>
    <div class="d-flex flex-column p-4">
            <div class="mt-3 mb-2 text-center">
  <svg height="60" class="octicon octicon-comment-discussion text-blue" 
viewBox="0 0 24 24" version="1.1" width="60" aria-hidden="true"><path 
fill-rule="evenodd" d="M1.75 1A1.75 1.75 0 000 2.75v9.5C0 13.216.784 14 1.75 
14H3v1.543a1.457 1.457 0 002.487 1.03L8.061 14h6.189A1.75 1.75 0 0016 
12.25v-9.5A1.75 1.75 0 0014.25 1H1.75zM1.5 2.75a.25.25 0 01.25-.25h12.5a.25.25 
0 01.25.25v9.5a.25.25 0 01-.25.25h-6.5a.75.75 0 00-.53.22L4.5 
15.44v-2.19a.75.75 0 00-.75-.75h-2a.25.25 0 01-.25-.25v-9.5z"></path><path 
d="M22.5 8.75a.25.25 0 00-.25-.25h-3.5a.75.75 0 010-1.5h3.5c.966 0 1.75.784 
1.75 1.75v9.5A1.75 1.75 0 0122.25 20H21v1.543a1.457 1.457 0 01-2.487 
1.03L15.939 20H10.75A1.75 1.75 0 019 18.25v-1.465a.75.75 0 011.5 0v1.465c0 
.138.112.25.25.25h5.5a.75.75 0 01.53.22l2.72 2.72v-2.19a.75.75 0 
01.75-.75h2a.25.25 0 00.25-.25v-9.5z"></path></svg>
</div>

<div class="px-4">
  <p class="text-center mb-4">
  <strong>Have a question about this project?</strong> Sign up for a free 
GitHub account to open an issue and contact its maintainers and the community.
  </p>

  <!-- '"` --><!-- </textarea></xmp> --></option></form><form 
class="js-signup-form" autocomplete="off" 
action="/join?return_to=%2Flxc%2Flxc%2Fissues%2Fnew" accept-charset="UTF-8" 
method="post"><input type="hidden" data-csrf="true" name="authenticity_token" 
value="uIntO+7/0UKw/upUVyZ4tdo6o+Hl0SGailTYsJTx6NaV3pHrfbabMxklkLA87D2raya+pDgJhQeur2uKlBiz+Q=="
 />    <auto-check src="/signup_check/username">
      <dl class="form-group"><dt class="input-label"><label name="user[login]" 
autocapitalize="off" autofocus="autofocus" for="user_login_issues">Pick a 
username</label></dt><dd><input name="user[login]" autocapitalize="off" 
autofocus="autofocus" class="form-control" type="text" id="user_login_issues" 
/></dd></dl>
      <input type="hidden" data-csrf="true" 
value="Ls6M/9Z9f4iWThNW8Ei1PzpQ8/w2OG7I+5KlyG+YoHeTKT8pLEiuL0+CK7TGK6IkbUoorDlot7jvxtRnnJo2Ag=="
 />
    </auto-check>

    <auto-check src="/signup_check/email">
      <dl class="form-group"><dt class="input-label"><label name="user[email]" 
autocapitalize="off" for="user_email_issues">Email 
Address</label></dt><dd><input name="user[email]" autocapitalize="off" 
class="form-control" type="text" id="user_email_issues" /></dd></dl>
      <input type="hidden" data-csrf="true" 
value="IVx6XlBOfqrK5+/ojiMJkfx5Ntu0d5BLDFZgxkGsEAriBVRnLd1zr7l3qiMQ4gZjQgKsTP7eNsYimeV5t4A3TQ=="
 />
    </auto-check>

    <auto-check src="/users/password"><dl class="form-group"><dt 
class="input-label"><label name="user[password]" 
for="user_password_issues">Password</label></dt><dd><input 
name="user[password]" class="form-control" type="password" 
id="user_password_issues" /></dd></dl><input type="hidden" data-csrf="true" 
value="+GyHucr+JdcxGZNpdUea6wePOZjPKb6MRZOFEgdsJGPUZcT0RCbZUT6WYDDk6WJNpR6FpUyp1eQcE8vt4IGP/Q=="
 /></auto-check>

    <input type="hidden" name="source" class="js-signup-source" 
value="modal-issues">
    <input class="form-control" type="text" name="required_field_5607" 
hidden="hidden" />
<input class="form-control" type="hidden" name="timestamp" 
value="1594953030214" />
<input class="form-control" type="hidden" name="timestamp_secret" 
value="157e18ab8e04546f7c379b6130abdbf58fef75e78e7bbdfd464f59779b282ef8" />


    <button class="btn btn-primary mt-2 btn-block" type="submit" 
data-ga-click="(Logged out) New issue modal, clicked Sign up, 
text:sign-up">Sign up for GitHub</button>
</form>
  <p class="mt-4 text-gray text-center">By clicking &ldquo;Sign up for 
GitHub&rdquo;, you agree to our <a href="https://help.github.com/terms"; 
target="_blank">terms of service</a> and
  <a href="https://help.github.com/privacy"; target="_blank">privacy 
statement</a>. We’ll occasionally send you account related emails.</p>

  <p class="mt-4 text-gray text-center">
    Already on GitHub?
    <a data-ga-click="(Logged out) New issue modal, clicked Sign in, 
text:sign-in" 
data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;new
 issue 
modal&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/lxc/lxc/pull/3487&quot;,&quot;user_id&quot;:null}}";
 
data-hydro-click-hmac="98b101413f43e44986ae0e8b9e0d03a44bcb854af6aec0b5375a5fc98491759b"
 href="/login?return_to=%2Flxc%2Flxc%2Fissues%2Fnew">Sign in</a>
    to your account
  </p>
</div>

</div>
  </details-dialog>
</details>
      </div>

    <h1 class="gh-header-title">
      <span class="js-issue-title">
        Improve efficiency of lxc_ifname_alnum_case_sensitive
      </span>
      <span class="gh-header-number">#3487</span>
    </h1>
    
  </div>

  <div class="TableObject gh-header-meta">
    <div class="TableObject-item">
        <span class="State State--green " title="Status: Open">
  <svg height="16" class="octicon octicon-git-pull-request" viewBox="0 0 16 16" 
version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.177 
3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 
3.427a.25.25 0 010-.354zM3.75 2.5a.75.75 0 100 1.5.75.75 0 
000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 
2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 
2.5 0 0011 2.5zm1 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 
100 1.5.75.75 0 000-1.5z"></path></svg> Open

</span>
    </div>
    <div class="TableObject-item TableObject-item--primary">
          <a class="author link-gray text-bold css-truncate css-truncate-target 
expandable" data-hovercard-type="user" 
data-hovercard-url="/users/samboyles1/hovercard" 
data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" 
href="/samboyles1">samboyles1</a>

  wants to merge
  <span class="js-updating-pull-request-commits-count">1</span>
  commit into



  <span title="lxc/lxc:master" class="commit-ref css-truncate 
user-select-contain expandable base-ref"><a title="lxc/lxc:master" 
class="no-underline" href="/lxc/lxc"><span 
class="css-truncate-target">lxc</span>:<span 
class="css-truncate-target">master</span></a></span><span></span>

  <div class="commit-ref-dropdown">
    <details class="details-reset details-overlay select-menu 
commitish-suggester">
      <summary class="btn btn-sm select-menu-button branch" title="Choose a 
base branch">
        <i>base:</i>
        <span class="css-truncate css-truncate-target" 
title="master">master</span>
      </summary>
      <details-menu
        class="select-menu-modal position-absolute js-pull-base-branch-menu"
        data-menu-input="pull-change-base-branch-field"
        style="z-index: 90;"
        
src="/lxc/lxc/pull/3487/show_partial?partial=pull_requests%2Fdescription_branches_dropdown"
 preload>
        <include-fragment class="select-menu-loading-overlay anim-pulse" 
aria-label="Loading">
          <svg height="32" class="octicon octicon-octoface" viewBox="0 0 16 16" 
version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 
5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 
1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 
1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 
16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 
0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 
1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 
1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 
0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 
1.2-1.79s-.53-1.78-1.2-1.78z"></path></svg>
        </include-fragment>
      </details-menu>
    </details>
    <!-- '"` --><!-- </textarea></xmp> --></option></form><form 
id="change-base-form" action="/lxc/lxc/pull/3487/change_base" 
accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" 
name="authenticity_token" 
value="XOoKkVZwpAbbFzvCg9jRDrFDohN2FNIFLVv0cqwiLzHyVTrQ5q/JZl31rnIA1glwHd9fMkdAVqlg+aM9Jbjz8Q=="
 />
      <input type="hidden" id="pull-change-base-branch-field" 
name="new_base_binary">
</form>  </div>

from

<span title="samboyles1/lxc:master" class="commit-ref css-truncate 
user-select-contain expandable head-ref"><a title="samboyles1/lxc:master" 
class="no-underline" href="/samboyles1/lxc"><span 
class="css-truncate-target">samboyles1</span>:<span 
class="css-truncate-target">master</span></a></span><span><clipboard-copy 
class="js-clipboard-copy zeroclipboard-link text-gray link-hover-blue" 
value="samboyles1:master" aria-label="Copy" data-copy-feedback="Copied!"><svg 
class="octicon octicon-clippy d-inline-block mx-1 js-clipboard-clippy-icon" 
viewBox="0 0 16 16" version="1.1" width="16" height="16" 
aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 
.414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 
3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 
.966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 
00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 
01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 
01.126-.217z"></path></svg><svg class="octicon octicon-check 
js-clipboard-check-icon mx-1 d-inline-block d-none text-green" viewBox="0 0 16 
16" version="1.1" width="16" height="16" aria-hidden="true"><path 
fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 
01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 
0z"></path></svg></clipboard-copy></span>



    </div>
  </div>


    <div class="js-sticky js-sticky-offset-scroll top-0 gh-header-sticky">
      <div class="sticky-content">
        <div class="d-flex flex-items-center flex-justify-between mt-2">
          <div class="d-flex flex-row flex-items-center min-width-0">
            <div class="mr-2 flex-shrink-0">
                <span class="State State--green " title="Status: Open">
  <svg height="16" class="octicon octicon-git-pull-request" viewBox="0 0 16 16" 
version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.177 
3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 
3.427a.25.25 0 010-.354zM3.75 2.5a.75.75 0 100 1.5.75.75 0 
000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 
2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 
2.5 0 0011 2.5zm1 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 
100 1.5.75.75 0 000-1.5z"></path></svg> Open

</span>
            </div>
            <div class="min-width-0">
              <h1 class="d-flex text-bold f5">
  <a class="js-issue-title css-truncate css-truncate-target link-gray-dark 
width-fit" href="#">Improve efficiency of lxc_ifname_alnum_case_sensitive</a>
  <span class="gh-header-number text-gray-light pl-1">#3487</span>
</h1>

              <div class="meta text-gray-light css-truncate css-truncate-target 
d-block width-fit">
                    <a class="author link-gray text-bold css-truncate 
css-truncate-target expandable" data-hovercard-z-index-override="111" 
data-hovercard-type="user" data-hovercard-url="/users/samboyles1/hovercard" 
data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" 
href="/samboyles1">samboyles1</a>

  wants to merge
  <span class="js-updating-pull-request-commits-count">1</span>
  commit into



  <span title="lxc/lxc:master" class="commit-ref css-truncate 
user-select-contain expandable "><a title="lxc/lxc:master" class="no-underline" 
href="/lxc/lxc"><span class="css-truncate-target">lxc</span>:<span 
class="css-truncate-target">master</span></a></span><span></span>

from

<span title="samboyles1/lxc:master" class="commit-ref css-truncate 
user-select-contain expandable head-ref"><a title="samboyles1/lxc:master" 
class="no-underline" href="/samboyles1/lxc"><span 
class="css-truncate-target">samboyles1</span>:<span 
class="css-truncate-target">master</span></a></span><span><clipboard-copy 
class="js-clipboard-copy zeroclipboard-link text-gray link-hover-blue" 
value="samboyles1:master" aria-label="Copy" data-copy-feedback="Copied!"><svg 
class="octicon octicon-clippy d-inline-block mx-1 js-clipboard-clippy-icon" 
viewBox="0 0 16 16" version="1.1" width="16" height="16" 
aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 
.414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 
3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 
.966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 
00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 
01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 
01.126-.217z"></path></svg><svg class="octicon octicon-check 
js-clipboard-check-icon mx-1 d-inline-block d-none text-green" viewBox="0 0 16 
16" version="1.1" width="16" height="16" aria-hidden="true"><path 
fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 
01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 
0z"></path></svg></clipboard-copy></span>



              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="gh-header-shadow box-shadow 
js-notification-shelf-offset-top"></div>
</div>


      
<div class="tabnav tabnav-pr">
    <div class="tabnav-extra float-right">
      <span class="diffstat" id="diffstat">
        <span class="text-green">
          +2
        </span>
        <span class="text-red">
          −18
        </span>
        <span class="tooltipped tooltipped-s" aria-label="20 lines changed">
          <span class="diffstat-block-deleted"></span><span 
class="diffstat-block-deleted"></span><span 
class="diffstat-block-deleted"></span><span 
class="diffstat-block-deleted"></span><span 
class="diffstat-block-neutral"></span>
        </span>
      </span>
    </div>

  <nav class="tabnav-tabs">

    <a href="/lxc/lxc/pull/3487" class="tabnav-tab selected 
js-pjax-history-navigate">
      <svg class="octicon octicon-comment-discussion" viewBox="0 0 16 16" 
version="1.1" width="16" height="16" aria-hidden="true"><path 
fill-rule="evenodd" d="M1.5 2.75a.25.25 0 01.25-.25h8.5a.25.25 0 
01.25.25v5.5a.25.25 0 01-.25.25h-3.5a.75.75 0 00-.53.22L3.5 11.44V9.25a.75.75 0 
00-.75-.75h-1a.25.25 0 01-.25-.25v-5.5zM1.75 1A1.75 1.75 0 000 2.75v5.5C0 
9.216.784 10 1.75 10H2v1.543a1.457 1.457 0 002.487 1.03L7.061 10h3.189A1.75 
1.75 0 0012 8.25v-5.5A1.75 1.75 0 0010.25 1h-8.5zM14.5 4.75a.25.25 0 
00-.25-.25h-.5a.75.75 0 110-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 
0114.25 12H14v1.543a1.457 1.457 0 01-2.487 1.03L9.22 12.28a.75.75 0 
111.06-1.06l2.22 2.22v-2.19a.75.75 0 01.75-.75h1a.25.25 0 
00.25-.25v-5.5z"></path></svg>
      Conversation

      <span class="Counter " id="conversation_tab_counter" title="0">0</span>
    </a>

    <a href="/lxc/lxc/pull/3487/commits" class="tabnav-tab  
js-pjax-history-navigate">
      <svg class="octicon octicon-git-commit" viewBox="0 0 16 16" version="1.1" 
width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.5 
7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 
0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 
1.5h-3.32z"></path></svg>
      Commits

      <span class="js-updateable-pull-request-commits-count Counter " 
id="commits_tab_counter" title="1">1</span>
    </a>

      <a href="/lxc/lxc/pull/3487/checks" class="tabnav-tab " data-skip-pjax>
        <svg class="octicon octicon-checklist" viewBox="0 0 16 16" 
version="1.1" width="16" height="16" aria-hidden="true"><path 
fill-rule="evenodd" d="M2.5 1.75a.25.25 0 01.25-.25h8.5a.25.25 0 
01.25.25v7.736a.75.75 0 101.5 0V1.75A1.75 1.75 0 0011.25 0h-8.5A1.75 1.75 0 001 
1.75v11.5c0 .966.784 1.75 1.75 1.75h3.17a.75.75 0 000-1.5H2.75a.25.25 0 
01-.25-.25V1.75zM4.75 4a.75.75 0 000 1.5h4.5a.75.75 0 000-1.5h-4.5zM4 
7.75A.75.75 0 014.75 7h2a.75.75 0 010 1.5h-2A.75.75 0 014 7.75zm11.774 
3.537a.75.75 0 00-1.048-1.074L10.7 14.145 9.281 12.72a.75.75 0 00-1.062 
1.058l1.943 1.95a.75.75 0 001.055.008l4.557-4.45z"></path></svg>
        Checks

        <span class="Counter " id="checks_tab_counter" title="0">0</span>
      </a>

      <link rel="pjax-prefetch" href="/lxc/lxc/pull/3487/files">
    <a href="/lxc/lxc/pull/3487/files" class="tabnav-tab  
js-pjax-history-navigate">
      <svg class="octicon octicon-diff" viewBox="0 0 16 16" version="1.1" 
width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.75 
1.75a.75.75 0 00-1.5 0V5H4a.75.75 0 000 1.5h3.25v3.25a.75.75 0 001.5 
0V6.5H12A.75.75 0 0012 5H8.75V1.75zM4 13a.75.75 0 000 1.5h8a.75.75 0 
100-1.5H4z"></path></svg>
      Files changed

        <span class="Counter " id="files_tab_counter" title="1">1</span>
    </a>
  </nav>
</div>



    <h2 class="sr-only">Conversation</h2>
    <div id="discussion_bucket"
          class="pull-request-tab-content is-visible js-socket-channel 
js-updatable-content"
          
data-channel="eyJjIjoicHVsbF9yZXF1ZXN0OjQ1MDY5MzM2Nzp0aW1lbGluZSIsInQiOjE1OTQ5NTMwMzB9--029376c19f980a90f5dde3dac4ace714305ed24896459caba25def6e98e1ea77">
      
<div class="gutter-condensed gutter-lg d-flex">

  <div class="flex-shrink-0 col-9">
        <div
      class="pull-discussion-timeline js-pull-discussion-timeline 
js-quote-selection-container js-review-state-classes"
      data-quote-markdown=".js-comment-body"
      
      data-issue-and-pr-hovercards-enabled
      data-team-hovercards-enabled
    >
      <div
        class="js-discussion  ml-6 pl-3"
      >

        
<div class="TimelineItem pt-0 js-comment-container js-socket-channel 
js-updatable-content"
  data-gid="MDExOlB1bGxSZXF1ZXN0NDUwNjkzMzY3"
  data-url="/_render_node/MDExOlB1bGxSZXF1ZXN0NDUwNjkzMzY3/pull_requests/body"
  
data-channel="eyJjIjoicHVsbF9yZXF1ZXN0OjQ1MDY5MzM2NyIsInQiOjE1OTQ5NTMwMzB9--d603deaa8601352e91ea7e18ecdca4652a904bab3eb42d1c00109bd3da8a1674">

  
<div class="avatar-parent-child TimelineItem-avatar ">
    <a class="d-inline-block" data-hovercard-type="user" 
data-hovercard-url="/users/samboyles1/hovercard" 
data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" 
href="/samboyles1"><img class="avatar rounded-1 avatar-user" height="40" 
width="40" alt="@samboyles1" 
src="https://avatars3.githubusercontent.com/u/26637433?s=88&amp;u=7b8edbf5231bcdc65bc3306fb2ff7ea8b3b35d04&amp;v=4";
 /></a>

</div>

  <div class="timeline-comment-group js-minimizable-comment-group 
js-targetable-element TimelineItem-body my-0 " id="issue-450693367">
    <div class="ml-n3 timeline-comment unminimized-comment comment 
previewable-edit js-task-list-container js-comment timeline-comment--caret "
        data-body-version="93f8558104b7dae0f5cf9c014afefe75"
        data-unfurl-hide-url="/content_reference_attachments/hide">
      <input type="hidden" data-csrf="true" 
class="js-data-unfurl-hide-url-csrf" 
value="8Dixv9/bl5a0fLeWejGv4n62RsdbLRv6Uo9jLfgt6R/jFUtGc5GTsCVL0PQw9tmiQg1Wp2KJSxKBrQi0xX97pw=="
 />

      
<div class="timeline-comment-header clearfix ">
  <div class="timeline-comment-actions flex-shrink-0">
    


















<details class="details-overlay details-reset position-relative d-inline-block 
">
  <summary class="btn-link timeline-comment-action link-gray">
    <svg aria-label="Show options" class="octicon octicon-kebab-horizontal" 
viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"><path d="M8 
9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 
0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path></svg>
  </summary>
  <details-menu class="dropdown-menu dropdown-menu-sw show-more-popover 
text-gray-dark anim-scale-in" style="width:185px">
        <clipboard-copy
    class="dropdown-item btn-link"
    for="pullrequest-450693367-permalink"
    role="menuitem"
    
    >
    Copy link
  </clipboard-copy>

        <button
    type="button"
    class="dropdown-item btn-link d-none js-comment-quote-reply"
    role="menuitem">
    Quote reply
  </button>

      
  </details-menu>
</details>

  </div>


  

      



    


  

  

  <h3 class="timeline-comment-header-text f5 text-normal">



    <strong class="css-truncate">
      

  <a class="author link-gray-dark css-truncate-target width-fit" 
show_full_name="false" data-hovercard-type="user" 
data-hovercard-url="/users/samboyles1/hovercard" 
data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" 
href="/samboyles1">samboyles1</a>
  

    </strong>


    commented


      <a href="#issue-450693367" id="pullrequest-450693367-permalink" 
class="link-gray js-timestamp"><relative-time datetime="2020-07-17T02:30:28Z" 
class="no-wrap">Jul 17, 2020</relative-time></a>


    <span class="js-comment-edit-history">
    </span>
  </h3>
</div>


      <div class="edit-comment-hide">

        
<task-lists disabled sortable>
<table class="d-block" data-paste-markdown-skip>
  <tbody class="d-block">
    <tr class="d-block">
      <td class="d-block comment-body markdown-body  js-comment-body">
          <p>To detect if a newly generated interface name is a duplicate of an 
existing interface lxc_ifname_alnum_case_sensitive() currently gets a list of 
all interfaces using netns_getifaddrs(). When the system has a small number of 
interfaces this works fine, however when there are thousands or tens of 
thousands of interfaces this quickly becomes less than optimal.</p>
<p>As we only need to check if an interface name exists, and do not need the 
detailed information about the interfaces provided by netns_getifaddrs(), we 
can instead use the if_nametoindex() function, which is much more efficient.</p>
<p>Signed-off-by: Sam Boyles <a 
href="mailto:sam.boy...@alliedtelesis.co.nz";>sam.boy...@alliedtelesis.co.nz</a></p>
      </td>
    </tr>
  </tbody>
</table>
</task-lists>


          
<div class="comment-reactions flex-items-center   js-reactions-container">


</div>

      </div>

    </div>
</div>

</div>


        

  <div id="js-timeline-progressive-loader" 
data-timeline-item-src="lxc/lxc/timeline?id=MDExOlB1bGxSZXF1ZXN0NDUwNjkzMzY3&amp;variables%5Bafter%5D=Y3Vyc29yOnYyOpPPAAABc1qYgfgH2gAyNDUwNjkzMzY3OjQ4MTBhN2EzZTY0MjNjODU2OTA2NzY0NzQ5NzZlZTU0YzM3MzNjOWU%3D&amp;variables%5Bfirst%5D=60"
 ></div>


  
  
<div class="js-timeline-item js-timeline-progressive-focus-container" 
data-gid="MDE3OlB1bGxSZXF1ZXN0Q29tbWl0NDUwNjkzMzY3OjQ4MTBhN2EzZTY0MjNjODU2OTA2NzY0NzQ5NzZlZTU0YzM3MzNjOWU=">
  
      <div class="js-commit-group">
  <div class="js-commit-group-commits">
      <div class="TimelineItem TimelineItem--condensed js-commit py-3">
        <div class="TimelineItem-badge">
          <svg class="octicon octicon-git-commit" viewBox="0 0 16 16" 
version="1.1" width="16" height="16" aria-hidden="true"><path 
fill-rule="evenodd" d="M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 
0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 
017.86 0h3.32a.75.75 0 110 1.5h-3.32z"></path></svg>
        </div>
        <div class="TimelineItem-body">
          

<div class="js-details-container Details js-socket-channel js-updatable-content"
     
data-channel="eyJjIjoicmVwbzo1NzIwOTk1OmNvbW1pdDo0ODEwYTdhM2U2NDIzYzg1NjkwNjc2NDc0OTc2ZWU1NGMzNzMzYzllIiwidCI6MTU5NDk1MzAzMH0=--57135793ed6b859ff339b3da6cdd2df0085fb2362640d280705a52f7637c3bed"
     
data-url="/lxc/lxc/pull/3487/commits/4810a7a3e6423c85690676474976ee54c3733c9e/_render_node/commit/pull_condensed">
  <div class="d-flex">
      
<div class="AvatarStack flex-self-start ">
  <div class="AvatarStack-body" aria-label="samboyles1">
        <a class="avatar avatar-user" data-skip-pjax="true" 
data-hovercard-type="user" data-hovercard-url="/users/samboyles1/hovercard" 
data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" 
style="width:20px;height:20px;" href="/samboyles1">
          <img height="20" width="20" alt="@samboyles1" 
src="https://avatars0.githubusercontent.com/u/26637433?s=60&amp;u=7b8edbf5231bcdc65bc3306fb2ff7ea8b3b35d04&amp;v=4";
 class=" avatar-user" />
</a>  </div>
</div>


    <div class="commit-message pr-1 flex-auto min-width-0">
      <code>
        <a title="Improve efficiency of lxc_ifname_alnum_case_sensitive

To detect if a newly generated interface name is a duplicate of an existing 
interface lxc_ifname_alnum_case_sensitive() currently gets a list of all 
interfaces using netns_getifaddrs(). When the system has a small number of 
interfaces this works fine, however when there are thousands or tens of 
thousands of interfaces this quickly becomes less than optimal.

As we only need to check if an interface name exists, and do not need the 
detailed information about the interfaces provided by netns_getifaddrs(), we 
can instead use the if_nametoindex() function, which is much more efficient.

Signed-off-by: Sam Boyles &lt;sam.boy...@alliedtelesis.co.nz&gt;" 
data-pjax="true" class="link-gray" 
href="/lxc/lxc/pull/3487/commits/4810a7a3e6423c85690676474976ee54c3733c9e">Improve
 efficiency of lxc_ifname_alnum_case_sensitive</a>
      </code>

        <span class="hidden-text-expander inline">
          <button type="button" class="ellipsis-expander js-details-target" 
aria-expanded="false">&hellip;</button>
        </span>

    </div>

    <div class="text-right pr-1">
      
    <details class="dropdown dropdown-signed-commit details-reset 
details-overlay js-dropdown-details d-inline-block ml-1">
        <summary class="signed-commit-badge signed-commit-badge-small verified"
          title="Commit signature">
            Verified
        </summary>
        <div class="anim-scale-in" style="position: relative; z-index: 200;">
          <div class="dropdown-menu dropdown-menu-w py-0 text-gray-dark 
text-left">
            <div class="signed-commit-header TableObject">
              <div class="TableObject-item">
                <svg height="32" class="octicon octicon-verified mr-2" 
viewBox="0 0 24 24" version="1.1" width="32" aria-hidden="true"><path d="M17.03 
9.78a.75.75 0 00-1.06-1.06l-5.47 5.47-2.47-2.47a.75.75 0 00-1.06 1.06l3 
3a.75.75 0 001.06 0l6-6z"></path><path fill-rule="evenodd" d="M14.136 1.2a3.61 
3.61 0 00-4.272 0L8.489 2.21a2.11 2.11 0 01-.929.384l-1.686.259a3.61 3.61 0 
00-3.021 3.02L2.594 7.56a2.11 2.11 0 01-.384.929L1.2 9.864a3.61 3.61 0 000 
4.272l1.01 1.375c.2.274.333.593.384.929l.259 1.686a3.61 3.61 0 003.02 
3.021l1.687.259c.336.051.655.183.929.384l1.375 1.01a3.61 3.61 0 004.272 
0l1.375-1.01a2.11 2.11 0 01.929-.384l1.686-.259a3.61 3.61 0 
003.021-3.02l.259-1.687a2.11 2.11 0 01.384-.929l1.01-1.375a3.61 3.61 0 
000-4.272l-1.01-1.375a2.11 2.11 0 01-.384-.929l-.259-1.686a3.61 3.61 0 
00-3.02-3.021l-1.687-.259a2.11 2.11 0 01-.929-.384L14.136 1.2zm-3.384 
1.209a2.11 2.11 0 012.496 0l1.376 1.01a3.61 3.61 0 001.589.658l1.686.258a2.11 
2.11 0 011.765 1.766l.26 1.686a3.61 3.61 0 00.657 1.59l1.01 1.375a2.11 2.11 0 
010 2.496l-1.01 1.376a3.61 3.61 0 00-.658 1.589l-.258 1.686a2.11 2.11 0 
01-1.766 1.765l-1.686.26a3.61 3.61 0 00-1.59.657l-1.375 1.01a2.11 2.11 0 
01-2.496 0l-1.376-1.01a3.61 3.61 0 00-1.589-.658l-1.686-.258a2.11 2.11 0 
01-1.766-1.766l-.258-1.686a3.61 3.61 0 00-.658-1.59l-1.01-1.375a2.11 2.11 0 
010-2.496l1.01-1.376a3.61 3.61 0 00.658-1.589l.258-1.686a2.11 2.11 0 
011.766-1.766l1.686-.258a3.61 3.61 0 001.59-.658l1.375-1.01z"></path></svg>
              </div>
              <div class="TableObject-item--primary">
                    This commit was created on GitHub.com and signed with a 
<strong class="signed-commit-verified-label">verified signature</strong> using 
GitHub’s key.
              </div>
            </div>


            <div class="signed-commit-footer">
                <span class="d-block">GPG key ID: <span 
class="text-gray">4AEE18F83AFDEB23</span></span>
              <a 
href="https://help.github.com/articles/signing-commits-with-gpg/";>Learn about 
signing commits</a>
            </div>
          </div>
        </div>
    </details>

    </div>

    <div class="pr-1 flex-shrink-0" style="width: 16px;">
    </div>

    <div class="text-right">
      <code>
        <a 
href="/lxc/lxc/pull/3487/commits/4810a7a3e6423c85690676474976ee54c3733c9e" 
class="link-gray">4810a7a</a>
      </code>
    </div>
  </div>
    <div class="Details-content--hidden mt-2">
      <pre class="text-gray ws-pre-wrap">To detect if a newly generated 
interface name is a duplicate of an existing interface 
lxc_ifname_alnum_case_sensitive() currently gets a list of all interfaces using 
netns_getifaddrs(). When the system has a small number of interfaces this works 
fine, however when there are thousands or tens of thousands of interfaces this 
quickly becomes less than optimal.

As we only need to check if an interface name exists, and do not need the 
detailed information about the interfaces provided by netns_getifaddrs(), we 
can instead use the if_nametoindex() function, which is much more efficient.

Signed-off-by: Sam Boyles &lt;sam.boy...@alliedtelesis.co.nz&gt;</pre>
    </div>
</div>


        </div>
      </div>
  </div>
</div>


</div>






<!-- Rendered timeline since 2020-07-16 19:26:51 -->
<div id="partial-timeline"
      class="js-timeline-marker js-socket-channel js-updatable-content"
      
data-channel="eyJjIjoicHVsbF9yZXF1ZXN0OjQ1MDY5MzM2NyIsInQiOjE1OTQ5NTMwMzB9--d603deaa8601352e91ea7e18ecdca4652a904bab3eb42d1c00109bd3da8a1674"
      
data-url="/_render_node/MDExOlB1bGxSZXF1ZXN0NDUwNjkzMzY3/pull_requests/unread_timeline?variables%5BhasFocusedReviewComment%5D=false&amp;variables%5BhasFocusedReviewThread%5D=false&amp;variables%5BsyntaxHighlightingEnabled%5D=true&amp;variables%5BtimelinePageSize%5D=30&amp;variables%5BtimelineSince%5D=2020-07-17T02%3A26%3A51Z"
      data-last-modified="Fri, 17 Jul 2020 02:26:51 GMT"
      data-gid="MDExOlB1bGxSZXF1ZXN0NDUwNjkzMzY3">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="d-none 
js-timeline-marker-form" action="/_graphql/MarkNotificationSubjectAsRead" 
accept-charset="UTF-8" data-remote="true" method="post"><input type="hidden" 
data-csrf="true" name="authenticity_token" 
value="nCzieDQ1dpkBjhRRmK2ooG7iZfaCkBxJvQ89P7NGvcdC3rSTn6fJ1d3rJivwGvEmG53JUtqUlfbtON3SMacyGQ=="
 />
    <input type="hidden" name="variables[subjectId]" 
value="MDExOlB1bGxSZXF1ZXN0NDUwNjkzMzY3">
</form></div>


      </div>

      <div class="discussion-timeline-actions">
              
<div class="flash flash-warn mt-3">
    <a rel="nofollow" class="btn btn-primary" 
data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;signed
 out 
comment&quot;,&quot;repository_id&quot;:5720995,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/lxc/lxc/pull/3487&quot;,&quot;user_id&quot;:null}}";
 
data-hydro-click-hmac="31dd032223319b0e8ae8166d695cef036f58164861089e005f2f71794e45f365"
 href="/join?source=comment-repo">Sign up for free</a>
    <strong>to join this conversation on GitHub</strong>.
    Already have an account?
    <a rel="nofollow" 
data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;signed
 out 
comment&quot;,&quot;repository_id&quot;:5720995,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/lxc/lxc/pull/3487&quot;,&quot;user_id&quot;:null}}";
 
data-hydro-click-hmac="b03c4e656914dd28b8339ef16479180b05cba315e1b968911a874cc973e72aec"
 
href="/login?return_to=https%3A%2F%2Fgithub.com%2Flxc%2Flxc%2Fpull%2F3487">Sign 
in to comment</a>
</div>


      </div>
    </div>

</div>
    <div class="flex-shrink-0 col-3">
          

<div id="partial-discussion-sidebar"
  class="js-socket-channel js-updatable-content"
  
data-channel="eyJjIjoicHVsbF9yZXF1ZXN0OjQ1MDY5MzM2NyIsInQiOjE1OTQ5NTMwMzB9--d603deaa8601352e91ea7e18ecdca4652a904bab3eb42d1c00109bd3da8a1674"
  data-gid="MDExOlB1bGxSZXF1ZXN0NDUwNjkzMzY3"
  data-url="/lxc/lxc/issues/3487/show_partial?partial=issues%2Fsidebar"
  data-project-hovercards-enabled>


    
<div class="discussion-sidebar-item sidebar-assignee js-discussion-sidebar-item 
position-relative" data-team-hovercards-enabled>
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form 
class="js-issue-sidebar-form" aria-label="Select reviewers" 
action="/lxc/lxc/pull/3487/review-requests?pr_global_id=MDExOlB1bGxSZXF1ZXN0NDUwNjkzMzY3"
 accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" 
name="authenticity_token" 
value="Yjjb71CYgYp3/B6auNiW7QYc7n3Sj+ybnBatmjNmzAMe2XlZzN/senI2CCOEgM3Avlmpll3KHjZf2M5vWoGYJQ=="
 />
    
  <div class="discussion-sidebar-heading text-bold">
    Reviewers
  </div>

    <span class="css-truncate">
    No reviews
</span>

</form>
</div>


  <div class="discussion-sidebar-item sidebar-assignee 
js-discussion-sidebar-item">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form 
class="js-issue-sidebar-form" aria-label="Select assignees" 
action="/lxc/lxc/issues/3487/assignees" accept-charset="UTF-8" 
method="post"><input type="hidden" name="_method" value="put" /><input 
type="hidden" data-csrf="true" name="authenticity_token" 
value="V6cCaKjq8hcy4nlspLhC+edd8XBI/3+k3bSnMPkhEp+fzkn+KcO5yZN6PYveAXplMOkSdgUc31xTmgsXhpjGZg=="
 />
    
  <div class="discussion-sidebar-heading text-bold">
    Assignees
  </div>

    
<span class="css-truncate js-issue-assignees">
    No one assigned
</span>

</form></div>

    <div class="discussion-sidebar-item sidebar-labels 
js-discussion-sidebar-item">
  


  <div class="discussion-sidebar-heading text-bold">
    Labels
  </div>

  <div class="labels css-truncate js-issue-labels">
    None yet
</div>

</div>

    <div class="discussion-sidebar-item sidebar-progress-bar 
js-discussion-sidebar-item">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form 
class="js-issue-sidebar-form" aria-label="Select milestones" 
action="/lxc/lxc/issues/3487/set_milestone?partial=issues%2Fsidebar%2Fshow%2Fmilestone"
 accept-charset="UTF-8" method="post"><input type="hidden" name="_method" 
value="put" /><input type="hidden" data-csrf="true" name="authenticity_token" 
value="vXWcOdbKu8M6/I4Zqeiaq7r2/D31uuTL1IsEQqG882Bf0VVastO5pyis7ySaoiEk2bdx/nwX/wiLDiDeQ99vNw=="
 />
    
  <div class="discussion-sidebar-heading text-bold">
    Milestone
  </div>

      No milestone

</form></div>

    
<div class="discussion-sidebar-item js-discussion-sidebar-item" 
data-issue-and-pr-hovercards-enabled >
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form 
class="js-issue-sidebar-form" aria-label="Link issues" 
action="/lxc/lxc/issues/closing_references?source_id=450693367&amp;source_type=PULL_REQUEST"
 accept-charset="UTF-8" method="post"><input type="hidden" name="_method" 
value="put" /><input type="hidden" data-csrf="true" name="authenticity_token" 
value="XLp3bFd8F8nSJaYZdpcZcAfUThnNmYgJfgAn9fVsSYCkqmd+Dym4Fj/jJ4e2Q+k03zXFTlCaSJuwRFChXv7nYg=="
 />
    
  <div class="discussion-sidebar-heading text-bold">
    Linked issues
  </div>


      
<p>Successfully merging this pull request may close these issues.</p>

  <p>None yet</p>

</form>
</div>

  
  <div id="partial-users-participants" class="discussion-sidebar-item">
  <div class="participation">

    <div class="discussion-sidebar-heading text-bold">
      1 participant
    </div>
    <div class="participation-avatars d-flex flex-wrap">
        <a class="participant-avatar" data-hovercard-type="user" 
data-hovercard-url="/users/samboyles1/hovercard" 
data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" 
href="/samboyles1">
          <img class="avatar avatar-user" 
src="https://avatars3.githubusercontent.com/u/26637433?s=52&amp;v=4"; width="26" 
height="26" alt="@samboyles1" /> 
</a>    </div>
  </div>
</div>


  
  



  

</div>



</div></div>
    </div>
  </div>
  <div hidden>
  <span class="js-add-to-batch-enabled">Add this suggestion to a batch that can 
be applied as a single commit.</span>
  <span class="js-unchanged-suggestion">This suggestion is invalid because no 
changes were made to the code.</span>
  <span class="js-closed-pull">Suggestions cannot be applied while the pull 
request is closed.</span>
  <span class="js-viewing-subset-changes">Suggestions cannot be applied while 
viewing a subset of changes.</span>
  <span class="js-one-suggestion-per-line">Only one suggestion per line can be 
applied in a batch.</span>
  <span class="js-reenable-add-to-batch">Add this suggestion to a batch that 
can be applied as a single commit.</span>
  <span class="js-validation-on-left-blob">Applying suggestions on deleted 
lines is not supported.</span>
  <span class="js-validation-on-right-blob">You must change the existing code 
in this line in order to create a valid suggestion.</span>
  <span class="js-outdated-comment">Outdated suggestions cannot be 
applied.</span>
  <span class="js-resolved-thread">This suggestion has been applied or marked 
resolved.</span>
  <span class="js-pending-review">Suggestions cannot be applied from pending 
reviews.</span>
  <span class="js-is-multiline">Suggestions cannot be applied on multi-line 
comments.</span>
  <div class="form-group errored m-0 error 
js-suggested-changes-inline-validation-template d-flex" style="cursor: 
default;">
    <span class="js-suggested-changes-inline-error-message position-relative 
error m-0" style="max-width: inherit;"></span>
  </div>
</div>


  </div>


  </div>
</div>

    </main>
  </div>
  

  </div>

        
<div class="footer container-xl width-full px-3" role="contentinfo">
  <div class="position-relative d-flex flex-justify-between pt-6 pb-2 mt-6 f6 
text-gray border-top border-gray-light ">
    <ul class="list-style-none d-flex flex-wrap ">
      <li class="mr-3">&copy; 2020 GitHub, Inc.</li>
        <li class="mr-3"><a data-ga-click="Footer, go to terms, text:terms" 
href="https://github.com/site/terms";>Terms</a></li>
        <li class="mr-3"><a data-ga-click="Footer, go to privacy, text:privacy" 
href="https://github.com/site/privacy";>Privacy</a></li>
        <li class="mr-3"><a data-ga-click="Footer, go to security, 
text:security" href="https://github.com/security";>Security</a></li>
        <li class="mr-3"><a href="https://githubstatus.com/"; 
data-ga-click="Footer, go to status, text:status">Status</a></li>
        <li><a data-ga-click="Footer, go to help, text:help" 
href="https://help.github.com";>Help</a></li>

    </ul>

    <a aria-label="Homepage" title="GitHub" class="footer-octicon d-none 
d-lg-block mx-lg-4" href="https://github.com";>
      <svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" 
version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 
0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 
0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01
 1.08.58 1.23.82.72 1.21 1.87.87 
2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 
0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 
1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 
2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 
1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 
8c0-4.42-3.58-8-8-8z"></path></svg>
</a>
   <ul class="list-style-none d-flex flex-wrap ">
        <li class="mr-3"><a data-ga-click="Footer, go to contact, text:contact" 
href="https://github.com/contact";>Contact GitHub</a></li>
        <li class="mr-3"><a href="https://github.com/pricing"; 
data-ga-click="Footer, go to Pricing, text:Pricing">Pricing</a></li>
      <li class="mr-3"><a href="https://developer.github.com"; 
data-ga-click="Footer, go to api, text:api">API</a></li>
      <li class="mr-3"><a href="https://training.github.com"; 
data-ga-click="Footer, go to training, text:training">Training</a></li>
        <li class="mr-3"><a href="https://github.blog"; data-ga-click="Footer, 
go to blog, text:blog">Blog</a></li>
        <li><a data-ga-click="Footer, go to about, text:about" 
href="https://github.com/about";>About</a></li>
    </ul>
  </div>
  <div class="d-flex flex-justify-center pb-6">
    <span class="f6 text-gray-light"></span>
  </div>
</div>



  <div id="ajax-error-message" class="ajax-error-message flash flash-error">
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" 
width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 
1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 
00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 
11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 
11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 
0v-2.5z"></path></svg>
    <button type="button" class="flash-close js-ajax-error-dismiss" 
aria-label="Dismiss error">
      <svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" 
width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 
3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 
3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 
4.78a.75.75 0 010-1.06z"></path></svg>
    </button>
    You can’t perform that action at this time.
  </div>


    <script crossorigin="anonymous" async="async" 
integrity="sha512-bn/3rKJzBl2H64K38R8KaVcT26vKK7BJQC59lwYc+9fjlHzmy0fwh+hzBtsgTdhIi13dxjzNKWhdSN8WTM9qUw=="
 type="application/javascript" id="js-conditional-compat" 
data-src="https://github.githubassets.com/assets/compat-bootstrap-6e7ff7ac.js";></script>
    <script crossorigin="anonymous" 
integrity="sha512-66iSSZrIoQctMJb6USLgAUBxXV82p3JQTUWGIwN/klsywNeBXy59fW5kqtQPbKTQJYtAdHbsiAJzOoY7zgj/Uw=="
 type="application/javascript" 
src="https://github.githubassets.com/assets/environment-bootstrap-eba89249.js";></script>
    <script crossorigin="anonymous" async="async" 
integrity="sha512-zWY8EzLOLze5ZiuCHJoHWcWKbliugmd732H33vQ63ul0B+5ALjXxYdYB8blpdd9MNp6qTuDJpH11XhrxqkXR5A=="
 type="application/javascript" 
src="https://github.githubassets.com/assets/vendor-cd663c13.js";></script>
    <script crossorigin="anonymous" async="async" 
integrity="sha512-co+zOTSpzxx6JoM35lmjAiwoxIHgfLg05wD7HYFQeDAahWFam5U/aYNFG4PEy1aJvL6IcJDcp3qcglZJXcG/hg=="
 type="application/javascript" 
src="https://github.githubassets.com/assets/frameworks-728fb339.js";></script>
    
    <script crossorigin="anonymous" async="async" 
integrity="sha512-+lymvNF/kkbWyNxJVHK+0ianQbVggsfZ3inLiuzugkLG9qX/qXLs/vaGgvClMudhnKA1tJkXWJgnGhN+LH+fyw=="
 type="application/javascript" 
src="https://github.githubassets.com/assets/github-bootstrap-fa5ca6bc.js";></script>
    
      <script crossorigin="anonymous" async="async" 
integrity="sha512-R96MM8s0Y6IohqxZNKDeymadVcVg1KjV6E71KYykaisTYDPGpONjop8kGyNY5DSOJEsFp3737xpcjEo1a333WQ=="
 type="application/javascript" data-module-id="./Sortable.js" 
data-src="https://github.githubassets.com/assets/Sortable-47de8c33.js";></script>
      <script crossorigin="anonymous" async="async" 
integrity="sha512-4GcSWGoe36+BoWho4gtJcByZe8j43w+lt2/PDe3rmBxRVSgD29YipDwuIywe8fvOd2b2CszBqaPGxSznUtE3Xg=="
 type="application/javascript" data-module-id="./drag-drop.js" 
data-src="https://github.githubassets.com/assets/drag-drop-e0671258.js";></script>
      <script crossorigin="anonymous" async="async" 
integrity="sha512-2k8dDHk0yt52uKvOvgc9cwOXOeJhxBfVP5kPS2BrCdytDmtEIJ2yone26vFENAyk1a2aFQ7KDgEevRQafuAf8A=="
 type="application/javascript" data-module-id="./gist-vendor.js" 
data-src="https://github.githubassets.com/assets/gist-vendor-da4f1d0c.js";></script>
      <script crossorigin="anonymous" async="async" 
integrity="sha512-Bc7fK3x3D97t//yKXJFTcKAZWc+DoBkyOGeSrGKN6K1s+A5rkUmH7M+HuvXOQEd+5pBqcB/LKYTbItFp7J4mjg=="
 type="application/javascript" data-module-id="./randomColor.js" 
data-src="https://github.githubassets.com/assets/randomColor-05cedf2b.js";></script>
    
    
  <div class="js-stale-session-flash flash flash-warn flash-banner" hidden
    >
    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" 
width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 
1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 
00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 
11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 
11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 
0v-2.5z"></path></svg>
    <span class="js-stale-session-flash-signed-in" hidden>You signed in with 
another tab or window. <a href="">Reload</a> to refresh your session.</span>
    <span class="js-stale-session-flash-signed-out" hidden>You signed out in 
another tab or window. <a href="">Reload</a> to refresh your session.</span>
  </div>
  <template id="site-details-dialog">
  <details class="details-reset details-overlay details-overlay-dark lh-default 
text-gray-dark hx_rsm" open>
    <summary role="button" aria-label="Close dialog"></summary>
    <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in 
fast hx_rsm-dialog hx_rsm-modal">
      <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 
top-0" type="button" aria-label="Close dialog" data-close-dialog>
        <svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" 
width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 
3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 
3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 
4.78a.75.75 0 010-1.06z"></path></svg>
      </button>
      <div class="octocat-spinner my-6 js-details-dialog-spinner"></div>
    </details-dialog>
  </details>
</template>

  <div class="Popover js-hovercard-content position-absolute" style="display: 
none; outline: none;" tabindex="0">
  <div class="Popover-message Popover-message--bottom-left 
Popover-message--large Box box-shadow-large" style="width:360px;">
  </div>
</div>


  </body>
</html>

_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to