CINXE.COM
eBPF - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>eBPF - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"fd764af1-b861-4c08-8c9c-1ec5c503185a","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"EBPF","wgTitle":"EBPF","wgCurRevisionId":1259435749,"wgRevisionId":1259435749,"wgArticleId":71706441,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Articles with short description","Short description is different from Wikidata","Free software programmed in C","Free system software","Software using the GPL license","Software using the MIT license"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"EBPF","wgRelevantArticleId":71706441,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgRedirectedFrom":"EBPF_on_Windows", "wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":40000,"wgInternalRedirectTargetUrl":"/wiki/EBPF","wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q116197108","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false, "wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["mediawiki.action.view.redirect","ext.cite.ux-enhancements","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader", "ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/b/b0/EBPF_logo.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="418"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b0/EBPF_logo.png/800px-EBPF_logo.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="279"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b0/EBPF_logo.png/640px-EBPF_logo.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="223"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="eBPF - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/EBPF"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=EBPF&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/EBPF"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-EBPF rootpage-EBPF skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=EBPF" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=EBPF" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=EBPF" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=EBPF" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Design" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Design"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Design</span> </div> </a> <ul id="toc-Design-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-History" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#History"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>History</span> </div> </a> <ul id="toc-History-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Architecture_and_concepts" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Architecture_and_concepts"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Architecture and concepts</span> </div> </a> <button aria-controls="toc-Architecture_and_concepts-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Architecture and concepts subsection</span> </button> <ul id="toc-Architecture_and_concepts-sublist" class="vector-toc-list"> <li id="toc-eBPF_maps" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#eBPF_maps"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>eBPF maps</span> </div> </a> <ul id="toc-eBPF_maps-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-eBPF_virtual_machine" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#eBPF_virtual_machine"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>eBPF virtual machine</span> </div> </a> <ul id="toc-eBPF_virtual_machine-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Tail_calls" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Tail_calls"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3</span> <span>Tail calls</span> </div> </a> <ul id="toc-Tail_calls-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-BPF_to_BPF_calls" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#BPF_to_BPF_calls"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4</span> <span>BPF to BPF calls</span> </div> </a> <ul id="toc-BPF_to_BPF_calls-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-eBPF_verifier" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#eBPF_verifier"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.5</span> <span>eBPF verifier</span> </div> </a> <ul id="toc-eBPF_verifier-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-eBPF_CO-RE_(Compile_Once_-_Run_Everywhere)" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#eBPF_CO-RE_(Compile_Once_-_Run_Everywhere)"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.6</span> <span>eBPF CO-RE (Compile Once - Run Everywhere)</span> </div> </a> <ul id="toc-eBPF_CO-RE_(Compile_Once_-_Run_Everywhere)-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Branding" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Branding"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Branding</span> </div> </a> <ul id="toc-Branding-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Governance" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Governance"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Governance</span> </div> </a> <ul id="toc-Governance-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Adoption" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Adoption"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Adoption</span> </div> </a> <ul id="toc-Adoption-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Security" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Security"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Security</span> </div> </a> <ul id="toc-Security-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Further_reading" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Further_reading"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</span> <span>Further reading</span> </div> </a> <ul id="toc-Further_reading-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">11</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading">eBPF</h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 3 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-3" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">3 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/EBPF" title="EBPF – Persian" lang="fa" hreflang="fa" data-title="EBPF" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/EBPF" title="EBPF – Portuguese" lang="pt" hreflang="pt" data-title="EBPF" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/EBPF" title="EBPF – Ukrainian" lang="uk" hreflang="uk" data-title="EBPF" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q116197108#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/EBPF" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:EBPF" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/EBPF"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=EBPF&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=EBPF&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/EBPF"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=EBPF&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=EBPF&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/EBPF" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/EBPF" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=EBPF&oldid=1259435749" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=EBPF&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=EBPF&id=1259435749&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FEBPF"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FEBPF"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=EBPF&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=EBPF&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q116197108" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"><span class="mw-redirectedfrom">(Redirected from <a href="/w/index.php?title=EBPF_on_Windows&redirect=no" class="mw-redirect" title="EBPF on Windows">EBPF on Windows</a>)</span></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Safe dynamic programs and tools</div> <style data-mw-deduplicate="TemplateStyles:r1257001546">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme) div:not(.notheme){background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table tr{display:table-row!important}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox vevent"><caption class="infobox-title summary">eBPF</caption><tbody><tr><td colspan="2" class="infobox-image logo"><span class="mw-default-size" typeof="mw:File/Frameless"><a href="/wiki/File:EBPF_logo.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/b/b0/EBPF_logo.png/220px-EBPF_logo.png" decoding="async" width="220" height="77" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/b/b0/EBPF_logo.png/330px-EBPF_logo.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/b/b0/EBPF_logo.png/440px-EBPF_logo.png 2x" data-file-width="850" data-file-height="296" /></a></span></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Programmer" title="Programmer">Original author(s)</a></th><td class="infobox-data">Alexei Starovoitov,<br />Daniel Borkmann<sup id="cite_ref-ebpf-linux-foundation_1-0" class="reference"><a href="#cite_note-ebpf-linux-foundation-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:4_2-0" class="reference"><a href="#cite_note-:4-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Programmer" title="Programmer">Developer(s)</a></th><td class="infobox-data">Open source community, <a href="/wiki/Meta_Platforms" title="Meta Platforms">Meta</a>, <a href="/wiki/Google" title="Google">Google</a>, Isovalent, <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a>, <a href="/wiki/Netflix" title="Netflix">Netflix</a><sup id="cite_ref-ebpf-linux-foundation_1-1" class="reference"><a href="#cite_note-ebpf-linux-foundation-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Initial release</th><td class="infobox-data">2014<span class="noprint">; 10 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">2014</span>)</span><sup id="cite_ref-ebpf-and-kubernetes_3-0" class="reference"><a href="#cite_note-ebpf-and-kubernetes-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Repository_(version_control)" title="Repository (version control)">Repository</a></th><td class="infobox-data">Linux: <span class="url"><a rel="nofollow" class="external text" href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/">git<wbr />.kernel<wbr />.org<wbr />/pub<wbr />/scm<wbr />/linux<wbr />/kernel<wbr />/git<wbr />/torvalds<wbr />/linux<wbr />.git<wbr />/</a></span><br />Windows: <span class="url"><a rel="nofollow" class="external text" href="https://github.com/Microsoft/ebpf-for-windows/">github<wbr />.com<wbr />/Microsoft<wbr />/ebpf-for-windows<wbr />/</a></span></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Written in</th><td class="infobox-data"><a href="/wiki/C_(programming_language)" title="C (programming language)">C</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Operating_system" title="Operating system">Operating system</a></th><td class="infobox-data"><a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a><sup id="cite_ref-:3_4-0" class="reference"><a href="#cite_note-:3-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_categories#Categorization_approaches" title="Software categories">Type</a></th><td class="infobox-data"><a href="/wiki/Runtime_system" title="Runtime system">Runtime system</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_license" title="Software license">License</a></th><td class="infobox-data">Linux: <a href="/wiki/GNU_General_Public_License" title="GNU General Public License">GPL</a><br />Windows: <a href="/wiki/MIT_License" title="MIT License">MIT License</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="https://www.ebpf.io/">ebpf.io</a></span></td></tr></tbody></table> <p><b>eBPF</b> is a technology that can run programs in a <a href="/wiki/Privilege_(computing)" title="Privilege (computing)">privileged context</a> such as the <a href="/wiki/Operating_system" title="Operating system">operating system</a> <a href="/wiki/Kernel_(operating_system)" title="Kernel (operating system)">kernel</a>.<sup id="cite_ref-:8_5-0" class="reference"><a href="#cite_note-:8-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> It is the successor to the <a href="/wiki/Berkeley_Packet_Filter" title="Berkeley Packet Filter">Berkeley Packet Filter</a> (BPF, with the "e" originally meaning "extended") filtering mechanism in Linux and is also used in non-networking parts of the Linux kernel as well. </p><p>It is used to safely and efficiently extend the capabilities of the kernel at <a href="/wiki/Runtime_(program_lifecycle_phase)" class="mw-redirect" title="Runtime (program lifecycle phase)">runtime</a> without requiring changes to kernel <a href="/wiki/Source_code" title="Source code">source code</a> or loading <a href="/wiki/Loadable_kernel_module" title="Loadable kernel module">kernel modules</a>.<sup id="cite_ref-:9_6-0" class="reference"><a href="#cite_note-:9-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> Safety is provided through an in-kernel verifier which performs <a href="/wiki/Static_code_analysis" class="mw-redirect" title="Static code analysis">static code analysis</a> and rejects programs which crash, hang or otherwise interfere with the kernel negatively.<sup id="cite_ref-:6_7-0" class="reference"><a href="#cite_note-:6-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:7_8-0" class="reference"><a href="#cite_note-:7-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> </p><p>This validation model differs from <a href="/wiki/Sandboxed" class="mw-redirect" title="Sandboxed">sandboxed</a> environments, where the execution environment is restricted and the runtime has no insight about the program.<sup id="cite_ref-:94_9-0" class="reference"><a href="#cite_note-:94-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> Examples of programs that are automatically rejected are programs without strong exit guarantees (i.e. for/while loops without exit conditions) and programs dereferencing pointers without safety checks.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Design">Design</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=1" title="Edit section: Design"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Loaded programs which passed the verifier are either <a href="/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreted</a> or in-kernel <a href="/wiki/Just-in-time_compiled" class="mw-redirect" title="Just-in-time compiled">just-in-time compiled</a> (JIT compiled) for native execution performance. The execution model is <a href="/wiki/Event-driven_programming" title="Event-driven programming">event-driven</a> and with few exceptions <a href="/wiki/Run-to-completion" class="mw-redirect" title="Run-to-completion">run-to-completion</a>,<sup id="cite_ref-:4_2-1" class="reference"><a href="#cite_note-:4-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> meaning, programs can be attached to various <a href="/wiki/Hooking" title="Hooking">hook</a> points in the <a href="/wiki/Operating_system" title="Operating system">operating system</a> kernel and are run upon triggering of an event. eBPF use cases include (but are not limited to) <a href="/wiki/Packet_processing" title="Packet processing">networking</a> such as <a href="/wiki/Express_Data_Path" title="Express Data Path">XDP</a>, <a href="/wiki/Tracing_(software)" title="Tracing (software)">tracing</a> and <a href="/wiki/Computer_security_software" title="Computer security software">security</a> subsystems.<sup id="cite_ref-:8_5-1" class="reference"><a href="#cite_note-:8-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Given eBPF's efficiency and flexibility opened up new possibilities to solve production issues, <a href="/wiki/Brendan_Gregg" title="Brendan Gregg">Brendan Gregg</a> famously dubbed eBPF "superpowers for Linux".<sup id="cite_ref-:5_11-0" class="reference"><a href="#cite_note-:5-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Linus_Torvalds" title="Linus Torvalds">Linus Torvalds</a> said, "BPF has actually been really useful, and the real power of it is how it allows people to do specialized code that isn't enabled until asked for".<sup id="cite_ref-:12_12-0" class="reference"><a href="#cite_note-:12-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> Due to its success in Linux, the eBPF <a href="/wiki/Runtime_system" title="Runtime system">runtime</a> has been ported to other operating systems such as <a href="/wiki/Windows" class="mw-redirect" title="Windows">Windows</a>.<sup id="cite_ref-:3_4-1" class="reference"><a href="#cite_note-:3-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="History">History</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=2" title="Edit section: History"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>eBPF evolved from the classic Berkeley Packet Filter (cBPF, a retroactively-applied name). At the most basic level, it introduced the use of ten 64-bit registers (instead of two 32-bit long registers for cBPF), different jump semantics, a call instruction and corresponding register passing convention, new instructions, and a different encoding for these instructions.<sup id="cite_ref-diff-cbpf_13-0" class="reference"><a href="#cite_note-diff-cbpf-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> </p> <table class="wikitable"> <caption>Most significant milestones in the evolution of eBPF </caption> <tbody><tr> <th>Date</th> <th>Event </th></tr> <tr> <td>April 2011</td> <td>The first in-kernel Linux <a href="/wiki/Just-in-time_compiler" class="mw-redirect" title="Just-in-time compiler">just-in-time compiler</a> (JIT compiler) for the classic Berkeley Packet Filter was merged.<sup id="cite_ref-:69_14-0" class="reference"><a href="#cite_note-:69-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>January 2012</td> <td>The first non-networking use case of the classic Berkeley Packet Filter, <a href="/wiki/Seccomp" title="Seccomp">seccomp-bpf</a>,<sup id="cite_ref-:68_15-0" class="reference"><a href="#cite_note-:68-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> appeared; it allows filtering of <a href="/wiki/System_calls" class="mw-redirect" title="System calls">system calls</a> using a configurable policy implemented through BPF instructions. </td></tr> <tr> <td>March 2014</td> <td><a href="/wiki/David_S._Miller" title="David S. Miller">David S. Miller</a>, primary maintainer of the Linux networking stack, accepted the rework of the old in-kernel BPF <a href="/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreter</a>. It was replaced by an eBPF interpreter and the Linux kernel internally translates classic BPF (cBPF) into eBPF instructions.<sup id="cite_ref-:70_16-0" class="reference"><a href="#cite_note-:70-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> It was released in version 3.18 of the Linux kernel.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>March 2015</td> <td>The ability to attach eBPF to <a href="/wiki/Kprobe" class="mw-redirect" title="Kprobe">kprobes</a> as first <a href="/wiki/Tracing_(software)" title="Tracing (software)">tracing</a> use case was merged.<sup id="cite_ref-:71_19-0" class="reference"><a href="#cite_note-:71-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> In the same month, initial infrastructure work got accepted to attach eBPF to the networking traffic control (tc) layer allowing to attach eBPF to the core ingress and later also egress paths of the network stack, later heavily used by projects such as <a href="/wiki/Cilium_(computing)" title="Cilium (computing)">Cilium</a>.<sup id="cite_ref-:72_20-0" class="reference"><a href="#cite_note-:72-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:73_21-0" class="reference"><a href="#cite_note-:73-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:110_22-0" class="reference"><a href="#cite_note-:110-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>August 2015</td> <td>The eBPF <a href="/wiki/Compiler" title="Compiler">compiler</a> backend got merged into <a href="/wiki/LLVM" title="LLVM">LLVM</a> 3.7.0 release.<sup id="cite_ref-:74_23-0" class="reference"><a href="#cite_note-:74-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>September 2015</td> <td><a href="/wiki/Brendan_Gregg" title="Brendan Gregg">Brendan Gregg</a> announced a collection of new eBPF-based tracing tools as the bcc project, providing a front-end for eBPF to make it easier to write programs.<sup id="cite_ref-:75_24-0" class="reference"><a href="#cite_note-:75-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>July 2016</td> <td>eBPF got the ability to be attached into network driver's core receive path. This layer is known today as <a href="/wiki/Express_Data_Path" title="Express Data Path">eXpress DataPath</a> (XDP) and was added as a response to <a href="/wiki/DPDK" class="mw-redirect" title="DPDK">DPDK</a> to create a fast data path which works in combination with the Linux kernel rather than bypassing it.<sup id="cite_ref-:76_25-0" class="reference"><a href="#cite_note-:76-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:77_26-0" class="reference"><a href="#cite_note-:77-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:78_27-0" class="reference"><a href="#cite_note-:78-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>August 2016</td> <td><a href="/wiki/Cilium_(computing)" title="Cilium (computing)">Cilium</a> was initially announced during <a href="/wiki/LinuxCon" class="mw-redirect" title="LinuxCon">LinuxCon</a> as a project providing fast <a href="/wiki/IPv6" title="IPv6">IPv6</a> container networking with eBPF and XDP. Today, Cilium has been adopted by major cloud provider's <a href="/wiki/Kubernetes" title="Kubernetes">Kubernetes</a> offerings and is one of the most widely used CNIs.<sup id="cite_ref-:80_28-0" class="reference"><a href="#cite_note-:80-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:110_22-1" class="reference"><a href="#cite_note-:110-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:33_29-0" class="reference"><a href="#cite_note-:33-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>November 2016</td> <td><a href="/wiki/Netronome" title="Netronome">Netronome</a> added offload of eBPF programs for XDP and tc BPF layer to their NIC.<sup id="cite_ref-:79_30-0" class="reference"><a href="#cite_note-:79-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>May 2017</td> <td><a href="/wiki/Meta_Platforms" title="Meta Platforms">Meta</a>'s layer 4 load-balancer, Katran, went live. Every packet towards <a href="/wiki/Facebook.com" class="mw-redirect" title="Facebook.com">facebook.com</a> since then has been processed by eBPF & XDP.<sup id="cite_ref-:32_31-0" class="reference"><a href="#cite_note-:32-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>November 2017</td> <td>eBPF becomes its own kernel subsystem to ease the continuously growing kernel patch management. The first pull request by eBPF maintainers was submitted.<sup id="cite_ref-:81_32-0" class="reference"><a href="#cite_note-:81-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>September 2017</td> <td>Bpftool was added to the Linux kernel as a user space utility to introspect the eBPF subsystem.<sup id="cite_ref-:83_33-0" class="reference"><a href="#cite_note-:83-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>January 2018</td> <td>A new socket family called AF_XDP was published, allowing for high performance packet processing with zero-copy semantics at the XDP layer.<sup id="cite_ref-:86_34-0" class="reference"><a href="#cite_note-:86-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup> Today, <a href="/wiki/DPDK" class="mw-redirect" title="DPDK">DPDK</a> has an official AF_XDP poll-mode driver support.<sup id="cite_ref-:87_35-0" class="reference"><a href="#cite_note-:87-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>February 2018</td> <td>The bpfilter prototype has been published, allowing translation of a subset of iptables rulesets into eBPF via a newly developed user mode driver. The work has caused controversies due to the ongoing nftables development effort and has not been merged into mainline.<sup id="cite_ref-:84_36-0" class="reference"><a href="#cite_note-:84-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:85_37-0" class="reference"><a href="#cite_note-:85-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>October 2018</td> <td>The new bpftrace tool has been announced by <a href="/wiki/Brendan_Gregg" title="Brendan Gregg">Brendan Gregg</a> as <a href="/wiki/DTrace" title="DTrace">DTrace</a> 2.0 for Linux.<sup id="cite_ref-:89_38-0" class="reference"><a href="#cite_note-:89-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>November 2018</td> <td>eBPF introspection has been added for <a href="/wiki/Transport_Layer_Security" title="Transport Layer Security">kTLS</a> in order to support the ability for in-kernel TLS policy enforcement.<sup id="cite_ref-:82_39-0" class="reference"><a href="#cite_note-:82-39"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>November 2018</td> <td>BTF (BPF Type Format) has been added to the Linux kernel as an efficient meta data format which is approximately 100x smaller in size than <a href="/wiki/DWARF" title="DWARF">DWARF</a>.<sup id="cite_ref-:831_40-0" class="reference"><a href="#cite_note-:831-40"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>December 2019</td> <td>The first 880-page long book on BPF, written by Brendan Gregg, was released.<sup id="cite_ref-:90_41-0" class="reference"><a href="#cite_note-:90-41"><span class="cite-bracket">[</span>41<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>March 2020</td> <td><a href="/wiki/Google" title="Google">Google</a> upstreamed BPF LSM support into the Linux kernel, enabling programmable <a href="/wiki/Linux_Security_Modules" title="Linux Security Modules">Linux Security Modules</a> (LSMs) through eBPF.<sup id="cite_ref-:92_42-0" class="reference"><a href="#cite_note-:92-42"><span class="cite-bracket">[</span>42<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>September 2020</td> <td>The eBPF compiler backend for <a href="/wiki/GNU_Compiler_Collection" title="GNU Compiler Collection">GNU Compiler Collection</a> (GCC) was merged.<sup id="cite_ref-:91_43-0" class="reference"><a href="#cite_note-:91-43"><span class="cite-bracket">[</span>43<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>July 2022</td> <td>Microsoft released eBPF for Windows, which runs code in the NT kernel.<sup id="cite_ref-:3_4-2" class="reference"><a href="#cite_note-:3-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <td>October 2024</td> <td>The eBPF <a href="/wiki/Instruction_set_architecture" title="Instruction set architecture">instruction set architecture</a> (ISA) is published as RFC 9669. </td></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="Architecture_and_concepts">Architecture and concepts</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=3" title="Edit section: Architecture and concepts"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="eBPF_maps">eBPF maps</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=4" title="Edit section: eBPF maps"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>eBPF maps are efficient <a href="/wiki/Key/value_store" class="mw-redirect" title="Key/value store">key/value stores</a> that reside in <a href="/wiki/Kernel_space" class="mw-redirect" title="Kernel space">kernel space</a> and can be used to share data among multiple eBPF programs or to communicate between a user space application and eBPF code running in the kernel. eBPF programs can leverage eBPF maps to store and retrieve data in a wide set of data structures. Map implementations are provided by the core kernel. There are various types,<sup id="cite_ref-44" class="reference"><a href="#cite_note-44"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup> including hash maps, arrays, and ring buffers. </p><p>In practice, eBPF maps are typically used for scenarios such as a user space program writing configuration information to be retrieved by an eBPF program, an eBPF program storing state for later retrieval by another eBPF program (or a future run of the same program), or an eBPF program writing results or metrics into a map for retrieval by a user space program that will present results.<sup id="cite_ref-:0_45-0" class="reference"><a href="#cite_note-:0-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="eBPF_virtual_machine">eBPF virtual machine</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=5" title="Edit section: eBPF virtual machine"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The eBPF <a href="/wiki/Virtual_machine" title="Virtual machine">virtual machine</a> runs within the kernel and takes in a program in the form of eBPF <a href="/wiki/Bytecode" title="Bytecode">bytecode</a> instructions which are converted to <a href="/wiki/Instruction_set_architecture" title="Instruction set architecture">native machine instructions</a> that run on the CPU. Early implementations of eBPF saw eBPF bytecode interpreted, but this has now been replaced with a <a href="/wiki/Just-in-time_compilation" title="Just-in-time compilation">Just-in-Time (JIT) compilation</a> process for performance and security-related reasons.<sup id="cite_ref-:0_45-1" class="reference"><a href="#cite_note-:0-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup> </p><p>The eBPF virtual machine consists of eleven 64-bit registers with 32-bit subregisters, a <a href="/wiki/Program_counter" title="Program counter">program counter</a> and a 512-byte large BPF stack space. These general purpose <a href="/wiki/Processor_register" title="Processor register">registers</a> keep track of state when eBPF programs are executed.<sup id="cite_ref-bpf-architecture-cilium_46-0" class="reference"><a href="#cite_note-bpf-architecture-cilium-46"><span class="cite-bracket">[</span>46<span class="cite-bracket">]</span></a></sup>   </p> <div class="mw-heading mw-heading3"><h3 id="Tail_calls">Tail calls</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=6" title="Edit section: Tail calls"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Tail_call" title="Tail call">Tail calls</a> can call and execute another eBPF program and replace the <a href="/wiki/Execution_(computing)" title="Execution (computing)">execution context</a>, similar to how the <a href="/wiki/Exec_(system_call)" title="Exec (system call)">execve()</a> system call operates for regular processes. This basically allows an eBPF program to call another eBPF program. Tail calls are implemented as a long jump, reusing the same <a href="/wiki/Call_stack" title="Call stack">stack frame</a>. Tail calls are particularly useful in eBPF, where the stack is limited to 512 bytes. During runtime, functionality can be added or replaced atomically, thus altering the BPF program’s execution behavior.<sup id="cite_ref-bpf-architecture-cilium_46-1" class="reference"><a href="#cite_note-bpf-architecture-cilium-46"><span class="cite-bracket">[</span>46<span class="cite-bracket">]</span></a></sup> A popular use case for tail calls is to spread the complexity of eBPF programs over several programs. Another use case is for replacing or extending logic by replacing the contents of the program array while it is in use. For example, to update a program version without <a href="/wiki/Downtime" title="Downtime">downtime</a> or to enable/disable logic.<sup id="cite_ref-:10_47-0" class="reference"><a href="#cite_note-:10-47"><span class="cite-bracket">[</span>47<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="BPF_to_BPF_calls">BPF to BPF calls</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=7" title="Edit section: BPF to BPF calls"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>It is generally considered good practice in software development to group common code into a <a href="/wiki/Function_(computer_programming)" title="Function (computer programming)">function</a> encapsulating logic for reusability. Prior to Linux kernel 4.16 and LLVM 6.0, a typical eBPF C program had to explicitly direct the compiler to <a href="/wiki/Inline_function" title="Inline function">inline a function</a> resulting in a BPF object file that had duplicate functions. This restriction was lifted, and mainstream eBPF compilers now support writing functions naturally in eBPF programs. This reduces the generated eBPF code size making it friendlier to a CPU instruction cache.<sup id="cite_ref-:0_45-2" class="reference"><a href="#cite_note-:0-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-bpf-architecture-cilium_46-2" class="reference"><a href="#cite_note-bpf-architecture-cilium-46"><span class="cite-bracket">[</span>46<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="eBPF_verifier">eBPF verifier</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=8" title="Edit section: eBPF verifier"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The verifier is a core component of eBPF, and its main responsibility is to ensure that an eBPF program is safe to execute. It performs a static analysis of the eBPF bytecode to guarantee its safety. The verifier analyzes the program to assess all possible execution paths. It steps through the instructions in order and evaluates them. The verification process starts with a <a href="/wiki/Depth-first_search" title="Depth-first search">depth-first</a> search through all possible paths of the program, the verifier simulates the execution of each instruction, tracking the state of registers and stack if any instruction could lead to an unsafe state, verification fails. This process continues until all paths have been analyzed or a violation is found. Depending on the type of program, the verifier checks for violations of specific rules. These rules can include checking that an eBPF program always terminates within a reasonable amount of time (no <a href="/wiki/Infinite_loop" title="Infinite loop">infinite loops</a> or infinite <a href="/wiki/Recursion_(computer_science)" title="Recursion (computer science)">recursion)</a>, checking that an eBPF program is not allowed to read arbitrary memory because being able to arbitrary read memory could allow a program leak sensitive information, checking that network programs are not allowed to access memory outside of <a href="/wiki/Network_packet" title="Network packet">packet</a> bounds because adjacent memory could contain sensitive information, checking that programs are not allowed to <a href="/wiki/Deadlock_(computer_science)" title="Deadlock (computer science)">deadlock</a>, so any held <a href="/wiki/Spinlock" title="Spinlock">spinlocks</a> must be released and only one lock can be held at a time to avoid deadlocks over multiple programs, checking that programs are not allowed to read uninitialized memory.  This is not an exhaustive list of the checks the verifier does, and there are exceptions to these rules. An example is that tracing programs have access to helpers that allow them to read memory in a controlled way, but these program types require <a href="/wiki/Superuser" title="Superuser">root privileges</a> and thus do not pose a security risk.<sup id="cite_ref-:10_47-1" class="reference"><a href="#cite_note-:10-47"><span class="cite-bracket">[</span>47<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:0_45-3" class="reference"><a href="#cite_note-:0-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup> </p><p>Over time the eBPF verifier has evolved to include newer features and optimizations, such as support for bounded loops, <a href="/wiki/Dead-code_elimination" title="Dead-code elimination">dead-code elimination</a>, function-by-function verification, and <a href="/wiki/Callback_(computer_programming)" title="Callback (computer programming)">callbacks</a>. </p> <div class="mw-heading mw-heading3"><h3 id="eBPF_CO-RE_(Compile_Once_-_Run_Everywhere)"><span id="eBPF_CO-RE_.28Compile_Once_-_Run_Everywhere.29"></span>eBPF CO-RE (Compile Once - Run Everywhere)</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=9" title="Edit section: eBPF CO-RE (Compile Once - Run Everywhere)"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>eBPF programs use the memory and <a href="/wiki/Data_structure" title="Data structure">data structures</a> from the kernel. Some structures can be modified between different kernel versions, altering the memory layout. Since the Linux kernel is continuously developed, there is no guarantee that the internal data structures will remain the same across different versions. CO-RE is a fundamental concept in modern eBPF development that allows eBPF programs to be portable across different kernel versions and configurations. It addresses the challenge of kernel structure variations between different <a href="/wiki/Linux_distribution" title="Linux distribution">Linux distributions</a> and <a href="/wiki/Linux_kernel_version_history" title="Linux kernel version history">versions.</a> CO-RE comprises BTF (BPF Type Format) - a <a href="/wiki/Metadata" title="Metadata">metadata</a> format that describes the types used in the kernel and eBPF programs and provides detailed information about struct layouts, field offsets, and data types. It enables runtime accessibility of kernel types, which is crucial for BPF program development and verification. BTF is included in the kernel image of BTF-enable kernels. Special relocations are emitted by the <a href="/wiki/Compiler" title="Compiler">compiler</a>(e.g., LLVM). These relocations capture high-level descriptions of what information the eBPF program intends to access. The <a rel="nofollow" class="external text" href="https://github.com/libbpf/libbpf">libbpf</a> library adapts eBPF programs to work with the data structure layout on the target kernel where they run, even if this layout is different from the kernel where the code was compiled. To do this, libbpf needs the BPF CO-RE relocation information generated by Clang as part of the compilation process.<sup id="cite_ref-:0_45-4" class="reference"><a href="#cite_note-:0-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup> The compiled eBPF program is stored in an <a href="/wiki/Executable_and_Linkable_Format" title="Executable and Linkable Format">ELF (Executable and Linkable Format)</a> <a href="/wiki/Object_file" title="Object file">object file</a>. This file contains BTF-type information and <a href="/wiki/Clang" title="Clang">Clang</a>-generated relocations. The ELF format allows the eBPF loader (e.g., libbpf) to process and adjust the BPF program dynamically for the target <a href="/wiki/Kernel_(operating_system)" title="Kernel (operating system)">kernel</a>.<sup id="cite_ref-48" class="reference"><a href="#cite_note-48"><span class="cite-bracket">[</span>48<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Branding">Branding</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=10" title="Edit section: Branding"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The alias eBPF is often interchangeably used with BPF,<sup id="cite_ref-:4_2-2" class="reference"><a href="#cite_note-:4-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:11_49-0" class="reference"><a href="#cite_note-:11-49"><span class="cite-bracket">[</span>49<span class="cite-bracket">]</span></a></sup> for example by the Linux kernel community. eBPF and BPF is referred to as a technology name like <a href="/wiki/LLVM" title="LLVM">LLVM</a>.<sup id="cite_ref-:4_2-3" class="reference"><a href="#cite_note-:4-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> eBPF evolved from the machine language for the filtering virtual machine in the <a href="/wiki/Berkeley_Packet_Filter" title="Berkeley Packet Filter">Berkeley Packet Filter</a> as an extended version, but as its use cases outgrew networking, today "eBPF" is preferentially interpreted as a <a href="/wiki/Acronym#Pseudo-acronyms" title="Acronym">pseudo-acronym</a>.<sup id="cite_ref-:4_2-4" class="reference"><a href="#cite_note-:4-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> </p><p>The <a href="/wiki/Bee" title="Bee">bee</a> is the official logo for eBPF. At the first eBPF Summit there was a vote taken and the bee <a href="/wiki/Mascot" title="Mascot">mascot</a> was named "eBee".<sup id="cite_ref-:26_50-0" class="reference"><a href="#cite_note-:26-50"><span class="cite-bracket">[</span>50<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:27_51-0" class="reference"><a href="#cite_note-:27-51"><span class="cite-bracket">[</span>51<span class="cite-bracket">]</span></a></sup> The logo has originally been created by Vadim Shchekoldin.<sup id="cite_ref-:27_51-1" class="reference"><a href="#cite_note-:27-51"><span class="cite-bracket">[</span>51<span class="cite-bracket">]</span></a></sup> Earlier unofficial eBPF mascots have existed in the past,<sup id="cite_ref-:291_52-0" class="reference"><a href="#cite_note-:291-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup> but have not seen widespread adoption. </p> <div class="mw-heading mw-heading2"><h2 id="Governance">Governance</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=11" title="Edit section: Governance"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The eBPF Foundation was created in August 2021 with the goal to expand the contributions being made to extend the powerful capabilities of eBPF and grow beyond Linux.<sup id="cite_ref-ebpf-linux-foundation_1-2" class="reference"><a href="#cite_note-ebpf-linux-foundation-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Founding members include <a href="/wiki/Meta_Platforms" title="Meta Platforms">Meta</a>, <a href="/wiki/Google" title="Google">Google</a>, Isovalent, <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> and <a href="/wiki/Netflix" title="Netflix">Netflix</a>. The purpose is to raise, budget and spend funds in support of various open source, open data and/or open standards projects relating to eBPF technologies<sup id="cite_ref-:28_53-0" class="reference"><a href="#cite_note-:28-53"><span class="cite-bracket">[</span>53<span class="cite-bracket">]</span></a></sup> to further drive the growth and adoption of the eBPF ecosystem. Since inception, <a href="/wiki/Red_Hat" title="Red Hat">Red Hat</a>, <a href="/wiki/Huawei" title="Huawei">Huawei</a>, <a href="/wiki/Crowdstrike" class="mw-redirect" title="Crowdstrike">Crowdstrike</a>, Tigera, DaoCloud, Datoms, FutureWei also joined.<sup id="cite_ref-:64_54-0" class="reference"><a href="#cite_note-:64-54"><span class="cite-bracket">[</span>54<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Adoption">Adoption</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=12" title="Edit section: Adoption"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>eBPF has been adopted by a number of large-scale production users, for example: </p> <ul><li><a href="/wiki/Meta_Platforms" title="Meta Platforms">Meta</a> uses eBPF through their Katran layer 4 load-balancer for all traffic going to facebook.com<sup id="cite_ref-:29_55-0" class="reference"><a href="#cite_note-:29-55"><span class="cite-bracket">[</span>55<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:30_56-0" class="reference"><a href="#cite_note-:30-56"><span class="cite-bracket">[</span>56<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:31_57-0" class="reference"><a href="#cite_note-:31-57"><span class="cite-bracket">[</span>57<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:32_31-1" class="reference"><a href="#cite_note-:32-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Google" title="Google">Google</a> uses eBPF in <a href="/wiki/Google_Cloud_Platform" title="Google Cloud Platform">GKE</a>, developed and uses BPF LSM to replace audit and it uses eBPF for networking<sup id="cite_ref-:33_29-1" class="reference"><a href="#cite_note-:33-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:34_58-0" class="reference"><a href="#cite_note-:34-58"><span class="cite-bracket">[</span>58<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:35_59-0" class="reference"><a href="#cite_note-:35-59"><span class="cite-bracket">[</span>59<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:36_60-0" class="reference"><a href="#cite_note-:36-60"><span class="cite-bracket">[</span>60<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Cloudflare" title="Cloudflare">Cloudflare</a> uses eBPF for load-balancing and DDoS protection and security enforcement<sup id="cite_ref-:37_61-0" class="reference"><a href="#cite_note-:37-61"><span class="cite-bracket">[</span>61<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:38_62-0" class="reference"><a href="#cite_note-:38-62"><span class="cite-bracket">[</span>62<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:39_63-0" class="reference"><a href="#cite_note-:39-63"><span class="cite-bracket">[</span>63<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:63_64-0" class="reference"><a href="#cite_note-:63-64"><span class="cite-bracket">[</span>64<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:88_65-0" class="reference"><a href="#cite_note-:88-65"><span class="cite-bracket">[</span>65<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Netflix" title="Netflix">Netflix</a> uses eBPF for fleet-wide network <a href="/wiki/Observability_(software)" title="Observability (software)">observability</a> and performance diagnosis<sup id="cite_ref-:40_66-0" class="reference"><a href="#cite_note-:40-66"><span class="cite-bracket">[</span>66<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:41_67-0" class="reference"><a href="#cite_note-:41-67"><span class="cite-bracket">[</span>67<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Dropbox" title="Dropbox">Dropbox</a> uses eBPF through Katran for layer 4 load-balancing<sup id="cite_ref-:42_68-0" class="reference"><a href="#cite_note-:42-68"><span class="cite-bracket">[</span>68<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a> uses eBPF for NAT46 and traffic monitoring<sup id="cite_ref-:43_69-0" class="reference"><a href="#cite_note-:43-69"><span class="cite-bracket">[</span>69<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:44_70-0" class="reference"><a href="#cite_note-:44-70"><span class="cite-bracket">[</span>70<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:45_71-0" class="reference"><a href="#cite_note-:45-71"><span class="cite-bracket">[</span>71<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Samsung_Galaxy" title="Samsung Galaxy">Samsung Galaxy</a> uses eBPF for Networking solutions <sup id="cite_ref-:Samsung_72-0" class="reference"><a href="#cite_note-:Samsung-72"><span class="cite-bracket">[</span>72<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Yahoo!_Inc._(2017%E2%80%93present)" title="Yahoo! Inc. (2017–present)">Yahoo! Inc</a> uses eBPF through Cilium for layer 4 load balancing<sup id="cite_ref-73" class="reference"><a href="#cite_note-73"><span class="cite-bracket">[</span>73<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/LinkedIn" title="LinkedIn">LinkedIn</a> uses eBPF for infrastructure observability<sup id="cite_ref-74" class="reference"><a href="#cite_note-74"><span class="cite-bracket">[</span>74<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Alibaba_Group" title="Alibaba Group">Alibaba</a> uses eBPF for <a href="/wiki/Kubernetes" title="Kubernetes">Kubernetes</a> Pod load-balancing<sup id="cite_ref-:46_75-0" class="reference"><a href="#cite_note-:46-75"><span class="cite-bracket">[</span>75<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Datadog" title="Datadog">Datadog</a> uses eBPF for Kubernetes Pod networking and security enforcement<sup id="cite_ref-:47_76-0" class="reference"><a href="#cite_note-:47-76"><span class="cite-bracket">[</span>76<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:48_77-0" class="reference"><a href="#cite_note-:48-77"><span class="cite-bracket">[</span>77<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:49_78-0" class="reference"><a href="#cite_note-:49-78"><span class="cite-bracket">[</span>78<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Trip.com" title="Trip.com">Trip.com</a> uses eBPF for Kubernetes Pod networking<sup id="cite_ref-:50_79-0" class="reference"><a href="#cite_note-:50-79"><span class="cite-bracket">[</span>79<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:51_80-0" class="reference"><a href="#cite_note-:51-80"><span class="cite-bracket">[</span>80<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Shopify" title="Shopify">Shopify</a> uses eBPF for intrusion detection through Falco<sup id="cite_ref-81" class="reference"><a href="#cite_note-81"><span class="cite-bracket">[</span>81<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/DoorDash" title="DoorDash">DoorDash</a> uses eBPF through BPFAgent for kernel level monitoring<sup id="cite_ref-82" class="reference"><a href="#cite_note-82"><span class="cite-bracket">[</span>82<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> ported eBPF and XDP to Windows<sup id="cite_ref-:52_83-0" class="reference"><a href="#cite_note-:52-83"><span class="cite-bracket">[</span>83<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:53_84-0" class="reference"><a href="#cite_note-:53-84"><span class="cite-bracket">[</span>84<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:54_85-0" class="reference"><a href="#cite_note-:54-85"><span class="cite-bracket">[</span>85<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Seznam" class="mw-redirect" title="Seznam">Seznam</a> uses eBPF through Cilium for layer 4 load-balancing<sup id="cite_ref-:55_86-0" class="reference"><a href="#cite_note-:55-86"><span class="cite-bracket">[</span>86<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/DigitalOcean" title="DigitalOcean">DigitalOcean</a> uses eBPF and XDP to rate limit access to internal services in their virtual network<sup id="cite_ref-87" class="reference"><a href="#cite_note-87"><span class="cite-bracket">[</span>87<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/CapitalOne" class="mw-redirect" title="CapitalOne">CapitalOne</a> uses eBPF for Kubernetes Pod networking<sup id="cite_ref-:56_88-0" class="reference"><a href="#cite_note-:56-88"><span class="cite-bracket">[</span>88<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Bell_Canada" title="Bell Canada">Bell Canada</a> uses eBPF to moderize telco networking with SRv6<sup id="cite_ref-89" class="reference"><a href="#cite_note-89"><span class="cite-bracket">[</span>89<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Elastic_NV" title="Elastic NV">Elastic_NV</a> uses eBPF for code profiling as part of their observability offering <sup id="cite_ref-90" class="reference"><a href="#cite_note-90"><span class="cite-bracket">[</span>90<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Apple_Inc." title="Apple Inc.">Apple</a> uses eBPF for Kubernetes Pod security<sup id="cite_ref-:57_91-0" class="reference"><a href="#cite_note-:57-91"><span class="cite-bracket">[</span>91<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Sky_UK" title="Sky UK">Sky</a> uses eBPF for Kubernetes Pod networking<sup id="cite_ref-:58_92-0" class="reference"><a href="#cite_note-:58-92"><span class="cite-bracket">[</span>92<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Walmart" title="Walmart">Walmart</a> uses eBPF for layer 4 load-balancing<sup id="cite_ref-:59_93-0" class="reference"><a href="#cite_note-:59-93"><span class="cite-bracket">[</span>93<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:60_94-0" class="reference"><a href="#cite_note-:60-94"><span class="cite-bracket">[</span>94<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Huawei" title="Huawei">Huawei</a> uses eBPF through their DIGLIM secure boot system<sup id="cite_ref-:61_95-0" class="reference"><a href="#cite_note-:61-95"><span class="cite-bracket">[</span>95<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Ikea" class="mw-redirect" title="Ikea">Ikea</a> uses eBPF for Kubernetes Pod networking<sup id="cite_ref-:62_96-0" class="reference"><a href="#cite_note-:62-96"><span class="cite-bracket">[</span>96<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/The_New_York_Times" title="The New York Times">The New York Times</a> uses eBPF for networking<sup id="cite_ref-97" class="reference"><a href="#cite_note-97"><span class="cite-bracket">[</span>97<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Red_Hat" title="Red Hat">Red Hat</a> uses eBPF at scale for load balancing and tracing in their private cloud</li> <li><a href="/wiki/Palantir_Technologies" title="Palantir Technologies">Palantir Technologies</a> uses eBPF to debug networking problems in large scale Kubernetes clusters<sup id="cite_ref-98" class="reference"><a href="#cite_note-98"><span class="cite-bracket">[</span>98<span class="cite-bracket">]</span></a></sup></li></ul> <div class="mw-heading mw-heading2"><h2 id="Security">Security</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=13" title="Edit section: Security"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Due to the ease of programmability, eBPF has been used as a tool for implementing microarchitectural timing <a href="/wiki/Side-channel_attacks" class="mw-redirect" title="Side-channel attacks">side-channel attacks</a> such as <a href="/wiki/Spectre_(security_vulnerability)" title="Spectre (security vulnerability)">Spectre</a> against vulnerable <a href="/wiki/Microprocessors" class="mw-redirect" title="Microprocessors">microprocessors</a>.<sup id="cite_ref-:65_99-0" class="reference"><a href="#cite_note-:65-99"><span class="cite-bracket">[</span>99<span class="cite-bracket">]</span></a></sup> While unprivileged eBPF implemented mitigations against transient execution attacks,<sup id="cite_ref-:66_100-0" class="reference"><a href="#cite_note-:66-100"><span class="cite-bracket">[</span>100<span class="cite-bracket">]</span></a></sup> unprivileged use has ultimately been disabled by the kernel community by default to protect from use against future hardware vulnerabilities.<sup id="cite_ref-:67_101-0" class="reference"><a href="#cite_note-:67-101"><span class="cite-bracket">[</span>101<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=14" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Express_Data_Path" title="Express Data Path">Express Data Path</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=15" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;"> <ol class="references"> <li id="cite_note-ebpf-linux-foundation-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-ebpf-linux-foundation_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-ebpf-linux-foundation_1-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-ebpf-linux-foundation_1-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.linuxfoundation.org/press-release/facebook-google-isovalent-microsoft-and-netflix-launch-ebpf-foundation-as-part-of-the-linux-foundation/">"Meta, Google, Isovalent, Microsoft and Netflix Launch eBPF Foundation as Part of the Linux Foundation"</a>. <i><a href="/wiki/Linux_Foundation" title="Linux Foundation">Linux Foundation</a></i>. 12 August 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Linux+Foundation&rft.atitle=Meta%2C+Google%2C+Isovalent%2C+Microsoft+and+Netflix+Launch+eBPF+Foundation+as+Part+of+the+Linux+Foundation&rft.date=2021-08-12&rft_id=https%3A%2F%2Fwww.linuxfoundation.org%2Fpress-release%2Ffacebook-google-isovalent-microsoft-and-netflix-launch-ebpf-foundation-as-part-of-the-linux-foundation%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:4-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-:4_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:4_2-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:4_2-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:4_2-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-:4_2-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.usenix.org/conference/lisa21/presentation/gregg-bpf">"BPF Internals"</a>. <i>USENIX LISA 2021 conference</i>. 1 June 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=USENIX+LISA+2021+conference&rft.atitle=BPF+Internals&rft.date=2021-06-01&rft_id=https%3A%2F%2Fwww.usenix.org%2Fconference%2Flisa21%2Fpresentation%2Fgregg-bpf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-ebpf-and-kubernetes-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-ebpf-and-kubernetes_3-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://kccnceu20.sched.com/event/ZemQ/ebpf-and-kubernetes-little-helper-minions-for-scaling-microservices-daniel-borkmann-cilium">"eBPF and Kubernetes: Little Helper Minions for Scaling Microservices"</a>. <i><a href="/wiki/Cloud_Native_Computing_Foundation" title="Cloud Native Computing Foundation">CNCF</a> KubeCon + CloudNativeCon Europe 2020</i>. 19 August 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=CNCF+KubeCon+%2B+CloudNativeCon+Europe+2020&rft.atitle=eBPF+and+Kubernetes%3A+Little+Helper+Minions+for+Scaling+Microservices&rft.date=2020-08-19&rft_id=https%3A%2F%2Fkccnceu20.sched.com%2Fevent%2FZemQ%2Febpf-and-kubernetes-little-helper-minions-for-scaling-microservices-daniel-borkmann-cilium&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:3-4"><span class="mw-cite-backlink">^ <a href="#cite_ref-:3_4-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:3_4-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:3_4-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cloudblogs.microsoft.com/opensource/2021/05/10/making-ebpf-work-on-windows/">"Making eBPF work on Windows"</a>. <i><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> Open Source Blog</i>. 10 May 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Microsoft+Open+Source+Blog&rft.atitle=Making+eBPF+work+on+Windows&rft.date=2021-05-10&rft_id=https%3A%2F%2Fcloudblogs.microsoft.com%2Fopensource%2F2021%2F05%2F10%2Fmaking-ebpf-work-on-windows%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:8-5"><span class="mw-cite-backlink">^ <a href="#cite_ref-:8_5-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:8_5-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://ebpf.io/what-is-ebpf">"eBPF Documentation: What is eBPF?"</a>. <i>eBPF.io</i><span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=eBPF.io&rft.atitle=eBPF+Documentation%3A+What+is+eBPF%3F&rft_id=https%3A%2F%2Febpf.io%2Fwhat-is-ebpf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:9-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-:9_6-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.infoq.com/presentations/facebook-google-bpf-linux-kernel/">"eBPF - Rethinking the Linux Kernel"</a>. <i>QCon 2020</i><span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=QCon+2020&rft.atitle=eBPF+-+Rethinking+the+Linux+Kernel&rft_id=https%3A%2F%2Fwww.infoq.com%2Fpresentations%2Ffacebook-google-bpf-linux-kernel%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:6-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-:6_7-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=AV8xY318rtc">"Safe Programs The Foundation of BPF"</a>. <i>eBPF Summit 2021</i>. 8 November 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=eBPF+Summit+2021&rft.atitle=Safe+Programs+The+Foundation+of+BPF.&rft.date=2020-11-08&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DAV8xY318rtc&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:7-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-:7_8-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://popl22.sigplan.org/details/prisc-2022-papers/11/BPF-and-Spectre-Mitigating-transient-execution-attacks">"BPF and Spectre: Mitigating transient execution attacks"</a>. <i>POPL 2022 conference</i>. 22 January 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=POPL+2022+conference&rft.atitle=BPF+and+Spectre%3A+Mitigating+transient+execution+attacks&rft.date=2022-01-22&rft_id=https%3A%2F%2Fpopl22.sigplan.org%2Fdetails%2Fprisc-2022-papers%2F11%2FBPF-and-Spectre-Mitigating-transient-execution-attacks&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:94-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-:94_9-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://conferences.sigcomm.org/sigcomm/2023/files/workshop-ebpf/1-CloudNative.pdf#page=20">"eBPF - The Silent Platform Revolution from Cloud Native"</a> <span class="cs1-format">(PDF)</span>. <i>SIGCOMM 2023, 1st Workshop on eBPF and Kernel Extensions</i>. 10 September 2023<span class="reference-accessdate">. Retrieved <span class="nowrap">5 October</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=SIGCOMM+2023%2C+1st+Workshop+on+eBPF+and+Kernel+Extensions&rft.atitle=eBPF+-+The+Silent+Platform+Revolution+from+Cloud+Native&rft.date=2023-09-10&rft_id=https%3A%2F%2Fconferences.sigcomm.org%2Fsigcomm%2F2023%2Ffiles%2Fworkshop-ebpf%2F1-CloudNative.pdf%23page%3D20&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHedam2023" class="citation web cs1">Hedam, Niclas (26 May 2023). <a rel="nofollow" class="external text" href="https://hed.am/papers/2021-EBPF.pdf">"eBPF - From a Programmer's Perspective"</a> <span class="cs1-format">(PDF)</span>. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.13140%2FRG.2.2.33688.11529%2F4">10.13140/RG.2.2.33688.11529/4</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=eBPF+-+From+a+Programmer%27s+Perspective&rft.date=2023-05-26&rft_id=info%3Adoi%2F10.13140%2FRG.2.2.33688.11529%2F4&rft.aulast=Hedam&rft.aufirst=Niclas&rft_id=https%3A%2F%2Fhed.am%2Fpapers%2F2021-EBPF.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:5-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-:5_11-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.brendangregg.com/blog/2016-03-05/linux-bpf-superpowers.html">"Linux BPF Superpowers"</a>. <i><a href="/wiki/Brendan_Gregg" title="Brendan Gregg">Brendan Gregg</a>'s Blog</i>. 5 March 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Brendan+Gregg%27s+Blog&rft.atitle=Linux+BPF+Superpowers&rft.date=2016-03-05&rft_id=https%3A%2F%2Fwww.brendangregg.com%2Fblog%2F2016-03-05%2Flinux-bpf-superpowers.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:12-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-:12_12-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.zdnet.com/article/linus-torvalds-talks-about-coming-back-to-work-on-linux/">"Linus Torvalds talks about coming back to work on Linux"</a>. <i>zdnet Interview with Linus Torvalds</i>. 23 October 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=zdnet+Interview+with+Linus+Torvalds&rft.atitle=Linus+Torvalds+talks+about+coming+back+to+work+on+Linux&rft.date=2018-10-23&rft_id=https%3A%2F%2Fwww.zdnet.com%2Farticle%2Flinus-torvalds-talks-about-coming-back-to-work-on-linux%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-diff-cbpf-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-diff-cbpf_13-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.kernel.org/doc/html/v6.1/bpf/classic_vs_extended.html">"Classic BPF vs eBPF"</a>. <i>LWN</i>. March 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">6 January</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=LWN&rft.atitle=Classic+BPF+vs+eBPF&rft.date=2014-03&rft_id=https%3A%2F%2Fwww.kernel.org%2Fdoc%2Fhtml%2Fv6.1%2Fbpf%2Fclassic_vs_extended.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:69-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-:69_14-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lore.kernel.org/netdev/1301838968.2837.200.camel@edumazet-laptop/">"net: filter: Just In Time compiler"</a>. <i>lore.kernel.org</i>. April 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lore.kernel.org&rft.atitle=net%3A+filter%3A+Just+In+Time+compiler&rft.date=2011-04&rft_id=https%3A%2F%2Flore.kernel.org%2Fnetdev%2F1301838968.2837.200.camel%40edumazet-laptop%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:68-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-:68_15-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lwn.net/Articles/475043/">"Yet another new approach to seccomp"</a>. <i>LWN</i>. 1 January 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=LWN&rft.atitle=Yet+another+new+approach+to+seccomp&rft.date=2012-01-01&rft_id=https%3A%2F%2Flwn.net%2FArticles%2F475043%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:70-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-:70_16-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lore.kernel.org/netdev/1396029506-16776-1-git-send-email-dborkman@redhat.com/">"BPF updates"</a>. <i>lore.kernel.org</i>. March 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lore.kernel.org&rft.atitle=BPF+updates&rft.date=2014-03&rft_id=https%3A%2F%2Flore.kernel.org%2Fnetdev%2F1396029506-16776-1-git-send-email-dborkman%40redhat.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://kernelnewbies.org/Linux_3.18#bpf.28.29_syscall_for_eBFP_virtual_machine_programs">"Linux kernel 3.18, Section 1.3. bpf() syscall for eBFP [<i>sic</i>] virtual machine programs"</a>. <i>kernelnewbies.org</i>. December 7, 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">September 6,</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=kernelnewbies.org&rft.atitle=Linux+kernel+3.18%2C+Section+1.3.+bpf%28%29+syscall+for+eBFP%26%2332%3B%26%2391%3Bsic%26%2393%3B+virtual+machine+programs&rft.date=2014-12-07&rft_id=https%3A%2F%2Fkernelnewbies.org%2FLinux_3.18%23bpf.28.29_syscall_for_eBFP_virtual_machine_programs&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:102-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-:102_18-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lore.kernel.org/bpf/20210926203409.kn3gzz2eaodflels@ast-mbp.dhcp.thefacebook.com/">"Happy birthday BPF!"</a>. <i>lore.kernel.org</i>. September 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lore.kernel.org&rft.atitle=Happy+birthday+BPF%21&rft.date=2014-09&rft_id=https%3A%2F%2Flore.kernel.org%2Fbpf%2F20210926203409.kn3gzz2eaodflels%40ast-mbp.dhcp.thefacebook.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:71-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-:71_19-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lore.kernel.org/netdev/1425252465-27527-1-git-send-email-ast@plumgrid.com/">"tracing: attach eBPF programs to kprobes"</a>. <i>lore.kernel.org</i>. March 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lore.kernel.org&rft.atitle=tracing%3A+attach+eBPF+programs+to+kprobes&rft.date=2015-03&rft_id=https%3A%2F%2Flore.kernel.org%2Fnetdev%2F1425252465-27527-1-git-send-email-ast%40plumgrid.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:72-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-:72_20-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lore.kernel.org/netdev/cover.1425208501.git.daniel@iogearbox.net/">"eBPF support for cls_bpf"</a>. <i>lore.kernel.org</i>. March 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lore.kernel.org&rft.atitle=eBPF+support+for+cls_bpf&rft.date=2015-03&rft_id=https%3A%2F%2Flore.kernel.org%2Fnetdev%2Fcover.1425208501.git.daniel%40iogearbox.net%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:73-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-:73_21-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lore.kernel.org/netdev/61198814638d88ce3555dbecf8ef875523b95743.1452197856.git.daniel@iogearbox.net/">"net, sched: add clsact qdisc"</a>. <i>lore.kernel.org</i>. January 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lore.kernel.org&rft.atitle=net%2C+sched%3A+add+clsact+qdisc&rft.date=2016-01&rft_id=https%3A%2F%2Flore.kernel.org%2Fnetdev%2F61198814638d88ce3555dbecf8ef875523b95743.1452197856.git.daniel%40iogearbox.net%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:110-22"><span class="mw-cite-backlink">^ <a href="#cite_ref-:110_22-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:110_22-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cilium.io/">"eBPF-based Networking, Observability, Security"</a>. <i>cilium.io</i>. January 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=cilium.io&rft.atitle=eBPF-based+Networking%2C+Observability%2C+Security&rft.date=2016-01&rft_id=https%3A%2F%2Fcilium.io%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:74-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-:74_23-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://releases.llvm.org/3.7.0/docs/ReleaseNotes.html#non-comprehensive-list-of-changes-in-this-release">"LLVM 3.7 Release Notes"</a>. <i>releases.llvm.org</i>. August 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=releases.llvm.org&rft.atitle=LLVM+3.7+Release+Notes&rft.date=2015-08&rft_id=https%3A%2F%2Freleases.llvm.org%2F3.7.0%2Fdocs%2FReleaseNotes.html%23non-comprehensive-list-of-changes-in-this-release&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:75-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-:75_24-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.brendangregg.com/blog/2015-09-22/bcc-linux-4.3-tracing.html">"bcc: Taming Linux 4.3+ Tracing Superpowers"</a>. <i>brendangregg.com</i>. September 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=brendangregg.com&rft.atitle=bcc%3A+Taming+Linux+4.3%2B+Tracing+Superpowers&rft.date=2015-09&rft_id=https%3A%2F%2Fwww.brendangregg.com%2Fblog%2F2015-09-22%2Fbcc-linux-4.3-tracing.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:76-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-:76_25-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lore.kernel.org/netdev/1468955817-10604-1-git-send-email-bblanco@plumgrid.com/">"Add driver bpf hook for early packet drop and forwarding"</a>. <i>lore.kernel.org</i>. July 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lore.kernel.org&rft.atitle=Add+driver+bpf+hook+for+early+packet+drop+and+forwarding&rft.date=2016-07&rft_id=https%3A%2F%2Flore.kernel.org%2Fnetdev%2F1468955817-10604-1-git-send-email-bblanco%40plumgrid.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:77-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-:77_26-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=OIyPm6K4ooY">"eCHO episode 9: XDP and Load Balancing"</a>. <i>youtube.com</i>. June 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=youtube.com&rft.atitle=eCHO+episode+9%3A+XDP+and+Load+Balancing&rft.date=2021-06&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DOIyPm6K4ooY&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:78-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-:78_27-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHøiland-JørgensenBrouerBorkmannFastabend2018" class="citation conference cs1">Høiland-Jørgensen, Toke; Brouer, Jesper Dangaard; Borkmann, Daniel; Fastabend, John; Herbert, Tom; Ahern, David; Miller, David (December 2018). "The eXpress data path: Fast programmable packet processing in the operating system kernel". <i>Proceedings of the 14th International Conference on emerging Networking EXperiments and Technologies</i>. pp. 54–66. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3281411.3281443">10.1145/3281411.3281443</a></span>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/9781450360807" title="Special:BookSources/9781450360807"><bdi>9781450360807</bdi></a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:53779310">53779310</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=conference&rft.atitle=The+eXpress+data+path%3A+Fast+programmable+packet+processing+in+the+operating+system+kernel&rft.btitle=Proceedings+of+the+14th+International+Conference+on+emerging+Networking+EXperiments+and+Technologies&rft.pages=54-66&rft.date=2018-12&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A53779310%23id-name%3DS2CID&rft_id=info%3Adoi%2F10.1145%2F3281411.3281443&rft.isbn=9781450360807&rft.aulast=H%C3%B8iland-J%C3%B8rgensen&rft.aufirst=Toke&rft.au=Brouer%2C+Jesper+Dangaard&rft.au=Borkmann%2C+Daniel&rft.au=Fastabend%2C+John&rft.au=Herbert%2C+Tom&rft.au=Ahern%2C+David&rft.au=Miller%2C+David&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:80-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-:80_28-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.slideshare.net/ThomasGraf5/cilium-fast-ipv6-container-networking-with-bpf-and-xdp">"Cilium - Fast IPv6 Container Networking with BPF and XDP"</a>. <i>slideshare.net</i>. August 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=slideshare.net&rft.atitle=Cilium+-+Fast+IPv6+Container+Networking+with+BPF+and+XDP&rft.date=2016-08&rft_id=https%3A%2F%2Fwww.slideshare.net%2FThomasGraf5%2Fcilium-fast-ipv6-container-networking-with-bpf-and-xdp&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:33-29"><span class="mw-cite-backlink">^ <a href="#cite_ref-:33_29-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:33_29-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cloud.google.com/blog/products/containers-kubernetes/bringing-ebpf-and-cilium-to-google-kubernetes-engine">"New GKE Dataplane V2 increases security and visibility for containers"</a>. <i>cloud.google.com</i>. May 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=cloud.google.com&rft.atitle=New+GKE+Dataplane+V2+increases+security+and+visibility+for+containers&rft.date=2021-05&rft_id=https%3A%2F%2Fcloud.google.com%2Fblog%2Fproducts%2Fcontainers-kubernetes%2Fbringing-ebpf-and-cilium-to-google-kubernetes-engine&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:79-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-:79_30-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lore.kernel.org/netdev/1478193129-23476-1-git-send-email-jakub.kicinski@netronome.com/">"nfp ring reconfiguration and XDP support"</a>. <i>lore.kernel.org</i>. November 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lore.kernel.org&rft.atitle=nfp+ring+reconfiguration+and+XDP+support&rft.date=2016-11&rft_id=https%3A%2F%2Flore.kernel.org%2Fnetdev%2F1478193129-23476-1-git-send-email-jakub.kicinski%40netronome.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:32-31"><span class="mw-cite-backlink">^ <a href="#cite_ref-:32_31-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:32_31-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lpc.events/event/2/contributions/109/">"XDP 1.5 Years In Production. Evolution and Lessons Learned"</a>. <i>lpc.events</i>. November 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lpc.events&rft.atitle=XDP+1.5+Years+In+Production.+Evolution+and+Lessons+Learned.&rft.date=2018-11&rft_id=https%3A%2F%2Flpc.events%2Fevent%2F2%2Fcontributions%2F109%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:81-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-:81_32-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lore.kernel.org/netdev/20171123120135.8371-1-daniel@iogearbox.net/">"pull-request: bpf 2017-11-23"</a>. <i>lore.kernel.org</i>. November 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lore.kernel.org&rft.atitle=pull-request%3A+bpf+2017-11-23&rft.date=2017-11&rft_id=https%3A%2F%2Flore.kernel.org%2Fnetdev%2F20171123120135.8371-1-daniel%40iogearbox.net%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:83-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-:83_33-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lore.kernel.org/netdev/20170926153522.31500-1-jakub.kicinski@netronome.com/">"tools: add bpftool"</a>. <i>lore.kernel.org</i>. September 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lore.kernel.org&rft.atitle=tools%3A+add+bpftool&rft.date=2017-09&rft_id=https%3A%2F%2Flore.kernel.org%2Fnetdev%2F20170926153522.31500-1-jakub.kicinski%40netronome.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:86-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-:86_34-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lore.kernel.org/netdev/20180131135356.19134-1-bjorn.topel@gmail.com/">"Introducing AF_XDP support"</a>. <i>lore.kernel.org</i>. January 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lore.kernel.org&rft.atitle=Introducing+AF_XDP+support&rft.date=2018-01&rft_id=https%3A%2F%2Flore.kernel.org%2Fnetdev%2F20180131135356.19134-1-bjorn.topel%40gmail.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:87-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-:87_35-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.dpdk.org/guides/nics/af_xdp.html">"AF_XDP Poll Mode Driver"</a>. <i>doc.dpdk.org</i>. August 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=doc.dpdk.org&rft.atitle=AF_XDP+Poll+Mode+Driver&rft.date=2022-08&rft_id=https%3A%2F%2Fdoc.dpdk.org%2Fguides%2Fnics%2Faf_xdp.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:84-36"><span class="mw-cite-backlink"><b><a href="#cite_ref-:84_36-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lwn.net/Articles/747551/">"BPF comes to firewalls"</a>. <i>lwn.net</i>. February 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lwn.net&rft.atitle=BPF+comes+to+firewalls&rft.date=2018-02&rft_id=https%3A%2F%2Flwn.net%2FArticles%2F747551%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:85-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-:85_37-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cilium.io/blog/2018/04/17/why-is-the-kernel-community-replacing-iptables/">"Why is the kernel community replacing iptables with BPF?"</a>. <i>cilium.io</i>. April 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=cilium.io&rft.atitle=Why+is+the+kernel+community+replacing+iptables+with+BPF%3F&rft.date=2018-04&rft_id=https%3A%2F%2Fcilium.io%2Fblog%2F2018%2F04%2F17%2Fwhy-is-the-kernel-community-replacing-iptables%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:89-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-:89_38-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.brendangregg.com/blog/2018-10-08/dtrace-for-linux-2018.html">"bpftrace (DTrace 2.0) for Linux 2018"</a>. <i>brendangregg.com</i>. October 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=brendangregg.com&rft.atitle=bpftrace+%28DTrace+2.0%29+for+Linux+2018&rft.date=2018-10&rft_id=https%3A%2F%2Fwww.brendangregg.com%2Fblog%2F2018-10-08%2Fdtrace-for-linux-2018.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:82-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-:82_39-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://vger.kernel.org/lpc_net2018_talks/ktls_bpf.pdf">"Combining kTLS and BPF for Introspection and Policy Enforcement"</a> <span class="cs1-format">(PDF)</span>. <i>vger.kernel.org</i>. November 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=vger.kernel.org&rft.atitle=Combining+kTLS+and+BPF+for+Introspection+and+Policy+Enforcement&rft.date=2018-11&rft_id=http%3A%2F%2Fvger.kernel.org%2Flpc_net2018_talks%2Fktls_bpf.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:831-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-:831_40-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://nakryiko.com/posts/btf-dedup/">"BTF deduplication and Linux kernel BTF"</a>. <i>nakryiko.com</i>. November 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=nakryiko.com&rft.atitle=BTF+deduplication+and+Linux+kernel+BTF&rft.date=2018-11&rft_id=https%3A%2F%2Fnakryiko.com%2Fposts%2Fbtf-dedup%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:90-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-:90_41-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.brendangregg.com/bpf-performance-tools-book.html">"BPF Performance Tools (book)"</a>. <i>brendangregg.com</i>. December 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=brendangregg.com&rft.atitle=BPF+Performance+Tools+%28book%29&rft.date=2019-12&rft_id=https%3A%2F%2Fwww.brendangregg.com%2Fbpf-performance-tools-book.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:92-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-:92_42-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lore.kernel.org/bpf/20200329004356.27286-1-kpsingh@chromium.org/">"MAC and Audit policy using eBPF (KRSI)"</a>. <i>lore.kernel.org</i>. March 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lore.kernel.org&rft.atitle=MAC+and+Audit+policy+using+eBPF+%28KRSI%29&rft.date=2020-03&rft_id=https%3A%2F%2Flore.kernel.org%2Fbpf%2F20200329004356.27286-1-kpsingh%40chromium.org%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:91-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-:91_43-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lwn.net/Articles/831402/">"BPF in GCC"</a>. <i>lwn.net</i>. September 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lwn.net&rft.atitle=BPF+in+GCC&rft.date=2020-09&rft_id=https%3A%2F%2Flwn.net%2FArticles%2F831402%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-44"><span class="mw-cite-backlink"><b><a href="#cite_ref-44">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://elixir.bootlin.com/linux/v5.15.86/source/include/uapi/linux/bpf.h#L878">"bpf.h - include/uapi/linux/bpf.h - Linux source code v5.15.86 - Bootlin"</a>. <i>elixir.bootlin.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-08-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=elixir.bootlin.com&rft.atitle=bpf.h+-+include%2Fuapi%2Flinux%2Fbpf.h+-+Linux+source+code+v5.15.86+-+Bootlin&rft_id=https%3A%2F%2Felixir.bootlin.com%2Flinux%2Fv5.15.86%2Fsource%2Finclude%2Fuapi%2Flinux%2Fbpf.h%23L878&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:0-45"><span class="mw-cite-backlink">^ <a href="#cite_ref-:0_45-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:0_45-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:0_45-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:0_45-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-:0_45-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFRice2023" class="citation book cs1">Rice, Liz (2023). <a rel="nofollow" class="external text" href="https://www.worldcat.org/title/on1353981026"><i>Learning eBPF: programming the Linux Kernel for enhanced observability, networking, and security</i></a> (First ed.). Sebastopol, CA: O'Reilly Media. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1-0981-3512-6" title="Special:BookSources/978-1-0981-3512-6"><bdi>978-1-0981-3512-6</bdi></a>. <a href="/wiki/OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/1353981026">1353981026</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Learning+eBPF%3A+programming+the+Linux+Kernel+for+enhanced+observability%2C+networking%2C+and+security&rft.place=Sebastopol%2C+CA&rft.edition=First&rft.pub=O%27Reilly+Media&rft.date=2023&rft_id=info%3Aoclcnum%2Fon1353981026&rft.isbn=978-1-0981-3512-6&rft.aulast=Rice&rft.aufirst=Liz&rft_id=https%3A%2F%2Fwww.worldcat.org%2Ftitle%2Fon1353981026&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-bpf-architecture-cilium-46"><span class="mw-cite-backlink">^ <a href="#cite_ref-bpf-architecture-cilium_46-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-bpf-architecture-cilium_46-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-bpf-architecture-cilium_46-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.cilium.io/en/stable/bpf/architecture/">"BPF Architecture — Cilium 1.16.0 documentation"</a>. <i>docs.cilium.io</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-08-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.cilium.io&rft.atitle=BPF+Architecture+%E2%80%94+Cilium+1.16.0+documentation&rft_id=https%3A%2F%2Fdocs.cilium.io%2Fen%2Fstable%2Fbpf%2Farchitecture%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:10-47"><span class="mw-cite-backlink">^ <a href="#cite_ref-:10_47-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:10_47-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://ebpf-docs.dylanreimerink.nl/linux/concepts/tail-calls/">"Tail calls - eBPF Docs"</a>. <i>ebpf-docs.dylanreimerink.nl</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-08-04</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=ebpf-docs.dylanreimerink.nl&rft.atitle=Tail+calls+-+eBPF+Docs&rft_id=https%3A%2F%2Febpf-docs.dylanreimerink.nl%2Flinux%2Fconcepts%2Ftail-calls%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-48"><span class="mw-cite-backlink"><b><a href="#cite_ref-48">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://ebpf-docs.dylanreimerink.nl/concepts/core/">"BPF CO-RE - eBPF Docs"</a>. <i>ebpf-docs.dylanreimerink.nl</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-08-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=ebpf-docs.dylanreimerink.nl&rft.atitle=BPF+CO-RE+-+eBPF+Docs&rft_id=https%3A%2F%2Febpf-docs.dylanreimerink.nl%2Fconcepts%2Fcore%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:11-49"><span class="mw-cite-backlink"><b><a href="#cite_ref-:11_49-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBrendan_Gregg2019" class="citation book cs1"><a href="/wiki/Brendan_Gregg" title="Brendan Gregg">Brendan Gregg</a> (December 2019). <i>BPF Performance Tools</i>. Addison-Wesley. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-0136554820" title="Special:BookSources/978-0136554820"><bdi>978-0136554820</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=BPF+Performance+Tools&rft.pub=Addison-Wesley&rft.date=2019-12&rft.isbn=978-0136554820&rft.au=Brendan+Gregg&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:26-50"><span class="mw-cite-backlink"><b><a href="#cite_ref-:26_50-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cilium.io/blog/2020/10/29/ebpf-summit-day-2">"eBPF Summit Day Two"</a>. <i>cilium.io</i>. October 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=cilium.io&rft.atitle=eBPF+Summit+Day+Two&rft.date=2020-10&rft_id=https%3A%2F%2Fcilium.io%2Fblog%2F2020%2F10%2F29%2Febpf-summit-day-2&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:27-51"><span class="mw-cite-backlink">^ <a href="#cite_ref-:27_51-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:27_51-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://ebpf.io/what-is-ebpf#what-is-the-bee-named">"What is the bee named?"</a>. <i>ebpf.io</i><span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=ebpf.io&rft.atitle=What+is+the+bee+named%3F&rft_id=https%3A%2F%2Febpf.io%2Fwhat-is-ebpf%23what-is-the-bee-named&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:291-52"><span class="mw-cite-backlink"><b><a href="#cite_ref-:291_52-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.brendangregg.com/blog/2015-05-15/ebpf-one-small-step.html">"eBPF: One Small Step"</a>. <i>Brendan Gregg's Blog</i>. May 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">1 July</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Brendan+Gregg%27s+Blog&rft.atitle=eBPF%3A+One+Small+Step&rft.date=2015-05&rft_id=https%3A%2F%2Fwww.brendangregg.com%2Fblog%2F2015-05-15%2Febpf-one-small-step.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:28-53"><span class="mw-cite-backlink"><b><a href="#cite_ref-:28_53-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://ebpf.foundation/charter/">"eBPF Foundation Charter"</a>. <i>ebpf.foundation</i>. June 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=ebpf.foundation&rft.atitle=eBPF+Foundation+Charter&rft.date=2021-06&rft_id=https%3A%2F%2Febpf.foundation%2Fcharter%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:64-54"><span class="mw-cite-backlink"><b><a href="#cite_ref-:64_54-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://ebpf.foundation/governance/">"eBPF Foundation Governance"</a>. <i>ebpf.foundation</i>. August 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=ebpf.foundation&rft.atitle=eBPF+Foundation+Governance&rft.date=2022-08&rft_id=https%3A%2F%2Febpf.foundation%2Fgovernance%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:29-55"><span class="mw-cite-backlink"><b><a href="#cite_ref-:29_55-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://engineering.fb.com/2018/05/22/open-source/open-sourcing-katran-a-scalable-network-load-balancer/">"Open-sourcing Katran, a scalable network load balancer"</a>. <i>fb.com</i>. May 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=fb.com&rft.atitle=Open-sourcing+Katran%2C+a+scalable+network+load+balancer&rft.date=2018-05&rft_id=https%3A%2F%2Fengineering.fb.com%2F2018%2F05%2F22%2Fopen-source%2Fopen-sourcing-katran-a-scalable-network-load-balancer%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:30-56"><span class="mw-cite-backlink"><b><a href="#cite_ref-:30_56-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=ZYBXZFKPS28">"BPF at Facebook"</a>. <i>youtube.com</i>. December 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=youtube.com&rft.atitle=BPF+at+Facebook&rft.date=2019-12&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DZYBXZFKPS28&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:31-57"><span class="mw-cite-backlink"><b><a href="#cite_ref-:31_57-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lpc.events/event/11/contributions/950/">"From XDP to socket"</a>. <i>lpc.events</i>. September 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lpc.events&rft.atitle=From+XDP+to+socket&rft.date=2021-09&rft_id=https%3A%2F%2Flpc.events%2Fevent%2F11%2Fcontributions%2F950%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:34-58"><span class="mw-cite-backlink"><b><a href="#cite_ref-:34_58-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=OBFYMBHrstI">"eCHO episode 29: BPF LSM with KP Singh"</a>. <i>youtube.com</i>. November 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=youtube.com&rft.atitle=eCHO+episode+29%3A+BPF+LSM+with+KP+Singh&rft.date=2021-11&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DOBFYMBHrstI&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:35-59"><span class="mw-cite-backlink"><b><a href="#cite_ref-:35_59-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=URm_q9ylxBk">"BPF security auditing at Google - Brendan Jackman/KP Singh"</a>. <i>youtube.com</i>. November 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=youtube.com&rft.atitle=BPF+security+auditing+at+Google+-+Brendan+Jackman%2FKP+Singh&rft.date=2021-11&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DURm_q9ylxBk&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:36-60"><span class="mw-cite-backlink"><b><a href="#cite_ref-:36_60-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://legacy.netdevconf.info/0x14/session.html?talk-replacing-HTB-with-EDT-and-BPF">"Replacing HTB with EDT and BPF"</a>. <i>netdevconf.info</i>. July 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=netdevconf.info&rft.atitle=Replacing+HTB+with+EDT+and+BPF&rft.date=2020-07&rft_id=https%3A%2F%2Flegacy.netdevconf.info%2F0x14%2Fsession.html%3Ftalk-replacing-HTB-with-EDT-and-BPF&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:37-61"><span class="mw-cite-backlink"><b><a href="#cite_ref-:37_61-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.cloudflare.com/cloudflare-architecture-and-how-bpf-eats-the-world/">"Cloudflare architecture and how BPF eats the world"</a>. <i>blog.cloudflare.com</i>. May 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=blog.cloudflare.com&rft.atitle=Cloudflare+architecture+and+how+BPF+eats+the+world&rft.date=2019-05&rft_id=https%3A%2F%2Fblog.cloudflare.com%2Fcloudflare-architecture-and-how-bpf-eats-the-world%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:38-62"><span class="mw-cite-backlink"><b><a href="#cite_ref-:38_62-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.cloudflare.com/its-crowded-in-here/">"It's crowded in here!"</a>. <i>blog.cloudflare.com</i>. October 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=blog.cloudflare.com&rft.atitle=It%27s+crowded+in+here%21&rft.date=2019-10&rft_id=https%3A%2F%2Fblog.cloudflare.com%2Fits-crowded-in-here%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:39-63"><span class="mw-cite-backlink"><b><a href="#cite_ref-:39_63-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.cloudflare.com/tubular-fixing-the-socket-api-with-ebpf/">"Production ready eBPF, or how we fixed the BSD socket API"</a>. <i>blog.cloudflare.com</i>. February 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=blog.cloudflare.com&rft.atitle=Production+ready+eBPF%2C+or+how+we+fixed+the+BSD+socket+API&rft.date=2022-02&rft_id=https%3A%2F%2Fblog.cloudflare.com%2Ftubular-fixing-the-socket-api-with-ebpf%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:63-64"><span class="mw-cite-backlink"><b><a href="#cite_ref-:63_64-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.cloudflare.com/live-patch-security-vulnerabilities-with-ebpf-lsm/">"Live-patching security vulnerabilities inside the Linux kernel with eBPF Linux Security Module"</a>. <i>blog.cloudflare.com</i>. June 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=blog.cloudflare.com&rft.atitle=Live-patching+security+vulnerabilities+inside+the+Linux+kernel+with+eBPF+Linux+Security+Module&rft.date=2022-06&rft_id=https%3A%2F%2Fblog.cloudflare.com%2Flive-patch-security-vulnerabilities-with-ebpf-lsm%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:88-65"><span class="mw-cite-backlink"><b><a href="#cite_ref-:88_65-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.cloudflare.com/unimog-cloudflares-edge-load-balancer/">"Unimog - Cloudflare's edge load balancer"</a>. <i>blog.cloudflare.com</i>. September 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=blog.cloudflare.com&rft.atitle=Unimog+-+Cloudflare%27s+edge+load+balancer&rft.date=2020-09&rft_id=https%3A%2F%2Fblog.cloudflare.com%2Funimog-cloudflares-edge-load-balancer%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:40-66"><span class="mw-cite-backlink"><b><a href="#cite_ref-:40_66-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://netflixtechblog.com/how-netflix-uses-ebpf-flow-logs-at-scale-for-network-insight-e3ea997dca96">"How Netflix uses eBPF flow logs at scale for network insight"</a>. <i>netflixtechblog.com</i>. June 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=netflixtechblog.com&rft.atitle=How+Netflix+uses+eBPF+flow+logs+at+scale+for+network+insight&rft.date=2021-06&rft_id=https%3A%2F%2Fnetflixtechblog.com%2Fhow-netflix-uses-ebpf-flow-logs-at-scale-for-network-insight-e3ea997dca96&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:41-67"><span class="mw-cite-backlink"><b><a href="#cite_ref-:41_67-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://netflixtechblog.com/extending-vector-with-ebpf-to-inspect-host-and-container-performance-5da3af4c584b">"Extending Vector with eBPF to inspect host and container performance"</a>. <i>netflixtechblog.com</i>. February 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=netflixtechblog.com&rft.atitle=Extending+Vector+with+eBPF+to+inspect+host+and+container+performance&rft.date=2019-02&rft_id=https%3A%2F%2Fnetflixtechblog.com%2Fextending-vector-with-ebpf-to-inspect-host-and-container-performance-5da3af4c584b&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:42-68"><span class="mw-cite-backlink"><b><a href="#cite_ref-:42_68-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://dropbox.tech/infrastructure/dropbox-traffic-infrastructure-edge-network">"Dropbox traffic infrastructure: Edge network"</a>. <i>dropbox.tech</i>. October 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=dropbox.tech&rft.atitle=Dropbox+traffic+infrastructure%3A+Edge+network&rft.date=2018-10&rft_id=https%3A%2F%2Fdropbox.tech%2Finfrastructure%2Fdropbox-traffic-infrastructure-edge-network&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:43-69"><span class="mw-cite-backlink"><b><a href="#cite_ref-:43_69-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://source.android.com/docs/core/datausage/ebpf-traffic-monitor">"eBPF Traffic Monitoring"</a>. <i>source.android.com</i>. August 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=source.android.com&rft.atitle=eBPF+Traffic+Monitoring&rft.date=2022-08&rft_id=https%3A%2F%2Fsource.android.com%2Fdocs%2Fcore%2Fdatausage%2Febpf-traffic-monitor&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:44-70"><span class="mw-cite-backlink"><b><a href="#cite_ref-:44_70-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://source.android.com/docs/core/architecture/kernel/bpf">"Extending the Kernel with eBPF"</a>. <i>source.android.com</i>. August 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=source.android.com&rft.atitle=Extending+the+Kernel+with+eBPF&rft.date=2022-08&rft_id=https%3A%2F%2Fsource.android.com%2Fdocs%2Fcore%2Farchitecture%2Fkernel%2Fbpf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:45-71"><span class="mw-cite-backlink"><b><a href="#cite_ref-:45_71-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lore.kernel.org/bpf/20220407084727.10241-1-lina.wang@mediatek.com/">"NAT46 translation with BPF"</a>. <i>lore.kernel.org</i>. April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=lore.kernel.org&rft.atitle=NAT46+translation+with+BPF&rft.date=2022-04&rft_id=https%3A%2F%2Flore.kernel.org%2Fbpf%2F20220407084727.10241-1-lina.wang%40mediatek.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:Samsung-72"><span class="mw-cite-backlink"><b><a href="#cite_ref-:Samsung_72-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=unnVlwyevmU">"BPF for Android: How we leverage BPF for our networking solutions - Madhan Raj Kanagarathinam"</a>. <i>www.youtube.com</i>. February 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">19 February</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=www.youtube.com&rft.atitle=BPF+for+Android%3A+How+we+leverage+BPF+for+our+networking+solutions+-+Madhan+Raj+Kanagarathinam&rft.date=2024-02&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DunnVlwyevmU&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-73"><span class="mw-cite-backlink"><b><a href="#cite_ref-73">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=-C86fBMcp5Q"><i>Software L4 Load Balancing for Kubernetes Services at Yahoo! – Karthikeyan Thangaraj, Verizon Media</i></a>, 19 August 2021<span class="reference-accessdate">, retrieved <span class="nowrap">2024-02-03</span></span></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Software+L4+Load+Balancing+for+Kubernetes+Services+at+Yahoo%21+%E2%80%93+Karthikeyan+Thangaraj%2C+Verizon+Media&rft.date=2021-08-19&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D-C86fBMcp5Q&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-74"><span class="mw-cite-backlink"><b><a href="#cite_ref-74">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.linkedin.com/blog/engineering/infrastructure/skyfall-ebpf-agent-for-infrastructure-observability">"Skyfall: eBPF agent for infrastructure observability"</a>. <i>www.linkedin.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-02-03</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=www.linkedin.com&rft.atitle=Skyfall%3A+eBPF+agent+for+infrastructure+observability&rft_id=https%3A%2F%2Fwww.linkedin.com%2Fblog%2Fengineering%2Finfrastructure%2Fskyfall-ebpf-agent-for-infrastructure-observability&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:46-75"><span class="mw-cite-backlink"><b><a href="#cite_ref-:46_75-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.alibabacloud.com/blog/how-does-alibaba-cloud-build-high-performance-cloud-native-pod-networks-in-production-environments_596590">"How Does Alibaba Cloud Build High-Performance Cloud-Native Pod Networks in Production Environments?"</a>. <i>alibabacloud.com</i>. September 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=alibabacloud.com&rft.atitle=How+Does+Alibaba+Cloud+Build+High-Performance+Cloud-Native+Pod+Networks+in+Production+Environments%3F&rft.date=2020-09&rft_id=https%3A%2F%2Fwww.alibabacloud.com%2Fblog%2Fhow-does-alibaba-cloud-build-high-performance-cloud-native-pod-networks-in-production-environments_596590&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:47-76"><span class="mw-cite-backlink"><b><a href="#cite_ref-:47_76-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://datadogon.datadoghq.com/episodes/datadog-on-ebpf/">"Datadog on eBPF"</a>. <i>datadogon.datadoghq.com</i>. February 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=datadogon.datadoghq.com&rft.atitle=Datadog+on+eBPF&rft.date=2021-02&rft_id=https%3A%2F%2Fdatadogon.datadoghq.com%2Fepisodes%2Fdatadog-on-ebpf%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:48-77"><span class="mw-cite-backlink"><b><a href="#cite_ref-:48_77-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.sstic.org/media/SSTIC2021/SSTIC-actes/runtime_security_with_ebpf/SSTIC2021-Article-runtime_security_with_ebpf-fournier_afchain_baubeau.pdf">"Runtime Security Monitoring with eBPF"</a> <span class="cs1-format">(PDF)</span>. <i>sstic.org</i>. February 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=sstic.org&rft.atitle=Runtime+Security+Monitoring+with+eBPF&rft.date=2021-02&rft_id=https%3A%2F%2Fwww.sstic.org%2Fmedia%2FSSTIC2021%2FSSTIC-actes%2Fruntime_security_with_ebpf%2FSSTIC2021-Article-runtime_security_with_ebpf-fournier_afchain_baubeau.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:49-78"><span class="mw-cite-backlink"><b><a href="#cite_ref-:49_78-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=6mTVuZUHLBg">"Our eBPF Journey at Datadog - Laurent Bernaille & Tabitha Sable, Datadog"</a>. <i>youtube.com</i>. November 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=youtube.com&rft.atitle=Our+eBPF+Journey+at+Datadog+-+Laurent+Bernaille+%26+Tabitha+Sable%2C+Datadog&rft.date=2020-11&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D6mTVuZUHLBg&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:50-79"><span class="mw-cite-backlink"><b><a href="#cite_ref-:50_79-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cilium.io/blog/2020/02/05/how-trip-com-uses-cilium/">"User Story - How Trip.com uses Cilium"</a>. <i>cilium.io</i>. February 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=cilium.io&rft.atitle=User+Story+-+How+Trip.com+uses+Cilium&rft.date=2020-02&rft_id=https%3A%2F%2Fcilium.io%2Fblog%2F2020%2F02%2F05%2Fhow-trip-com-uses-cilium%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:51-80"><span class="mw-cite-backlink"><b><a href="#cite_ref-:51_80-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://arthurchiao.art/blog/trip-stepping-into-cloud-native-networking-era/">"Trip.com: Stepping into Cloud Native Networking Era with Cilium+BGP"</a>. <i>arthurchiao.art</i>. November 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=arthurchiao.art&rft.atitle=Trip.com%3A+Stepping+into+Cloud+Native+Networking+Era+with+Cilium%2BBGP&rft.date=2020-11&rft_id=https%3A%2F%2Farthurchiao.art%2Fblog%2Ftrip-stepping-into-cloud-native-networking-era%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-81"><span class="mw-cite-backlink"><b><a href="#cite_ref-81">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=6pVci31Mb6Q"><i>Keynote: Open Source Intrusion Detection for Containers at Shopify - Shane Lawrence & Kris Nóva</i></a>, 4 September 2020<span class="reference-accessdate">, retrieved <span class="nowrap">2024-02-09</span></span></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Keynote%3A+Open+Source+Intrusion+Detection+for+Containers+at+Shopify+-+Shane+Lawrence+%26+Kris+N%C3%B3va&rft.date=2020-09-04&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D6pVci31Mb6Q&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-82"><span class="mw-cite-backlink"><b><a href="#cite_ref-82">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFRogers2023" class="citation news cs1">Rogers, Patrick (2023-08-15). <a rel="nofollow" class="external text" href="https://doordash.engineering/2023/08/15/bpfagent-ebpf-for-monitoring-at-doordash/">"BPFAgent: eBPF for Monitoring at DoorDash - DoorDash Engineering Blog"</a>. <i>DoorDash Engineering Blog</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-02-09</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=DoorDash+Engineering+Blog&rft.atitle=BPFAgent%3A+eBPF+for+Monitoring+at+DoorDash+-+DoorDash+Engineering+Blog&rft.date=2023-08-15&rft.aulast=Rogers&rft.aufirst=Patrick&rft_id=https%3A%2F%2Fdoordash.engineering%2F2023%2F08%2F15%2Fbpfagent-ebpf-for-monitoring-at-doordash%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:52-83"><span class="mw-cite-backlink"><b><a href="#cite_ref-:52_83-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cloudblogs.microsoft.com/opensource/2021/05/10/making-ebpf-work-on-windows/">"Making eBPF work on Windows"</a>. <i>cloudblogs.microsoft.com</i>. May 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=cloudblogs.microsoft.com&rft.atitle=Making+eBPF+work+on+Windows&rft.date=2021-05&rft_id=https%3A%2F%2Fcloudblogs.microsoft.com%2Fopensource%2F2021%2F05%2F10%2Fmaking-ebpf-work-on-windows%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:53-84"><span class="mw-cite-backlink"><b><a href="#cite_ref-:53_84-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cloudblogs.microsoft.com/opensource/2022/02/22/getting-linux-based-ebpf-programs-to-run-with-ebpf-for-windows/">"Getting Linux based eBPF programs to run with eBPF for Windows"</a>. <i>cloudblogs.microsoft.com</i>. February 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=cloudblogs.microsoft.com&rft.atitle=Getting+Linux+based+eBPF+programs+to+run+with+eBPF+for+Windows&rft.date=2022-02&rft_id=https%3A%2F%2Fcloudblogs.microsoft.com%2Fopensource%2F2022%2F02%2F22%2Fgetting-linux-based-ebpf-programs-to-run-with-ebpf-for-windows%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:54-85"><span class="mw-cite-backlink"><b><a href="#cite_ref-:54_85-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cloudblogs.microsoft.com/opensource/2021/11/29/progress-on-making-ebpf-work-on-windows/">"Progress on making eBPF work on Windows"</a>. <i>cloudblogs.microsoft.com</i>. November 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=cloudblogs.microsoft.com&rft.atitle=Progress+on+making+eBPF+work+on+Windows&rft.date=2019-11&rft_id=https%3A%2F%2Fcloudblogs.microsoft.com%2Fopensource%2F2021%2F11%2F29%2Fprogress-on-making-ebpf-work-on-windows%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:55-86"><span class="mw-cite-backlink"><b><a href="#cite_ref-:55_86-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cilium.io/blog/2022/04/12/cilium-standalone-L4LB-XDP/">"Cilium Standalone Layer 4 Load Balancer XDP"</a>. <i>cilium.io</i>. July 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=cilium.io&rft.atitle=Cilium+Standalone+Layer+4+Load+Balancer+XDP&rft.date=2022-07&rft_id=https%3A%2F%2Fcilium.io%2Fblog%2F2022%2F04%2F12%2Fcilium-standalone-L4LB-XDP%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-87"><span class="mw-cite-backlink"><b><a href="#cite_ref-87">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=gcHxfhDT-I4"><i>Rate limiting access to internal services in a virtual network – Nick Bouliane, DigitalOcean</i></a>, 19 August 2021<span class="reference-accessdate">, retrieved <span class="nowrap">2024-02-04</span></span></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Rate+limiting+access+to+internal+services+in+a+virtual+network+%E2%80%93+Nick+Bouliane%2C+DigitalOcean&rft.date=2021-08-19&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DgcHxfhDT-I4&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:56-88"><span class="mw-cite-backlink"><b><a href="#cite_ref-:56_88-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=hwOpCKBaJ-w">"Building a Secure and Maintainable PaaS - Bradley Whitfield, Capital One"</a>. <i>youtube.com</i>. November 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=youtube.com&rft.atitle=Building+a+Secure+and+Maintainable+PaaS+-+Bradley+Whitfield%2C+Capital+One&rft.date=2020-11&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DhwOpCKBaJ-w&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-89"><span class="mw-cite-backlink"><b><a href="#cite_ref-89">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=fNtG0iHYne4"><i>Why eBPF is changing the telco networking space – Daniel Bernier, Bell Canada</i></a>, 31 August 2021<span class="reference-accessdate">, retrieved <span class="nowrap">2024-02-09</span></span></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Why+eBPF+is+changing+the+telco+networking+space+%E2%80%93+Daniel+Bernier%2C+Bell+Canada&rft.date=2021-08-31&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DfNtG0iHYne4&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-90"><span class="mw-cite-backlink"><b><a href="#cite_ref-90">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://www.elastic.co/observability/universal-profiling"><i>Elastic Universal Profiling</i></a><span class="reference-accessdate">, retrieved <span class="nowrap">2024-02-26</span></span></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Elastic+Universal+Profiling&rft_id=https%3A%2F%2Fwww.elastic.co%2Fobservability%2Funiversal-profiling&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:57-91"><span class="mw-cite-backlink"><b><a href="#cite_ref-:57_91-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=ZBlJSr6XkN8">"Think eBPF for Kernel Security Monitoring - Falco at Apple- Eric Sage & Melissa Kilby, Apple"</a>. <i>youtube.com</i>. October 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=youtube.com&rft.atitle=Think+eBPF+for+Kernel+Security+Monitoring+-+Falco+at+Apple-+Eric+Sage+%26+Melissa+Kilby%2C+Apple&rft.date=2021-10&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DZBlJSr6XkN8&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:58-92"><span class="mw-cite-backlink"><b><a href="#cite_ref-:58_92-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=u-4naOMfs_w">"eBPF & Cilium at Sky – Sebastian Duff, Anthony Comtois, Jospeh [sic] Samuel, Sky"</a>. <i>youtube.com</i>. August 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=youtube.com&rft.atitle=eBPF+%26+Cilium+at+Sky+%E2%80%93+Sebastian+Duff%2C+Anthony+Comtois%2C+Jospeh+%5Bsic%5D+Samuel%2C+Sky&rft.date=2021-08&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Du-4naOMfs_w&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:59-93"><span class="mw-cite-backlink"><b><a href="#cite_ref-:59_93-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=Fu4L8ewcO70">"Running and orchestrating multiple XDP and TC programs – Brian Merrell, Walmart"</a>. <i>youtube.com</i>. August 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=youtube.com&rft.atitle=Running+and+orchestrating+multiple+XDP+and+TC+programs+%E2%80%93+Brian+Merrell%2C+Walmart&rft.date=2021-08&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DFu4L8ewcO70&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:60-94"><span class="mw-cite-backlink"><b><a href="#cite_ref-:60_94-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=thmAcyix8FM">"High Performance Load Balancing @Walmart – Kanthi Pavuluri & Karan Dalal, Walmart"</a>. <i>youtube.com</i>. August 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=youtube.com&rft.atitle=High+Performance+Load+Balancing+%40Walmart+%E2%80%93+Kanthi+Pavuluri+%26+Karan+Dalal%2C+Walmart&rft.date=2021-08&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DthmAcyix8FM&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:61-95"><span class="mw-cite-backlink"><b><a href="#cite_ref-:61_95-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=iA7T4MAqKUc">"DIGLIM eBPF: secure boot at application level with minimal changes to distros - Roberto Sassu"</a>. <i>youtube.com</i>. August 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=youtube.com&rft.atitle=DIGLIM+eBPF%3A+secure+boot+at+application+level+with+minimal+changes+to+distros+-+Roberto+Sassu&rft.date=2022-08&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DiA7T4MAqKUc&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:62-96"><span class="mw-cite-backlink"><b><a href="#cite_ref-:62_96-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=sg-F_R-ZVNc">"IKEA Private Cloud, eBPF Based Networking, Load Balancing, and Observability with... Karsten Nielsen"</a>. <i>youtube.com</i>. May 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=youtube.com&rft.atitle=IKEA+Private+Cloud%2C+eBPF+Based+Networking%2C+Load+Balancing%2C+and+Observability+with...+Karsten+Nielsen&rft.date=2022-05&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dsg-F_R-ZVNc&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-97"><span class="mw-cite-backlink"><b><a href="#cite_ref-97">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=qmrHONqsV2M"><i>Panel Discussion: Is There Actually a Byte Behind All the Buzz? eBPF in Production!</i></a>, 28 October 2022<span class="reference-accessdate">, retrieved <span class="nowrap">2024-02-09</span></span></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Panel+Discussion%3A+Is+There+Actually+a+Byte+Behind+All+the+Buzz%3F+eBPF+in+Production%21&rft.date=2022-10-28&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DqmrHONqsV2M&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-98"><span class="mw-cite-backlink"><b><a href="#cite_ref-98">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=0RDp1IPxbg0"><i>Using user-space tracing to solve DNS problems – Andrius Grabauskas, Palantir</i></a>, 19 August 2021<span class="reference-accessdate">, retrieved <span class="nowrap">2024-02-09</span></span></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Using+user-space+tracing+to+solve+DNS+problems+%E2%80%93+Andrius+Grabauskas%2C+Palantir&rft.date=2021-08-19&rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D0RDp1IPxbg0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:65-99"><span class="mw-cite-backlink"><b><a href="#cite_ref-:65_99-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://googleprojectzero.blogspot.com/2018/01/reading-privileged-memory-with-side.html">"Reading privileged memory with a side-channel"</a>. <i>googleprojectzero.blogspot.com</i>. 3 January 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=googleprojectzero.blogspot.com&rft.atitle=Reading+privileged+memory+with+a+side-channel&rft.date=2018-01-03&rft_id=https%3A%2F%2Fgoogleprojectzero.blogspot.com%2F2018%2F01%2Freading-privileged-memory-with-side.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:66-100"><span class="mw-cite-backlink"><b><a href="#cite_ref-:66_100-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://popl22.sigplan.org/details/prisc-2022-papers/11/BPF-and-Spectre-Mitigating-transient-execution-attacks">"BPF and Spectre: Mitigating transient execution attacks"</a>. <i>popl22.sigplan.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=popl22.sigplan.org&rft.atitle=BPF+and+Spectre%3A+Mitigating+transient+execution+attacks&rft_id=https%3A%2F%2Fpopl22.sigplan.org%2Fdetails%2Fprisc-2022-papers%2F11%2FBPF-and-Spectre-Mitigating-transient-execution-attacks&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> <li id="cite_note-:67-101"><span class="mw-cite-backlink"><b><a href="#cite_ref-:67_101-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8a03e56b253e9691c90bc52ca199323d71b96204">"bpf: Disallow unprivileged bpf by default"</a>. <i>kernel.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">16 August</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=kernel.org&rft.atitle=bpf%3A+Disallow+unprivileged+bpf+by+default&rft_id=https%3A%2F%2Fgit.kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git%2Fcommit%2F%3Fid%3D8a03e56b253e9691c90bc52ca199323d71b96204&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=16" title="Edit section: Further reading"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFGregg2019" class="citation book cs1"><a href="/wiki/Brendan_Gregg" title="Brendan Gregg">Gregg, Brendan</a> (December 2019). <i>BPF Performance Tools</i>. Addison-Wesley. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-0136554820" title="Special:BookSources/978-0136554820"><bdi>978-0136554820</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=BPF+Performance+Tools&rft.pub=Addison-Wesley&rft.date=2019-12&rft.isbn=978-0136554820&rft.aulast=Gregg&rft.aufirst=Brendan&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDavid_Calavera,_Lorenzo_Fontana2019" class="citation book cs1">David Calavera, Lorenzo Fontana (December 2019). <i>Linux Observability With BPF</i>. O'Reilly Media, Incorporated. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1492050209" title="Special:BookSources/978-1492050209"><bdi>978-1492050209</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Linux+Observability+With+BPF&rft.pub=O%27Reilly+Media%2C+Incorporated&rft.date=2019-12&rft.isbn=978-1492050209&rft.au=David+Calavera%2C+Lorenzo+Fontana&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFGregg2020" class="citation book cs1"><a href="/wiki/Brendan_Gregg" title="Brendan Gregg">Gregg, Brendan</a> (December 2020). <i>Systems Performance, Second edition</i>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-0136820154" title="Special:BookSources/978-0136820154"><bdi>978-0136820154</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Systems+Performance%2C+Second+edition&rft.date=2020-12&rft.isbn=978-0136820154&rft.aulast=Gregg&rft.aufirst=Brendan&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFRice2022" class="citation book cs1"><a href="/wiki/OpenUK" title="OpenUK">Rice, Liz</a> (April 2022). <i>What Is eBPF?</i>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1492097259" title="Special:BookSources/978-1492097259"><bdi>978-1492097259</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=What+Is+eBPF%3F&rft.date=2022-04&rft.isbn=978-1492097259&rft.aulast=Rice&rft.aufirst=Liz&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFRice2023" class="citation book cs1"><a href="/wiki/OpenUK" title="OpenUK">Rice, Liz</a> (April 2023). <i>Learning eBPF: Programming the Linux Kernel for Enhanced Observability, Networking, and Security</i>. O'Reilly Media. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1098135126" title="Special:BookSources/978-1098135126"><bdi>978-1098135126</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Learning+eBPF%3A+Programming+the+Linux+Kernel+for+Enhanced+Observability%2C+Networking%2C+and+Security&rft.pub=O%27Reilly+Media&rft.date=2023-04&rft.isbn=978-1098135126&rft.aulast=Rice&rft.aufirst=Liz&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFThaler2024" class="citation cs1">Thaler, Dave, ed. (October 2024). <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc9669"><i>BPF Instruction Set Architecture (ISA)</i></a>. <a href="/wiki/Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a>. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.17487%2FRFC9669">10.17487/RFC9669</a></span>. <a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc9669">9669</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-01-05</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=BPF+Instruction+Set+Architecture+%28ISA%29&rft.pub=IETF&rft.date=2024-10&rft_id=info%3Adoi%2F10.17487%2FRFC9669&rft_id=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fhtml%2Frfc9669&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEBPF" class="Z3988"></span></li></ul> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=EBPF&action=edit&section=17" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a rel="nofollow" class="external text" href="https://ebpf.io/">eBPF.io - Introduction, tutorials & eBPF community resources</a></li> <li><a rel="nofollow" class="external text" href="https://ebpf.foundation/">eBPF.foundation - Linux Foundation's eBPF Foundation site</a></li> <li><a rel="nofollow" class="external text" href="https://github.com/eunomia-bpf/bpf-developer-tutorial">eBPF Developer Tutorial: Learning eBPF Step by Step with Examples</a></li> <li><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=Wb_vD3XZYOA">eBPF documentary - Documentary on the beginnings of eBPF</a></li></ul> <!-- NewPP limit report Parsed by mw‐api‐int.codfw.main‐849f99967d‐ll7zx Cached time: 20241125035730 Cache expiry: 504151 Reduced expiry: true Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.864 seconds Real time usage: 0.958 seconds Preprocessor visited node count: 5438/1000000 Post‐expand include size: 164355/2097152 bytes Template argument size: 2633/2097152 bytes Highest expansion depth: 14/100 Expensive parser function count: 3/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 353648/5000000 bytes Lua time usage: 0.539/10.000 seconds Lua memory usage: 5642985/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 840.957 1 -total 69.50% 584.507 1 Template:Reflist 53.90% 453.263 90 Template:Cite_web 8.55% 71.935 1 Template:Short_description 8.38% 70.504 1 Template:Infobox_software 7.84% 65.944 1 Template:Infobox 5.32% 44.705 2 Template:Pagetype 4.37% 36.772 7 Template:Citation 4.14% 34.849 7 Template:Cite_book 3.48% 29.254 1 Template:Cite_IETF --> <!-- Saved in parser cache with key enwiki:pcache:idhash:71706441-0!canonical and timestamp 20241125035730 and revision id 1259435749. Rendering was triggered because: api-parse --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=EBPF&oldid=1259435749">https://en.wikipedia.org/w/index.php?title=EBPF&oldid=1259435749</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Free_software_programmed_in_C" title="Category:Free software programmed in C">Free software programmed in C</a></li><li><a href="/wiki/Category:Free_system_software" title="Category:Free system software">Free system software</a></li><li><a href="/wiki/Category:Software_using_the_GPL_license" title="Category:Software using the GPL license">Software using the GPL license</a></li><li><a href="/wiki/Category:Software_using_the_MIT_license" title="Category:Software using the MIT license">Software using the MIT license</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 25 November 2024, at 03:57<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=EBPF&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-f2r5r","wgBackendResponseTime":154,"wgPageParseReport":{"limitreport":{"cputime":"0.864","walltime":"0.958","ppvisitednodes":{"value":5438,"limit":1000000},"postexpandincludesize":{"value":164355,"limit":2097152},"templateargumentsize":{"value":2633,"limit":2097152},"expansiondepth":{"value":14,"limit":100},"expensivefunctioncount":{"value":3,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":353648,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 840.957 1 -total"," 69.50% 584.507 1 Template:Reflist"," 53.90% 453.263 90 Template:Cite_web"," 8.55% 71.935 1 Template:Short_description"," 8.38% 70.504 1 Template:Infobox_software"," 7.84% 65.944 1 Template:Infobox"," 5.32% 44.705 2 Template:Pagetype"," 4.37% 36.772 7 Template:Citation"," 4.14% 34.849 7 Template:Cite_book"," 3.48% 29.254 1 Template:Cite_IETF"]},"scribunto":{"limitreport-timeusage":{"value":"0.539","limit":"10.000"},"limitreport-memusage":{"value":5642985,"limit":52428800}},"cachereport":{"origin":"mw-api-int.codfw.main-849f99967d-ll7zx","timestamp":"20241125035730","ttl":504151,"transientcontent":true}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"EBPF","url":"https:\/\/en.wikipedia.org\/wiki\/EBPF","sameAs":"http:\/\/www.wikidata.org\/entity\/Q116197108","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q116197108","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2022-09-08T09:30:57Z","dateModified":"2024-11-25T03:57:24Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/b\/b0\/EBPF_logo.png","headline":"Sandbox technology within the Linux kernel"}</script> </body> </html>