byteflow – Telegram
byteflow
207 subscribers
46 photos
1 video
13 files
295 links
Master of none ( shitposting, some nets, foss, hardware, random links).
questions/hate @Unkledolan
Download Telegram
clicknp.pdf
2.3 MB
Пока топовые клауд компании заносят интеграторам, в MS создали DSL и тулчейн для быстрой разработки VNF и прочего SDN на FPGA.
 ABSTRACT
This paper presents P4FPGA, a new tool for developing and
evaluating data plane applications. P4FPGA is an open-source
compiler and runtime. The compiler extends the P4.org reference
compiler with a custom backend that generates FPGA
code. P4FPGA supports different architecture configurations,
depending on the needs of the particular application.
We have benchmarked several representative P4 programs,
and our experiments show that code generated by P4FPGA
runs at line-rate at all packet sizes with latencies comparable
to commercial ASICs. By combining high-level programming
abstractions offered by P4 with a flexible and powerful hardware
target, P4FPGA allows developers to rapidly prototype
and deploy new data plane applications.
Если у вас дома жарко, и вы считаете, что dpdk это удел байточеляди; посмотрите на YANFF https://github.com/intel-go/yanff
you have opinions on SDN, NFV, and whatever other acronyms telcos are using to describe a shell noscript these days
you have tried to design a continuous dynamical system for routing, and got it wrong at least twice
 The example noscript filter_hyperscan.lua demonstrates the basics of Hyperscan and our wrapper API. It receives packets from a port, filters them, and forwards them to a port dropping all packets that match filters given in a file. Moreover, it can generate test traffic by replaying a pcap file on a different port
 local pktLib = require "packet"
local ffi = require "ffi"
local eth = require "proto.ethernet"
local ip = require "proto.ip4"

-- Checks if a UDP packet's payload begins with "EXAMPLE".
-- You can do arbitrary complex stuff here, e.g., attach a DPI library like nDPI.
return function(pkt)
local udpPkt = pktLib.getUdp4Packet(pkt)
if udpPkt.eth:getType() == eth.TYPE_IP
and udpPkt.ip4:getProtocol() == ip.PROTO_UDP then
local data = ffi.string(udpPkt.payload.uint8, #"EXAMPLE")
return data == "EXAMPLE"
end
return false
end