1515#include "recvmsg6_prog.skel.h"
1616#include "sendmsg_unix_prog.skel.h"
1717#include "recvmsg_unix_prog.skel.h"
18+ #include "getsockname4_prog.skel.h"
19+ #include "getsockname6_prog.skel.h"
1820#include "getsockname_unix_prog.skel.h"
21+ #include "getpeername4_prog.skel.h"
22+ #include "getpeername6_prog.skel.h"
1923#include "getpeername_unix_prog.skel.h"
2024#include "network_helpers.h"
2125
@@ -466,7 +470,11 @@ BPF_SKEL_FUNCS(recvmsg4_prog, recvmsg4_prog);
466470BPF_SKEL_FUNCS (recvmsg6_prog , recvmsg6_prog );
467471BPF_SKEL_FUNCS (recvmsg_unix_prog , recvmsg_unix_prog );
468472BPF_SKEL_FUNCS (getsockname_unix_prog , getsockname_unix_prog );
473+ BPF_SKEL_FUNCS (getsockname4_prog , getsockname_v4_prog );
474+ BPF_SKEL_FUNCS (getsockname6_prog , getsockname_v6_prog );
469475BPF_SKEL_FUNCS (getpeername_unix_prog , getpeername_unix_prog );
476+ BPF_SKEL_FUNCS (getpeername4_prog , getpeername_v4_prog );
477+ BPF_SKEL_FUNCS (getpeername6_prog , getpeername_v6_prog );
470478
471479static struct sock_addr_test tests [] = {
472480 /* bind - system calls */
@@ -1688,7 +1696,71 @@ static struct sock_addr_test tests[] = {
16881696 /* getsockname - system calls */
16891697 {
16901698 SOCK_ADDR_TEST_GETSOCKNAME ,
1691- "getsockname_unix" ,
1699+ "getsockname4: getsockname (stream)" ,
1700+ getsockname_v4_prog_load ,
1701+ getsockname_v4_prog_destroy ,
1702+ BPF_CGROUP_INET4_GETSOCKNAME ,
1703+ & user_ops ,
1704+ AF_INET ,
1705+ SOCK_STREAM ,
1706+ SERV4_REWRITE_IP ,
1707+ SERV4_REWRITE_PORT ,
1708+ SERV4_IP ,
1709+ SERV4_PORT ,
1710+ NULL ,
1711+ SUCCESS ,
1712+ },
1713+ {
1714+ SOCK_ADDR_TEST_GETSOCKNAME ,
1715+ "getsockname4: getsockname (dgram)" ,
1716+ getsockname_v4_prog_load ,
1717+ getsockname_v4_prog_destroy ,
1718+ BPF_CGROUP_INET4_GETSOCKNAME ,
1719+ & user_ops ,
1720+ AF_INET ,
1721+ SOCK_DGRAM ,
1722+ SERV4_REWRITE_IP ,
1723+ SERV4_REWRITE_PORT ,
1724+ SERV4_IP ,
1725+ SERV4_PORT ,
1726+ NULL ,
1727+ SUCCESS ,
1728+ },
1729+ {
1730+ SOCK_ADDR_TEST_GETSOCKNAME ,
1731+ "getsockname6: getsockname (stream)" ,
1732+ getsockname_v6_prog_load ,
1733+ getsockname_v6_prog_destroy ,
1734+ BPF_CGROUP_INET6_GETSOCKNAME ,
1735+ & user_ops ,
1736+ AF_INET6 ,
1737+ SOCK_STREAM ,
1738+ SERV6_REWRITE_IP ,
1739+ SERV6_REWRITE_PORT ,
1740+ SERV6_IP ,
1741+ SERV6_PORT ,
1742+ NULL ,
1743+ SUCCESS ,
1744+ },
1745+ {
1746+ SOCK_ADDR_TEST_GETSOCKNAME ,
1747+ "getsockname6: getsockname (dgram)" ,
1748+ getsockname_v6_prog_load ,
1749+ getsockname_v6_prog_destroy ,
1750+ BPF_CGROUP_INET6_GETSOCKNAME ,
1751+ & user_ops ,
1752+ AF_INET6 ,
1753+ SOCK_DGRAM ,
1754+ SERV6_REWRITE_IP ,
1755+ SERV6_REWRITE_PORT ,
1756+ SERV6_IP ,
1757+ SERV6_PORT ,
1758+ NULL ,
1759+ SUCCESS ,
1760+ },
1761+ {
1762+ SOCK_ADDR_TEST_GETSOCKNAME ,
1763+ "getsockname_unix: getsockname" ,
16921764 getsockname_unix_prog_load ,
16931765 getsockname_unix_prog_destroy ,
16941766 BPF_CGROUP_UNIX_GETSOCKNAME ,
@@ -1703,10 +1775,156 @@ static struct sock_addr_test tests[] = {
17031775 SUCCESS ,
17041776 },
17051777
1778+ /* getsockname - kernel calls */
1779+ {
1780+ SOCK_ADDR_TEST_GETSOCKNAME ,
1781+ "getsockname4: kernel_getsockname (stream)" ,
1782+ getsockname_v4_prog_load ,
1783+ getsockname_v4_prog_destroy ,
1784+ BPF_CGROUP_INET4_GETSOCKNAME ,
1785+ & kern_ops_kernel_sendmsg ,
1786+ AF_INET ,
1787+ SOCK_STREAM ,
1788+ SERV4_REWRITE_IP ,
1789+ SERV4_REWRITE_PORT ,
1790+ SERV4_IP ,
1791+ SERV4_PORT ,
1792+ NULL ,
1793+ SUCCESS ,
1794+ },
1795+ {
1796+ SOCK_ADDR_TEST_GETSOCKNAME ,
1797+ "getsockname4: kernel_getsockname (dgram)" ,
1798+ getsockname_v4_prog_load ,
1799+ getsockname_v4_prog_destroy ,
1800+ BPF_CGROUP_INET4_GETSOCKNAME ,
1801+ & kern_ops_kernel_sendmsg ,
1802+ AF_INET ,
1803+ SOCK_DGRAM ,
1804+ SERV4_REWRITE_IP ,
1805+ SERV4_REWRITE_PORT ,
1806+ SERV4_IP ,
1807+ SERV4_PORT ,
1808+ NULL ,
1809+ SUCCESS ,
1810+ },
1811+ {
1812+ SOCK_ADDR_TEST_GETSOCKNAME ,
1813+ "getsockname6: kernel_getsockname (stream)" ,
1814+ getsockname_v6_prog_load ,
1815+ getsockname_v6_prog_destroy ,
1816+ BPF_CGROUP_INET6_GETSOCKNAME ,
1817+ & kern_ops_kernel_sendmsg ,
1818+ AF_INET6 ,
1819+ SOCK_STREAM ,
1820+ SERV6_REWRITE_IP ,
1821+ SERV6_REWRITE_PORT ,
1822+ SERV6_IP ,
1823+ SERV6_PORT ,
1824+ NULL ,
1825+ SUCCESS ,
1826+ },
1827+ {
1828+ SOCK_ADDR_TEST_GETSOCKNAME ,
1829+ "getsockname6: kernel_getsockname (dgram)" ,
1830+ getsockname_v6_prog_load ,
1831+ getsockname_v6_prog_destroy ,
1832+ BPF_CGROUP_INET6_GETSOCKNAME ,
1833+ & kern_ops_kernel_sendmsg ,
1834+ AF_INET6 ,
1835+ SOCK_DGRAM ,
1836+ SERV6_REWRITE_IP ,
1837+ SERV6_REWRITE_PORT ,
1838+ SERV6_IP ,
1839+ SERV6_PORT ,
1840+ NULL ,
1841+ SUCCESS ,
1842+ },
1843+ {
1844+ SOCK_ADDR_TEST_GETSOCKNAME ,
1845+ "getsockname_unix: kernel_getsockname" ,
1846+ getsockname_unix_prog_load ,
1847+ getsockname_unix_prog_destroy ,
1848+ BPF_CGROUP_UNIX_GETSOCKNAME ,
1849+ & kern_ops_kernel_sendmsg ,
1850+ AF_UNIX ,
1851+ SOCK_STREAM ,
1852+ SERVUN_ADDRESS ,
1853+ 0 ,
1854+ SERVUN_REWRITE_ADDRESS ,
1855+ 0 ,
1856+ NULL ,
1857+ SUCCESS ,
1858+ },
1859+
17061860 /* getpeername - system calls */
17071861 {
17081862 SOCK_ADDR_TEST_GETPEERNAME ,
1709- "getpeername_unix" ,
1863+ "getpeername4: getpeername (stream)" ,
1864+ getpeername_v4_prog_load ,
1865+ getpeername_v4_prog_destroy ,
1866+ BPF_CGROUP_INET4_GETPEERNAME ,
1867+ & user_ops ,
1868+ AF_INET ,
1869+ SOCK_STREAM ,
1870+ SERV4_REWRITE_IP ,
1871+ SERV4_REWRITE_PORT ,
1872+ SERV4_IP ,
1873+ SERV4_PORT ,
1874+ NULL ,
1875+ SUCCESS ,
1876+ },
1877+ {
1878+ SOCK_ADDR_TEST_GETPEERNAME ,
1879+ "getpeername4: getpeername (dgram)" ,
1880+ getpeername_v4_prog_load ,
1881+ getpeername_v4_prog_destroy ,
1882+ BPF_CGROUP_INET4_GETPEERNAME ,
1883+ & user_ops ,
1884+ AF_INET ,
1885+ SOCK_DGRAM ,
1886+ SERV4_REWRITE_IP ,
1887+ SERV4_REWRITE_PORT ,
1888+ SERV4_IP ,
1889+ SERV4_PORT ,
1890+ NULL ,
1891+ SUCCESS ,
1892+ },
1893+ {
1894+ SOCK_ADDR_TEST_GETPEERNAME ,
1895+ "getpeername6: getpeername (stream)" ,
1896+ getpeername_v6_prog_load ,
1897+ getpeername_v6_prog_destroy ,
1898+ BPF_CGROUP_INET6_GETPEERNAME ,
1899+ & user_ops ,
1900+ AF_INET6 ,
1901+ SOCK_STREAM ,
1902+ SERV6_REWRITE_IP ,
1903+ SERV6_REWRITE_PORT ,
1904+ SERV6_IP ,
1905+ SERV6_PORT ,
1906+ NULL ,
1907+ SUCCESS ,
1908+ },
1909+ {
1910+ SOCK_ADDR_TEST_GETPEERNAME ,
1911+ "getpeername6: getpeername (dgram)" ,
1912+ getpeername_v6_prog_load ,
1913+ getpeername_v6_prog_destroy ,
1914+ BPF_CGROUP_INET6_GETPEERNAME ,
1915+ & user_ops ,
1916+ AF_INET6 ,
1917+ SOCK_DGRAM ,
1918+ SERV6_REWRITE_IP ,
1919+ SERV6_REWRITE_PORT ,
1920+ SERV6_IP ,
1921+ SERV6_PORT ,
1922+ NULL ,
1923+ SUCCESS ,
1924+ },
1925+ {
1926+ SOCK_ADDR_TEST_GETPEERNAME ,
1927+ "getpeername_unix: getpeername" ,
17101928 getpeername_unix_prog_load ,
17111929 getpeername_unix_prog_destroy ,
17121930 BPF_CGROUP_UNIX_GETPEERNAME ,
@@ -1720,6 +1938,88 @@ static struct sock_addr_test tests[] = {
17201938 NULL ,
17211939 SUCCESS ,
17221940 },
1941+
1942+ /* getpeername - kernel calls */
1943+ {
1944+ SOCK_ADDR_TEST_GETPEERNAME ,
1945+ "getpeername4: kernel_getpeername (stream)" ,
1946+ getpeername_v4_prog_load ,
1947+ getpeername_v4_prog_destroy ,
1948+ BPF_CGROUP_INET4_GETPEERNAME ,
1949+ & kern_ops_kernel_sendmsg ,
1950+ AF_INET ,
1951+ SOCK_STREAM ,
1952+ SERV4_REWRITE_IP ,
1953+ SERV4_REWRITE_PORT ,
1954+ SERV4_IP ,
1955+ SERV4_PORT ,
1956+ NULL ,
1957+ SUCCESS ,
1958+ },
1959+ {
1960+ SOCK_ADDR_TEST_GETPEERNAME ,
1961+ "getpeername4: kernel_getpeername (dgram)" ,
1962+ getpeername_v4_prog_load ,
1963+ getpeername_v4_prog_destroy ,
1964+ BPF_CGROUP_INET4_GETPEERNAME ,
1965+ & kern_ops_kernel_sendmsg ,
1966+ AF_INET ,
1967+ SOCK_DGRAM ,
1968+ SERV4_REWRITE_IP ,
1969+ SERV4_REWRITE_PORT ,
1970+ SERV4_IP ,
1971+ SERV4_PORT ,
1972+ NULL ,
1973+ SUCCESS ,
1974+ },
1975+ {
1976+ SOCK_ADDR_TEST_GETPEERNAME ,
1977+ "getpeername6: kernel_getpeername (stream)" ,
1978+ getpeername_v6_prog_load ,
1979+ getpeername_v6_prog_destroy ,
1980+ BPF_CGROUP_INET6_GETPEERNAME ,
1981+ & kern_ops_kernel_sendmsg ,
1982+ AF_INET6 ,
1983+ SOCK_STREAM ,
1984+ SERV6_REWRITE_IP ,
1985+ SERV6_REWRITE_PORT ,
1986+ SERV6_IP ,
1987+ SERV6_PORT ,
1988+ NULL ,
1989+ SUCCESS ,
1990+ },
1991+ {
1992+ SOCK_ADDR_TEST_GETPEERNAME ,
1993+ "getpeername6: kernel_getpeername (dgram)" ,
1994+ getpeername_v6_prog_load ,
1995+ getpeername_v6_prog_destroy ,
1996+ BPF_CGROUP_INET6_GETPEERNAME ,
1997+ & kern_ops_kernel_sendmsg ,
1998+ AF_INET6 ,
1999+ SOCK_DGRAM ,
2000+ SERV6_REWRITE_IP ,
2001+ SERV6_REWRITE_PORT ,
2002+ SERV6_IP ,
2003+ SERV6_PORT ,
2004+ NULL ,
2005+ SUCCESS ,
2006+ },
2007+ {
2008+ SOCK_ADDR_TEST_GETPEERNAME ,
2009+ "getpeername_unix: kernel_getpeername" ,
2010+ getpeername_unix_prog_load ,
2011+ getpeername_unix_prog_destroy ,
2012+ BPF_CGROUP_UNIX_GETPEERNAME ,
2013+ & kern_ops_kernel_sendmsg ,
2014+ AF_UNIX ,
2015+ SOCK_STREAM ,
2016+ SERVUN_ADDRESS ,
2017+ 0 ,
2018+ SERVUN_REWRITE_ADDRESS ,
2019+ 0 ,
2020+ NULL ,
2021+ SUCCESS ,
2022+ },
17232023};
17242024
17252025typedef int (* info_fn )(int , struct sockaddr * , socklen_t * );
0 commit comments