« Tüm yayınlar

64 BFD oturumu FRR bfdd'de tam çekirdek tüketiyor, XDP aynı yükü 0 flapla taşıyor

64 BFD oturumunda FRR bfdd tam çekirdek tüketirken XDP aynı yükü softirq'te 751ns/paket ve 0 flapla taşıyor; üç FRR hatası upstream'e merge edildi.

Bir eBPF geliştiricisi, FRR'nin bfdd sürecini gerçek bir dataplane üzerinden XDP tabanlı bir hızlı yol ile birleştiren çalışmasını 64 BFD oturumuna, dual-stack desteğe, echo moduna ve multihop'a genişletti. 10ms zamanlayıcılarla 64 oturumda bfdd tek çekirdekli event loop'u tamamen doyuruyor ve saniyede yaklaşık 7000 paketlik yükü karşılamak için bir çekirdeğin tamamını harcıyor; XDP tarafı ise aynı yükü softirq içinde paket başına ortalama 751ns ile, iki ailede de sıfır flap ve 30ms tespit bütçesine karşı 14.5ms maksimum TX boşluğuyla taşıyor.

Echo modu, XDP'nin paket üretemeyen doğasıyla çatıştığı için orijinasyon userspace'e, yansıtma ise tamamen XDP'ye bölündü; bu ayrım host'ta ip_forward kapalıyken bile echo katılımını mümkün kılıyor. Multihop desteği GTSM kontrolünü oturum aramasından önce parser'a taşıyarak tek karşılaştırmayla hem tek-hop hem çok-hop davranışını koruyor.

Çalışma sırasında FRR'nin dataplane yolunda üç hata upstream'e taşındı ve merge edildi: yanlış connect() addrlen boyutu, kayıt patlamalarını sessizce kesen 8KB çıkış tamponu ve offload edilen oturumlarda hiç müzakere edilmeyen echo aralığı. Yazar ayrıca strace ile ölçüm yapmanın syscall'a bağımlı bir daemon'da 2-3 kat yanıltıcı sonuç verdiğini, flap sayısının 64 oturumda anlamlı bir metrik olmadığını ve tüm sayıların hâlâ sanal makinelerden geldiğini, bare-metal doğrulamanın beklendiğini not ediyor.

Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz