getters.rs 38 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094
  1. use super::bindings::*;
  2. impl<Storage> __BindgenBitfieldUnit<Storage> {}
  3. impl __sk_buff {
  4. pub fn len(&self) -> Option<__u32> {
  5. unsafe { crate::bpf_probe_read(&self.len) }.ok()
  6. }
  7. pub fn pkt_type(&self) -> Option<__u32> {
  8. unsafe { crate::bpf_probe_read(&self.pkt_type) }.ok()
  9. }
  10. pub fn mark(&self) -> Option<__u32> {
  11. unsafe { crate::bpf_probe_read(&self.mark) }.ok()
  12. }
  13. pub fn queue_mapping(&self) -> Option<__u32> {
  14. unsafe { crate::bpf_probe_read(&self.queue_mapping) }.ok()
  15. }
  16. pub fn protocol(&self) -> Option<__u32> {
  17. unsafe { crate::bpf_probe_read(&self.protocol) }.ok()
  18. }
  19. pub fn vlan_present(&self) -> Option<__u32> {
  20. unsafe { crate::bpf_probe_read(&self.vlan_present) }.ok()
  21. }
  22. pub fn vlan_tci(&self) -> Option<__u32> {
  23. unsafe { crate::bpf_probe_read(&self.vlan_tci) }.ok()
  24. }
  25. pub fn vlan_proto(&self) -> Option<__u32> {
  26. unsafe { crate::bpf_probe_read(&self.vlan_proto) }.ok()
  27. }
  28. pub fn priority(&self) -> Option<__u32> {
  29. unsafe { crate::bpf_probe_read(&self.priority) }.ok()
  30. }
  31. pub fn ingress_ifindex(&self) -> Option<__u32> {
  32. unsafe { crate::bpf_probe_read(&self.ingress_ifindex) }.ok()
  33. }
  34. pub fn ifindex(&self) -> Option<__u32> {
  35. unsafe { crate::bpf_probe_read(&self.ifindex) }.ok()
  36. }
  37. pub fn tc_index(&self) -> Option<__u32> {
  38. unsafe { crate::bpf_probe_read(&self.tc_index) }.ok()
  39. }
  40. pub fn cb(&self) -> Option<[__u32; 5usize]> {
  41. unsafe { crate::bpf_probe_read(&self.cb) }.ok()
  42. }
  43. pub fn hash(&self) -> Option<__u32> {
  44. unsafe { crate::bpf_probe_read(&self.hash) }.ok()
  45. }
  46. pub fn tc_classid(&self) -> Option<__u32> {
  47. unsafe { crate::bpf_probe_read(&self.tc_classid) }.ok()
  48. }
  49. pub fn data(&self) -> Option<__u32> {
  50. unsafe { crate::bpf_probe_read(&self.data) }.ok()
  51. }
  52. pub fn data_end(&self) -> Option<__u32> {
  53. unsafe { crate::bpf_probe_read(&self.data_end) }.ok()
  54. }
  55. pub fn napi_id(&self) -> Option<__u32> {
  56. unsafe { crate::bpf_probe_read(&self.napi_id) }.ok()
  57. }
  58. pub fn family(&self) -> Option<__u32> {
  59. unsafe { crate::bpf_probe_read(&self.family) }.ok()
  60. }
  61. pub fn remote_ip4(&self) -> Option<__u32> {
  62. unsafe { crate::bpf_probe_read(&self.remote_ip4) }.ok()
  63. }
  64. pub fn local_ip4(&self) -> Option<__u32> {
  65. unsafe { crate::bpf_probe_read(&self.local_ip4) }.ok()
  66. }
  67. pub fn remote_ip6(&self) -> Option<[__u32; 4usize]> {
  68. unsafe { crate::bpf_probe_read(&self.remote_ip6) }.ok()
  69. }
  70. pub fn local_ip6(&self) -> Option<[__u32; 4usize]> {
  71. unsafe { crate::bpf_probe_read(&self.local_ip6) }.ok()
  72. }
  73. pub fn remote_port(&self) -> Option<__u32> {
  74. unsafe { crate::bpf_probe_read(&self.remote_port) }.ok()
  75. }
  76. pub fn local_port(&self) -> Option<__u32> {
  77. unsafe { crate::bpf_probe_read(&self.local_port) }.ok()
  78. }
  79. pub fn data_meta(&self) -> Option<__u32> {
  80. unsafe { crate::bpf_probe_read(&self.data_meta) }.ok()
  81. }
  82. pub fn flow_keys(&self) -> Option<*mut bpf_flow_keys> {
  83. let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.flow_keys) }.ok()?;
  84. if v.is_null() {
  85. None
  86. } else {
  87. Some(v)
  88. }
  89. }
  90. pub fn tstamp(&self) -> Option<__u64> {
  91. unsafe { crate::bpf_probe_read(&self.tstamp) }.ok()
  92. }
  93. pub fn wire_len(&self) -> Option<__u32> {
  94. unsafe { crate::bpf_probe_read(&self.wire_len) }.ok()
  95. }
  96. pub fn gso_segs(&self) -> Option<__u32> {
  97. unsafe { crate::bpf_probe_read(&self.gso_segs) }.ok()
  98. }
  99. pub fn sk(&self) -> Option<*mut bpf_sock> {
  100. let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.sk) }.ok()?;
  101. if v.is_null() {
  102. None
  103. } else {
  104. Some(v)
  105. }
  106. }
  107. pub fn gso_size(&self) -> Option<__u32> {
  108. unsafe { crate::bpf_probe_read(&self.gso_size) }.ok()
  109. }
  110. pub fn hwtstamp(&self) -> Option<__u64> {
  111. unsafe { crate::bpf_probe_read(&self.hwtstamp) }.ok()
  112. }
  113. }
  114. impl __sk_buff__bindgen_ty_1 {
  115. pub fn flow_keys(&self) -> Option<*mut bpf_flow_keys> {
  116. let v = unsafe { crate::bpf_probe_read(&self.flow_keys) }.ok()?;
  117. if v.is_null() {
  118. None
  119. } else {
  120. Some(v)
  121. }
  122. }
  123. }
  124. impl __sk_buff__bindgen_ty_2 {
  125. pub fn sk(&self) -> Option<*mut bpf_sock> {
  126. let v = unsafe { crate::bpf_probe_read(&self.sk) }.ok()?;
  127. if v.is_null() {
  128. None
  129. } else {
  130. Some(v)
  131. }
  132. }
  133. }
  134. impl bpf_tunnel_key {
  135. pub fn tunnel_id(&self) -> Option<__u32> {
  136. unsafe { crate::bpf_probe_read(&self.tunnel_id) }.ok()
  137. }
  138. pub fn remote_ipv4(&self) -> Option<__u32> {
  139. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.remote_ipv4) }.ok()
  140. }
  141. pub fn remote_ipv6(&self) -> Option<[__u32; 4usize]> {
  142. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.remote_ipv6) }.ok()
  143. }
  144. pub fn tunnel_tos(&self) -> Option<__u8> {
  145. unsafe { crate::bpf_probe_read(&self.tunnel_tos) }.ok()
  146. }
  147. pub fn tunnel_ttl(&self) -> Option<__u8> {
  148. unsafe { crate::bpf_probe_read(&self.tunnel_ttl) }.ok()
  149. }
  150. pub fn tunnel_ext(&self) -> Option<__u16> {
  151. unsafe { crate::bpf_probe_read(&self.tunnel_ext) }.ok()
  152. }
  153. pub fn tunnel_label(&self) -> Option<__u32> {
  154. unsafe { crate::bpf_probe_read(&self.tunnel_label) }.ok()
  155. }
  156. }
  157. impl bpf_tunnel_key__bindgen_ty_1 {
  158. pub fn remote_ipv4(&self) -> Option<__u32> {
  159. unsafe { crate::bpf_probe_read(&self.remote_ipv4) }.ok()
  160. }
  161. pub fn remote_ipv6(&self) -> Option<[__u32; 4usize]> {
  162. unsafe { crate::bpf_probe_read(&self.remote_ipv6) }.ok()
  163. }
  164. }
  165. impl bpf_xfrm_state {
  166. pub fn reqid(&self) -> Option<__u32> {
  167. unsafe { crate::bpf_probe_read(&self.reqid) }.ok()
  168. }
  169. pub fn spi(&self) -> Option<__u32> {
  170. unsafe { crate::bpf_probe_read(&self.spi) }.ok()
  171. }
  172. pub fn family(&self) -> Option<__u16> {
  173. unsafe { crate::bpf_probe_read(&self.family) }.ok()
  174. }
  175. pub fn ext(&self) -> Option<__u16> {
  176. unsafe { crate::bpf_probe_read(&self.ext) }.ok()
  177. }
  178. pub fn remote_ipv4(&self) -> Option<__u32> {
  179. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.remote_ipv4) }.ok()
  180. }
  181. pub fn remote_ipv6(&self) -> Option<[__u32; 4usize]> {
  182. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.remote_ipv6) }.ok()
  183. }
  184. }
  185. impl bpf_xfrm_state__bindgen_ty_1 {
  186. pub fn remote_ipv4(&self) -> Option<__u32> {
  187. unsafe { crate::bpf_probe_read(&self.remote_ipv4) }.ok()
  188. }
  189. pub fn remote_ipv6(&self) -> Option<[__u32; 4usize]> {
  190. unsafe { crate::bpf_probe_read(&self.remote_ipv6) }.ok()
  191. }
  192. }
  193. impl bpf_sock {
  194. pub fn bound_dev_if(&self) -> Option<__u32> {
  195. unsafe { crate::bpf_probe_read(&self.bound_dev_if) }.ok()
  196. }
  197. pub fn family(&self) -> Option<__u32> {
  198. unsafe { crate::bpf_probe_read(&self.family) }.ok()
  199. }
  200. pub fn type_(&self) -> Option<__u32> {
  201. unsafe { crate::bpf_probe_read(&self.type_) }.ok()
  202. }
  203. pub fn protocol(&self) -> Option<__u32> {
  204. unsafe { crate::bpf_probe_read(&self.protocol) }.ok()
  205. }
  206. pub fn mark(&self) -> Option<__u32> {
  207. unsafe { crate::bpf_probe_read(&self.mark) }.ok()
  208. }
  209. pub fn priority(&self) -> Option<__u32> {
  210. unsafe { crate::bpf_probe_read(&self.priority) }.ok()
  211. }
  212. pub fn src_ip4(&self) -> Option<__u32> {
  213. unsafe { crate::bpf_probe_read(&self.src_ip4) }.ok()
  214. }
  215. pub fn src_ip6(&self) -> Option<[__u32; 4usize]> {
  216. unsafe { crate::bpf_probe_read(&self.src_ip6) }.ok()
  217. }
  218. pub fn src_port(&self) -> Option<__u32> {
  219. unsafe { crate::bpf_probe_read(&self.src_port) }.ok()
  220. }
  221. pub fn dst_port(&self) -> Option<__u32> {
  222. unsafe { crate::bpf_probe_read(&self.dst_port) }.ok()
  223. }
  224. pub fn dst_ip4(&self) -> Option<__u32> {
  225. unsafe { crate::bpf_probe_read(&self.dst_ip4) }.ok()
  226. }
  227. pub fn dst_ip6(&self) -> Option<[__u32; 4usize]> {
  228. unsafe { crate::bpf_probe_read(&self.dst_ip6) }.ok()
  229. }
  230. pub fn state(&self) -> Option<__u32> {
  231. unsafe { crate::bpf_probe_read(&self.state) }.ok()
  232. }
  233. pub fn rx_queue_mapping(&self) -> Option<__s32> {
  234. unsafe { crate::bpf_probe_read(&self.rx_queue_mapping) }.ok()
  235. }
  236. }
  237. impl bpf_tcp_sock {
  238. pub fn snd_cwnd(&self) -> Option<__u32> {
  239. unsafe { crate::bpf_probe_read(&self.snd_cwnd) }.ok()
  240. }
  241. pub fn srtt_us(&self) -> Option<__u32> {
  242. unsafe { crate::bpf_probe_read(&self.srtt_us) }.ok()
  243. }
  244. pub fn rtt_min(&self) -> Option<__u32> {
  245. unsafe { crate::bpf_probe_read(&self.rtt_min) }.ok()
  246. }
  247. pub fn snd_ssthresh(&self) -> Option<__u32> {
  248. unsafe { crate::bpf_probe_read(&self.snd_ssthresh) }.ok()
  249. }
  250. pub fn rcv_nxt(&self) -> Option<__u32> {
  251. unsafe { crate::bpf_probe_read(&self.rcv_nxt) }.ok()
  252. }
  253. pub fn snd_nxt(&self) -> Option<__u32> {
  254. unsafe { crate::bpf_probe_read(&self.snd_nxt) }.ok()
  255. }
  256. pub fn snd_una(&self) -> Option<__u32> {
  257. unsafe { crate::bpf_probe_read(&self.snd_una) }.ok()
  258. }
  259. pub fn mss_cache(&self) -> Option<__u32> {
  260. unsafe { crate::bpf_probe_read(&self.mss_cache) }.ok()
  261. }
  262. pub fn ecn_flags(&self) -> Option<__u32> {
  263. unsafe { crate::bpf_probe_read(&self.ecn_flags) }.ok()
  264. }
  265. pub fn rate_delivered(&self) -> Option<__u32> {
  266. unsafe { crate::bpf_probe_read(&self.rate_delivered) }.ok()
  267. }
  268. pub fn rate_interval_us(&self) -> Option<__u32> {
  269. unsafe { crate::bpf_probe_read(&self.rate_interval_us) }.ok()
  270. }
  271. pub fn packets_out(&self) -> Option<__u32> {
  272. unsafe { crate::bpf_probe_read(&self.packets_out) }.ok()
  273. }
  274. pub fn retrans_out(&self) -> Option<__u32> {
  275. unsafe { crate::bpf_probe_read(&self.retrans_out) }.ok()
  276. }
  277. pub fn total_retrans(&self) -> Option<__u32> {
  278. unsafe { crate::bpf_probe_read(&self.total_retrans) }.ok()
  279. }
  280. pub fn segs_in(&self) -> Option<__u32> {
  281. unsafe { crate::bpf_probe_read(&self.segs_in) }.ok()
  282. }
  283. pub fn data_segs_in(&self) -> Option<__u32> {
  284. unsafe { crate::bpf_probe_read(&self.data_segs_in) }.ok()
  285. }
  286. pub fn segs_out(&self) -> Option<__u32> {
  287. unsafe { crate::bpf_probe_read(&self.segs_out) }.ok()
  288. }
  289. pub fn data_segs_out(&self) -> Option<__u32> {
  290. unsafe { crate::bpf_probe_read(&self.data_segs_out) }.ok()
  291. }
  292. pub fn lost_out(&self) -> Option<__u32> {
  293. unsafe { crate::bpf_probe_read(&self.lost_out) }.ok()
  294. }
  295. pub fn sacked_out(&self) -> Option<__u32> {
  296. unsafe { crate::bpf_probe_read(&self.sacked_out) }.ok()
  297. }
  298. pub fn bytes_received(&self) -> Option<__u64> {
  299. unsafe { crate::bpf_probe_read(&self.bytes_received) }.ok()
  300. }
  301. pub fn bytes_acked(&self) -> Option<__u64> {
  302. unsafe { crate::bpf_probe_read(&self.bytes_acked) }.ok()
  303. }
  304. pub fn dsack_dups(&self) -> Option<__u32> {
  305. unsafe { crate::bpf_probe_read(&self.dsack_dups) }.ok()
  306. }
  307. pub fn delivered(&self) -> Option<__u32> {
  308. unsafe { crate::bpf_probe_read(&self.delivered) }.ok()
  309. }
  310. pub fn delivered_ce(&self) -> Option<__u32> {
  311. unsafe { crate::bpf_probe_read(&self.delivered_ce) }.ok()
  312. }
  313. pub fn icsk_retransmits(&self) -> Option<__u32> {
  314. unsafe { crate::bpf_probe_read(&self.icsk_retransmits) }.ok()
  315. }
  316. }
  317. impl bpf_sock_tuple {
  318. pub fn ipv4(&self) -> Option<bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1> {
  319. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.ipv4) }.ok()
  320. }
  321. pub fn ipv6(&self) -> Option<bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2> {
  322. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.ipv6) }.ok()
  323. }
  324. }
  325. impl bpf_sock_tuple__bindgen_ty_1 {
  326. pub fn ipv4(&self) -> Option<bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1> {
  327. unsafe { crate::bpf_probe_read(&self.ipv4) }.ok()
  328. }
  329. pub fn ipv6(&self) -> Option<bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2> {
  330. unsafe { crate::bpf_probe_read(&self.ipv6) }.ok()
  331. }
  332. }
  333. impl bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
  334. pub fn saddr(&self) -> Option<__be32> {
  335. unsafe { crate::bpf_probe_read(&self.saddr) }.ok()
  336. }
  337. pub fn daddr(&self) -> Option<__be32> {
  338. unsafe { crate::bpf_probe_read(&self.daddr) }.ok()
  339. }
  340. pub fn sport(&self) -> Option<__be16> {
  341. unsafe { crate::bpf_probe_read(&self.sport) }.ok()
  342. }
  343. pub fn dport(&self) -> Option<__be16> {
  344. unsafe { crate::bpf_probe_read(&self.dport) }.ok()
  345. }
  346. }
  347. impl bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2 {
  348. pub fn saddr(&self) -> Option<[__be32; 4usize]> {
  349. unsafe { crate::bpf_probe_read(&self.saddr) }.ok()
  350. }
  351. pub fn daddr(&self) -> Option<[__be32; 4usize]> {
  352. unsafe { crate::bpf_probe_read(&self.daddr) }.ok()
  353. }
  354. pub fn sport(&self) -> Option<__be16> {
  355. unsafe { crate::bpf_probe_read(&self.sport) }.ok()
  356. }
  357. pub fn dport(&self) -> Option<__be16> {
  358. unsafe { crate::bpf_probe_read(&self.dport) }.ok()
  359. }
  360. }
  361. impl xdp_md {
  362. pub fn data(&self) -> Option<__u32> {
  363. unsafe { crate::bpf_probe_read(&self.data) }.ok()
  364. }
  365. pub fn data_end(&self) -> Option<__u32> {
  366. unsafe { crate::bpf_probe_read(&self.data_end) }.ok()
  367. }
  368. pub fn data_meta(&self) -> Option<__u32> {
  369. unsafe { crate::bpf_probe_read(&self.data_meta) }.ok()
  370. }
  371. pub fn ingress_ifindex(&self) -> Option<__u32> {
  372. unsafe { crate::bpf_probe_read(&self.ingress_ifindex) }.ok()
  373. }
  374. pub fn rx_queue_index(&self) -> Option<__u32> {
  375. unsafe { crate::bpf_probe_read(&self.rx_queue_index) }.ok()
  376. }
  377. pub fn egress_ifindex(&self) -> Option<__u32> {
  378. unsafe { crate::bpf_probe_read(&self.egress_ifindex) }.ok()
  379. }
  380. }
  381. impl sk_msg_md {
  382. pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
  383. let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.data) }.ok()?;
  384. if v.is_null() {
  385. None
  386. } else {
  387. Some(v)
  388. }
  389. }
  390. pub fn data_end(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
  391. let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.data_end) }.ok()?;
  392. if v.is_null() {
  393. None
  394. } else {
  395. Some(v)
  396. }
  397. }
  398. pub fn family(&self) -> Option<__u32> {
  399. unsafe { crate::bpf_probe_read(&self.family) }.ok()
  400. }
  401. pub fn remote_ip4(&self) -> Option<__u32> {
  402. unsafe { crate::bpf_probe_read(&self.remote_ip4) }.ok()
  403. }
  404. pub fn local_ip4(&self) -> Option<__u32> {
  405. unsafe { crate::bpf_probe_read(&self.local_ip4) }.ok()
  406. }
  407. pub fn remote_ip6(&self) -> Option<[__u32; 4usize]> {
  408. unsafe { crate::bpf_probe_read(&self.remote_ip6) }.ok()
  409. }
  410. pub fn local_ip6(&self) -> Option<[__u32; 4usize]> {
  411. unsafe { crate::bpf_probe_read(&self.local_ip6) }.ok()
  412. }
  413. pub fn remote_port(&self) -> Option<__u32> {
  414. unsafe { crate::bpf_probe_read(&self.remote_port) }.ok()
  415. }
  416. pub fn local_port(&self) -> Option<__u32> {
  417. unsafe { crate::bpf_probe_read(&self.local_port) }.ok()
  418. }
  419. pub fn size(&self) -> Option<__u32> {
  420. unsafe { crate::bpf_probe_read(&self.size) }.ok()
  421. }
  422. pub fn sk(&self) -> Option<*mut bpf_sock> {
  423. let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.sk) }.ok()?;
  424. if v.is_null() {
  425. None
  426. } else {
  427. Some(v)
  428. }
  429. }
  430. }
  431. impl sk_msg_md__bindgen_ty_1 {
  432. pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
  433. let v = unsafe { crate::bpf_probe_read(&self.data) }.ok()?;
  434. if v.is_null() {
  435. None
  436. } else {
  437. Some(v)
  438. }
  439. }
  440. }
  441. impl sk_msg_md__bindgen_ty_2 {
  442. pub fn data_end(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
  443. let v = unsafe { crate::bpf_probe_read(&self.data_end) }.ok()?;
  444. if v.is_null() {
  445. None
  446. } else {
  447. Some(v)
  448. }
  449. }
  450. }
  451. impl sk_msg_md__bindgen_ty_3 {
  452. pub fn sk(&self) -> Option<*mut bpf_sock> {
  453. let v = unsafe { crate::bpf_probe_read(&self.sk) }.ok()?;
  454. if v.is_null() {
  455. None
  456. } else {
  457. Some(v)
  458. }
  459. }
  460. }
  461. impl sk_reuseport_md {
  462. pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
  463. let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.data) }.ok()?;
  464. if v.is_null() {
  465. None
  466. } else {
  467. Some(v)
  468. }
  469. }
  470. pub fn data_end(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
  471. let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.data_end) }.ok()?;
  472. if v.is_null() {
  473. None
  474. } else {
  475. Some(v)
  476. }
  477. }
  478. pub fn len(&self) -> Option<__u32> {
  479. unsafe { crate::bpf_probe_read(&self.len) }.ok()
  480. }
  481. pub fn eth_protocol(&self) -> Option<__u32> {
  482. unsafe { crate::bpf_probe_read(&self.eth_protocol) }.ok()
  483. }
  484. pub fn ip_protocol(&self) -> Option<__u32> {
  485. unsafe { crate::bpf_probe_read(&self.ip_protocol) }.ok()
  486. }
  487. pub fn bind_inany(&self) -> Option<__u32> {
  488. unsafe { crate::bpf_probe_read(&self.bind_inany) }.ok()
  489. }
  490. pub fn hash(&self) -> Option<__u32> {
  491. unsafe { crate::bpf_probe_read(&self.hash) }.ok()
  492. }
  493. pub fn sk(&self) -> Option<*mut bpf_sock> {
  494. let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.sk) }.ok()?;
  495. if v.is_null() {
  496. None
  497. } else {
  498. Some(v)
  499. }
  500. }
  501. pub fn migrating_sk(&self) -> Option<*mut bpf_sock> {
  502. let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_4.migrating_sk) }.ok()?;
  503. if v.is_null() {
  504. None
  505. } else {
  506. Some(v)
  507. }
  508. }
  509. }
  510. impl sk_reuseport_md__bindgen_ty_1 {
  511. pub fn data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
  512. let v = unsafe { crate::bpf_probe_read(&self.data) }.ok()?;
  513. if v.is_null() {
  514. None
  515. } else {
  516. Some(v)
  517. }
  518. }
  519. }
  520. impl sk_reuseport_md__bindgen_ty_2 {
  521. pub fn data_end(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
  522. let v = unsafe { crate::bpf_probe_read(&self.data_end) }.ok()?;
  523. if v.is_null() {
  524. None
  525. } else {
  526. Some(v)
  527. }
  528. }
  529. }
  530. impl sk_reuseport_md__bindgen_ty_3 {
  531. pub fn sk(&self) -> Option<*mut bpf_sock> {
  532. let v = unsafe { crate::bpf_probe_read(&self.sk) }.ok()?;
  533. if v.is_null() {
  534. None
  535. } else {
  536. Some(v)
  537. }
  538. }
  539. }
  540. impl sk_reuseport_md__bindgen_ty_4 {
  541. pub fn migrating_sk(&self) -> Option<*mut bpf_sock> {
  542. let v = unsafe { crate::bpf_probe_read(&self.migrating_sk) }.ok()?;
  543. if v.is_null() {
  544. None
  545. } else {
  546. Some(v)
  547. }
  548. }
  549. }
  550. impl bpf_map_info {
  551. pub fn type_(&self) -> Option<__u32> {
  552. unsafe { crate::bpf_probe_read(&self.type_) }.ok()
  553. }
  554. pub fn id(&self) -> Option<__u32> {
  555. unsafe { crate::bpf_probe_read(&self.id) }.ok()
  556. }
  557. pub fn key_size(&self) -> Option<__u32> {
  558. unsafe { crate::bpf_probe_read(&self.key_size) }.ok()
  559. }
  560. pub fn value_size(&self) -> Option<__u32> {
  561. unsafe { crate::bpf_probe_read(&self.value_size) }.ok()
  562. }
  563. pub fn max_entries(&self) -> Option<__u32> {
  564. unsafe { crate::bpf_probe_read(&self.max_entries) }.ok()
  565. }
  566. pub fn map_flags(&self) -> Option<__u32> {
  567. unsafe { crate::bpf_probe_read(&self.map_flags) }.ok()
  568. }
  569. pub fn name(&self) -> Option<[::aya_bpf_cty::c_char; 16usize]> {
  570. unsafe { crate::bpf_probe_read(&self.name) }.ok()
  571. }
  572. pub fn ifindex(&self) -> Option<__u32> {
  573. unsafe { crate::bpf_probe_read(&self.ifindex) }.ok()
  574. }
  575. pub fn btf_vmlinux_value_type_id(&self) -> Option<__u32> {
  576. unsafe { crate::bpf_probe_read(&self.btf_vmlinux_value_type_id) }.ok()
  577. }
  578. pub fn netns_dev(&self) -> Option<__u64> {
  579. unsafe { crate::bpf_probe_read(&self.netns_dev) }.ok()
  580. }
  581. pub fn netns_ino(&self) -> Option<__u64> {
  582. unsafe { crate::bpf_probe_read(&self.netns_ino) }.ok()
  583. }
  584. pub fn btf_id(&self) -> Option<__u32> {
  585. unsafe { crate::bpf_probe_read(&self.btf_id) }.ok()
  586. }
  587. pub fn btf_key_type_id(&self) -> Option<__u32> {
  588. unsafe { crate::bpf_probe_read(&self.btf_key_type_id) }.ok()
  589. }
  590. pub fn btf_value_type_id(&self) -> Option<__u32> {
  591. unsafe { crate::bpf_probe_read(&self.btf_value_type_id) }.ok()
  592. }
  593. pub fn map_extra(&self) -> Option<__u64> {
  594. unsafe { crate::bpf_probe_read(&self.map_extra) }.ok()
  595. }
  596. }
  597. impl bpf_sock_addr {
  598. pub fn user_family(&self) -> Option<__u32> {
  599. unsafe { crate::bpf_probe_read(&self.user_family) }.ok()
  600. }
  601. pub fn user_ip4(&self) -> Option<__u32> {
  602. unsafe { crate::bpf_probe_read(&self.user_ip4) }.ok()
  603. }
  604. pub fn user_ip6(&self) -> Option<[__u32; 4usize]> {
  605. unsafe { crate::bpf_probe_read(&self.user_ip6) }.ok()
  606. }
  607. pub fn user_port(&self) -> Option<__u32> {
  608. unsafe { crate::bpf_probe_read(&self.user_port) }.ok()
  609. }
  610. pub fn family(&self) -> Option<__u32> {
  611. unsafe { crate::bpf_probe_read(&self.family) }.ok()
  612. }
  613. pub fn type_(&self) -> Option<__u32> {
  614. unsafe { crate::bpf_probe_read(&self.type_) }.ok()
  615. }
  616. pub fn protocol(&self) -> Option<__u32> {
  617. unsafe { crate::bpf_probe_read(&self.protocol) }.ok()
  618. }
  619. pub fn msg_src_ip4(&self) -> Option<__u32> {
  620. unsafe { crate::bpf_probe_read(&self.msg_src_ip4) }.ok()
  621. }
  622. pub fn msg_src_ip6(&self) -> Option<[__u32; 4usize]> {
  623. unsafe { crate::bpf_probe_read(&self.msg_src_ip6) }.ok()
  624. }
  625. pub fn sk(&self) -> Option<*mut bpf_sock> {
  626. let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.sk) }.ok()?;
  627. if v.is_null() {
  628. None
  629. } else {
  630. Some(v)
  631. }
  632. }
  633. }
  634. impl bpf_sock_addr__bindgen_ty_1 {
  635. pub fn sk(&self) -> Option<*mut bpf_sock> {
  636. let v = unsafe { crate::bpf_probe_read(&self.sk) }.ok()?;
  637. if v.is_null() {
  638. None
  639. } else {
  640. Some(v)
  641. }
  642. }
  643. }
  644. impl bpf_sock_ops {
  645. pub fn op(&self) -> Option<__u32> {
  646. unsafe { crate::bpf_probe_read(&self.op) }.ok()
  647. }
  648. pub fn args(&self) -> Option<[__u32; 4usize]> {
  649. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.args) }.ok()
  650. }
  651. pub fn reply(&self) -> Option<__u32> {
  652. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.reply) }.ok()
  653. }
  654. pub fn replylong(&self) -> Option<[__u32; 4usize]> {
  655. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.replylong) }.ok()
  656. }
  657. pub fn family(&self) -> Option<__u32> {
  658. unsafe { crate::bpf_probe_read(&self.family) }.ok()
  659. }
  660. pub fn remote_ip4(&self) -> Option<__u32> {
  661. unsafe { crate::bpf_probe_read(&self.remote_ip4) }.ok()
  662. }
  663. pub fn local_ip4(&self) -> Option<__u32> {
  664. unsafe { crate::bpf_probe_read(&self.local_ip4) }.ok()
  665. }
  666. pub fn remote_ip6(&self) -> Option<[__u32; 4usize]> {
  667. unsafe { crate::bpf_probe_read(&self.remote_ip6) }.ok()
  668. }
  669. pub fn local_ip6(&self) -> Option<[__u32; 4usize]> {
  670. unsafe { crate::bpf_probe_read(&self.local_ip6) }.ok()
  671. }
  672. pub fn remote_port(&self) -> Option<__u32> {
  673. unsafe { crate::bpf_probe_read(&self.remote_port) }.ok()
  674. }
  675. pub fn local_port(&self) -> Option<__u32> {
  676. unsafe { crate::bpf_probe_read(&self.local_port) }.ok()
  677. }
  678. pub fn is_fullsock(&self) -> Option<__u32> {
  679. unsafe { crate::bpf_probe_read(&self.is_fullsock) }.ok()
  680. }
  681. pub fn snd_cwnd(&self) -> Option<__u32> {
  682. unsafe { crate::bpf_probe_read(&self.snd_cwnd) }.ok()
  683. }
  684. pub fn srtt_us(&self) -> Option<__u32> {
  685. unsafe { crate::bpf_probe_read(&self.srtt_us) }.ok()
  686. }
  687. pub fn bpf_sock_ops_cb_flags(&self) -> Option<__u32> {
  688. unsafe { crate::bpf_probe_read(&self.bpf_sock_ops_cb_flags) }.ok()
  689. }
  690. pub fn state(&self) -> Option<__u32> {
  691. unsafe { crate::bpf_probe_read(&self.state) }.ok()
  692. }
  693. pub fn rtt_min(&self) -> Option<__u32> {
  694. unsafe { crate::bpf_probe_read(&self.rtt_min) }.ok()
  695. }
  696. pub fn snd_ssthresh(&self) -> Option<__u32> {
  697. unsafe { crate::bpf_probe_read(&self.snd_ssthresh) }.ok()
  698. }
  699. pub fn rcv_nxt(&self) -> Option<__u32> {
  700. unsafe { crate::bpf_probe_read(&self.rcv_nxt) }.ok()
  701. }
  702. pub fn snd_nxt(&self) -> Option<__u32> {
  703. unsafe { crate::bpf_probe_read(&self.snd_nxt) }.ok()
  704. }
  705. pub fn snd_una(&self) -> Option<__u32> {
  706. unsafe { crate::bpf_probe_read(&self.snd_una) }.ok()
  707. }
  708. pub fn mss_cache(&self) -> Option<__u32> {
  709. unsafe { crate::bpf_probe_read(&self.mss_cache) }.ok()
  710. }
  711. pub fn ecn_flags(&self) -> Option<__u32> {
  712. unsafe { crate::bpf_probe_read(&self.ecn_flags) }.ok()
  713. }
  714. pub fn rate_delivered(&self) -> Option<__u32> {
  715. unsafe { crate::bpf_probe_read(&self.rate_delivered) }.ok()
  716. }
  717. pub fn rate_interval_us(&self) -> Option<__u32> {
  718. unsafe { crate::bpf_probe_read(&self.rate_interval_us) }.ok()
  719. }
  720. pub fn packets_out(&self) -> Option<__u32> {
  721. unsafe { crate::bpf_probe_read(&self.packets_out) }.ok()
  722. }
  723. pub fn retrans_out(&self) -> Option<__u32> {
  724. unsafe { crate::bpf_probe_read(&self.retrans_out) }.ok()
  725. }
  726. pub fn total_retrans(&self) -> Option<__u32> {
  727. unsafe { crate::bpf_probe_read(&self.total_retrans) }.ok()
  728. }
  729. pub fn segs_in(&self) -> Option<__u32> {
  730. unsafe { crate::bpf_probe_read(&self.segs_in) }.ok()
  731. }
  732. pub fn data_segs_in(&self) -> Option<__u32> {
  733. unsafe { crate::bpf_probe_read(&self.data_segs_in) }.ok()
  734. }
  735. pub fn segs_out(&self) -> Option<__u32> {
  736. unsafe { crate::bpf_probe_read(&self.segs_out) }.ok()
  737. }
  738. pub fn data_segs_out(&self) -> Option<__u32> {
  739. unsafe { crate::bpf_probe_read(&self.data_segs_out) }.ok()
  740. }
  741. pub fn lost_out(&self) -> Option<__u32> {
  742. unsafe { crate::bpf_probe_read(&self.lost_out) }.ok()
  743. }
  744. pub fn sacked_out(&self) -> Option<__u32> {
  745. unsafe { crate::bpf_probe_read(&self.sacked_out) }.ok()
  746. }
  747. pub fn sk_txhash(&self) -> Option<__u32> {
  748. unsafe { crate::bpf_probe_read(&self.sk_txhash) }.ok()
  749. }
  750. pub fn bytes_received(&self) -> Option<__u64> {
  751. unsafe { crate::bpf_probe_read(&self.bytes_received) }.ok()
  752. }
  753. pub fn bytes_acked(&self) -> Option<__u64> {
  754. unsafe { crate::bpf_probe_read(&self.bytes_acked) }.ok()
  755. }
  756. pub fn sk(&self) -> Option<*mut bpf_sock> {
  757. let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.sk) }.ok()?;
  758. if v.is_null() {
  759. None
  760. } else {
  761. Some(v)
  762. }
  763. }
  764. pub fn skb_data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
  765. let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.skb_data) }.ok()?;
  766. if v.is_null() {
  767. None
  768. } else {
  769. Some(v)
  770. }
  771. }
  772. pub fn skb_data_end(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
  773. let v = unsafe { crate::bpf_probe_read(&self.__bindgen_anon_4.skb_data_end) }.ok()?;
  774. if v.is_null() {
  775. None
  776. } else {
  777. Some(v)
  778. }
  779. }
  780. pub fn skb_len(&self) -> Option<__u32> {
  781. unsafe { crate::bpf_probe_read(&self.skb_len) }.ok()
  782. }
  783. pub fn skb_tcp_flags(&self) -> Option<__u32> {
  784. unsafe { crate::bpf_probe_read(&self.skb_tcp_flags) }.ok()
  785. }
  786. }
  787. impl bpf_sock_ops__bindgen_ty_1 {
  788. pub fn args(&self) -> Option<[__u32; 4usize]> {
  789. unsafe { crate::bpf_probe_read(&self.args) }.ok()
  790. }
  791. pub fn reply(&self) -> Option<__u32> {
  792. unsafe { crate::bpf_probe_read(&self.reply) }.ok()
  793. }
  794. pub fn replylong(&self) -> Option<[__u32; 4usize]> {
  795. unsafe { crate::bpf_probe_read(&self.replylong) }.ok()
  796. }
  797. }
  798. impl bpf_sock_ops__bindgen_ty_2 {
  799. pub fn sk(&self) -> Option<*mut bpf_sock> {
  800. let v = unsafe { crate::bpf_probe_read(&self.sk) }.ok()?;
  801. if v.is_null() {
  802. None
  803. } else {
  804. Some(v)
  805. }
  806. }
  807. }
  808. impl bpf_sock_ops__bindgen_ty_3 {
  809. pub fn skb_data(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
  810. let v = unsafe { crate::bpf_probe_read(&self.skb_data) }.ok()?;
  811. if v.is_null() {
  812. None
  813. } else {
  814. Some(v)
  815. }
  816. }
  817. }
  818. impl bpf_sock_ops__bindgen_ty_4 {
  819. pub fn skb_data_end(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
  820. let v = unsafe { crate::bpf_probe_read(&self.skb_data_end) }.ok()?;
  821. if v.is_null() {
  822. None
  823. } else {
  824. Some(v)
  825. }
  826. }
  827. }
  828. impl bpf_perf_event_value {
  829. pub fn counter(&self) -> Option<__u64> {
  830. unsafe { crate::bpf_probe_read(&self.counter) }.ok()
  831. }
  832. pub fn enabled(&self) -> Option<__u64> {
  833. unsafe { crate::bpf_probe_read(&self.enabled) }.ok()
  834. }
  835. pub fn running(&self) -> Option<__u64> {
  836. unsafe { crate::bpf_probe_read(&self.running) }.ok()
  837. }
  838. }
  839. impl bpf_fib_lookup {
  840. pub fn family(&self) -> Option<__u8> {
  841. unsafe { crate::bpf_probe_read(&self.family) }.ok()
  842. }
  843. pub fn l4_protocol(&self) -> Option<__u8> {
  844. unsafe { crate::bpf_probe_read(&self.l4_protocol) }.ok()
  845. }
  846. pub fn sport(&self) -> Option<__be16> {
  847. unsafe { crate::bpf_probe_read(&self.sport) }.ok()
  848. }
  849. pub fn dport(&self) -> Option<__be16> {
  850. unsafe { crate::bpf_probe_read(&self.dport) }.ok()
  851. }
  852. pub fn tot_len(&self) -> Option<__u16> {
  853. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.tot_len) }.ok()
  854. }
  855. pub fn mtu_result(&self) -> Option<__u16> {
  856. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.mtu_result) }.ok()
  857. }
  858. pub fn ifindex(&self) -> Option<__u32> {
  859. unsafe { crate::bpf_probe_read(&self.ifindex) }.ok()
  860. }
  861. pub fn tos(&self) -> Option<__u8> {
  862. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.tos) }.ok()
  863. }
  864. pub fn flowinfo(&self) -> Option<__be32> {
  865. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.flowinfo) }.ok()
  866. }
  867. pub fn rt_metric(&self) -> Option<__u32> {
  868. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.rt_metric) }.ok()
  869. }
  870. pub fn ipv4_src(&self) -> Option<__be32> {
  871. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.ipv4_src) }.ok()
  872. }
  873. pub fn ipv6_src(&self) -> Option<[__u32; 4usize]> {
  874. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_3.ipv6_src) }.ok()
  875. }
  876. pub fn ipv4_dst(&self) -> Option<__be32> {
  877. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_4.ipv4_dst) }.ok()
  878. }
  879. pub fn ipv6_dst(&self) -> Option<[__u32; 4usize]> {
  880. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_4.ipv6_dst) }.ok()
  881. }
  882. pub fn h_vlan_proto(&self) -> Option<__be16> {
  883. unsafe { crate::bpf_probe_read(&self.h_vlan_proto) }.ok()
  884. }
  885. pub fn h_vlan_TCI(&self) -> Option<__be16> {
  886. unsafe { crate::bpf_probe_read(&self.h_vlan_TCI) }.ok()
  887. }
  888. pub fn smac(&self) -> Option<[__u8; 6usize]> {
  889. unsafe { crate::bpf_probe_read(&self.smac) }.ok()
  890. }
  891. pub fn dmac(&self) -> Option<[__u8; 6usize]> {
  892. unsafe { crate::bpf_probe_read(&self.dmac) }.ok()
  893. }
  894. }
  895. impl bpf_fib_lookup__bindgen_ty_1 {
  896. pub fn tot_len(&self) -> Option<__u16> {
  897. unsafe { crate::bpf_probe_read(&self.tot_len) }.ok()
  898. }
  899. pub fn mtu_result(&self) -> Option<__u16> {
  900. unsafe { crate::bpf_probe_read(&self.mtu_result) }.ok()
  901. }
  902. }
  903. impl bpf_fib_lookup__bindgen_ty_2 {
  904. pub fn tos(&self) -> Option<__u8> {
  905. unsafe { crate::bpf_probe_read(&self.tos) }.ok()
  906. }
  907. pub fn flowinfo(&self) -> Option<__be32> {
  908. unsafe { crate::bpf_probe_read(&self.flowinfo) }.ok()
  909. }
  910. pub fn rt_metric(&self) -> Option<__u32> {
  911. unsafe { crate::bpf_probe_read(&self.rt_metric) }.ok()
  912. }
  913. }
  914. impl bpf_fib_lookup__bindgen_ty_3 {
  915. pub fn ipv4_src(&self) -> Option<__be32> {
  916. unsafe { crate::bpf_probe_read(&self.ipv4_src) }.ok()
  917. }
  918. pub fn ipv6_src(&self) -> Option<[__u32; 4usize]> {
  919. unsafe { crate::bpf_probe_read(&self.ipv6_src) }.ok()
  920. }
  921. }
  922. impl bpf_fib_lookup__bindgen_ty_4 {
  923. pub fn ipv4_dst(&self) -> Option<__be32> {
  924. unsafe { crate::bpf_probe_read(&self.ipv4_dst) }.ok()
  925. }
  926. pub fn ipv6_dst(&self) -> Option<[__u32; 4usize]> {
  927. unsafe { crate::bpf_probe_read(&self.ipv6_dst) }.ok()
  928. }
  929. }
  930. impl bpf_redir_neigh {
  931. pub fn nh_family(&self) -> Option<__u32> {
  932. unsafe { crate::bpf_probe_read(&self.nh_family) }.ok()
  933. }
  934. pub fn ipv4_nh(&self) -> Option<__be32> {
  935. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.ipv4_nh) }.ok()
  936. }
  937. pub fn ipv6_nh(&self) -> Option<[__u32; 4usize]> {
  938. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.ipv6_nh) }.ok()
  939. }
  940. }
  941. impl bpf_redir_neigh__bindgen_ty_1 {
  942. pub fn ipv4_nh(&self) -> Option<__be32> {
  943. unsafe { crate::bpf_probe_read(&self.ipv4_nh) }.ok()
  944. }
  945. pub fn ipv6_nh(&self) -> Option<[__u32; 4usize]> {
  946. unsafe { crate::bpf_probe_read(&self.ipv6_nh) }.ok()
  947. }
  948. }
  949. impl bpf_flow_keys {
  950. pub fn nhoff(&self) -> Option<__u16> {
  951. unsafe { crate::bpf_probe_read(&self.nhoff) }.ok()
  952. }
  953. pub fn thoff(&self) -> Option<__u16> {
  954. unsafe { crate::bpf_probe_read(&self.thoff) }.ok()
  955. }
  956. pub fn addr_proto(&self) -> Option<__u16> {
  957. unsafe { crate::bpf_probe_read(&self.addr_proto) }.ok()
  958. }
  959. pub fn is_frag(&self) -> Option<__u8> {
  960. unsafe { crate::bpf_probe_read(&self.is_frag) }.ok()
  961. }
  962. pub fn is_first_frag(&self) -> Option<__u8> {
  963. unsafe { crate::bpf_probe_read(&self.is_first_frag) }.ok()
  964. }
  965. pub fn is_encap(&self) -> Option<__u8> {
  966. unsafe { crate::bpf_probe_read(&self.is_encap) }.ok()
  967. }
  968. pub fn ip_proto(&self) -> Option<__u8> {
  969. unsafe { crate::bpf_probe_read(&self.ip_proto) }.ok()
  970. }
  971. pub fn n_proto(&self) -> Option<__be16> {
  972. unsafe { crate::bpf_probe_read(&self.n_proto) }.ok()
  973. }
  974. pub fn sport(&self) -> Option<__be16> {
  975. unsafe { crate::bpf_probe_read(&self.sport) }.ok()
  976. }
  977. pub fn dport(&self) -> Option<__be16> {
  978. unsafe { crate::bpf_probe_read(&self.dport) }.ok()
  979. }
  980. pub fn ipv4_src(&self) -> Option<__be32> {
  981. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.__bindgen_anon_1.ipv4_src) }.ok()
  982. }
  983. pub fn ipv4_dst(&self) -> Option<__be32> {
  984. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.__bindgen_anon_1.ipv4_dst) }.ok()
  985. }
  986. pub fn ipv6_src(&self) -> Option<[__u32; 4usize]> {
  987. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.__bindgen_anon_2.ipv6_src) }.ok()
  988. }
  989. pub fn ipv6_dst(&self) -> Option<[__u32; 4usize]> {
  990. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.__bindgen_anon_2.ipv6_dst) }.ok()
  991. }
  992. pub fn flags(&self) -> Option<__u32> {
  993. unsafe { crate::bpf_probe_read(&self.flags) }.ok()
  994. }
  995. pub fn flow_label(&self) -> Option<__be32> {
  996. unsafe { crate::bpf_probe_read(&self.flow_label) }.ok()
  997. }
  998. }
  999. impl bpf_flow_keys__bindgen_ty_1 {
  1000. pub fn ipv4_src(&self) -> Option<__be32> {
  1001. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.ipv4_src) }.ok()
  1002. }
  1003. pub fn ipv4_dst(&self) -> Option<__be32> {
  1004. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_1.ipv4_dst) }.ok()
  1005. }
  1006. pub fn ipv6_src(&self) -> Option<[__u32; 4usize]> {
  1007. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.ipv6_src) }.ok()
  1008. }
  1009. pub fn ipv6_dst(&self) -> Option<[__u32; 4usize]> {
  1010. unsafe { crate::bpf_probe_read(&self.__bindgen_anon_2.ipv6_dst) }.ok()
  1011. }
  1012. }
  1013. impl bpf_flow_keys__bindgen_ty_1__bindgen_ty_1 {
  1014. pub fn ipv4_src(&self) -> Option<__be32> {
  1015. unsafe { crate::bpf_probe_read(&self.ipv4_src) }.ok()
  1016. }
  1017. pub fn ipv4_dst(&self) -> Option<__be32> {
  1018. unsafe { crate::bpf_probe_read(&self.ipv4_dst) }.ok()
  1019. }
  1020. }
  1021. impl bpf_flow_keys__bindgen_ty_1__bindgen_ty_2 {
  1022. pub fn ipv6_src(&self) -> Option<[__u32; 4usize]> {
  1023. unsafe { crate::bpf_probe_read(&self.ipv6_src) }.ok()
  1024. }
  1025. pub fn ipv6_dst(&self) -> Option<[__u32; 4usize]> {
  1026. unsafe { crate::bpf_probe_read(&self.ipv6_dst) }.ok()
  1027. }
  1028. }
  1029. impl bpf_spin_lock {
  1030. pub fn val(&self) -> Option<__u32> {
  1031. unsafe { crate::bpf_probe_read(&self.val) }.ok()
  1032. }
  1033. }
  1034. impl bpf_timer {}
  1035. impl bpf_sysctl {
  1036. pub fn write(&self) -> Option<__u32> {
  1037. unsafe { crate::bpf_probe_read(&self.write) }.ok()
  1038. }
  1039. pub fn file_pos(&self) -> Option<__u32> {
  1040. unsafe { crate::bpf_probe_read(&self.file_pos) }.ok()
  1041. }
  1042. }
  1043. impl bpf_pidns_info {
  1044. pub fn pid(&self) -> Option<__u32> {
  1045. unsafe { crate::bpf_probe_read(&self.pid) }.ok()
  1046. }
  1047. pub fn tgid(&self) -> Option<__u32> {
  1048. unsafe { crate::bpf_probe_read(&self.tgid) }.ok()
  1049. }
  1050. }
  1051. impl btf_ptr {
  1052. pub fn ptr(&self) -> Option<*mut ::aya_bpf_cty::c_void> {
  1053. let v = unsafe { crate::bpf_probe_read(&self.ptr) }.ok()?;
  1054. if v.is_null() {
  1055. None
  1056. } else {
  1057. Some(v)
  1058. }
  1059. }
  1060. pub fn type_id(&self) -> Option<__u32> {
  1061. unsafe { crate::bpf_probe_read(&self.type_id) }.ok()
  1062. }
  1063. pub fn flags(&self) -> Option<__u32> {
  1064. unsafe { crate::bpf_probe_read(&self.flags) }.ok()
  1065. }
  1066. }
  1067. impl pt_regs {
  1068. pub fn uregs(&self) -> Option<[::aya_bpf_cty::c_long; 18usize]> {
  1069. unsafe { crate::bpf_probe_read(&self.uregs) }.ok()
  1070. }
  1071. }
  1072. impl sockaddr {
  1073. pub fn sa_family(&self) -> Option<sa_family_t> {
  1074. unsafe { crate::bpf_probe_read(&self.sa_family) }.ok()
  1075. }
  1076. pub fn sa_data(&self) -> Option<[::aya_bpf_cty::c_char; 14usize]> {
  1077. unsafe { crate::bpf_probe_read(&self.sa_data) }.ok()
  1078. }
  1079. }
  1080. impl bpf_perf_event_data {}
  1081. impl linux_binprm {}
  1082. impl tcphdr {}
  1083. impl seq_file {}
  1084. impl tcp6_sock {}
  1085. impl tcp_sock {}
  1086. impl tcp_timewait_sock {}
  1087. impl tcp_request_sock {}
  1088. impl udp6_sock {}
  1089. impl unix_sock {}
  1090. impl task_struct {}
  1091. impl path {}
  1092. impl inode {}
  1093. impl socket {}
  1094. impl file {}