Index: head/net/Makefile =================================================================== --- head/net/Makefile (revision 448751) +++ head/net/Makefile (revision 448752) @@ -1,1479 +1,1480 @@ # $FreeBSD$ # COMMENT = Networking tools SUBDIR += 3proxy SUBDIR += 44bsd-rdist SUBDIR += 6tunnel SUBDIR += GeoIP SUBDIR += R-cran-twitteR SUBDIR += Sockets SUBDIR += activemq SUBDIR += adasockets SUBDIR += afpfs-ng SUBDIR += aget SUBDIR += anet SUBDIR += aoe SUBDIR += apinger SUBDIR += appkonference SUBDIR += aprsc SUBDIR += arp-scan SUBDIR += arp-sk SUBDIR += arpdig SUBDIR += arping SUBDIR += arprelease SUBDIR += asio SUBDIR += aslookup SUBDIR += asterisk-chan_sccp SUBDIR += asterisk-g72x SUBDIR += asterisk11 SUBDIR += asterisk13 SUBDIR += avahi SUBDIR += avahi-app SUBDIR += avahi-autoipd SUBDIR += avahi-gtk SUBDIR += avahi-gtk3 SUBDIR += avahi-header SUBDIR += avahi-libdns SUBDIR += avahi-qt4 SUBDIR += avahi-sharp SUBDIR += axa SUBDIR += babeld SUBDIR += balance SUBDIR += bctoolbox SUBDIR += beacon SUBDIR += beanstalkd SUBDIR += belle-sip SUBDIR += bindtest SUBDIR += binkd SUBDIR += bird SUBDIR += bird-devel SUBDIR += bird6 SUBDIR += bittwist SUBDIR += bluemix-cli SUBDIR += bmon SUBDIR += bnxt-kmod SUBDIR += boclient SUBDIR += boinc-client SUBDIR += boinc_curses SUBDIR += bounce SUBDIR += bsdec2-image-upload SUBDIR += bsdproxy SUBDIR += bsdrcmds SUBDIR += bwi-firmware-kmod SUBDIR += bwn-firmware-kmod SUBDIR += bwping SUBDIR += c3270 SUBDIR += cagibi SUBDIR += ccxstream SUBDIR += ceph-devel SUBDIR += cf SUBDIR += chrony SUBDIR += citrix_ica SUBDIR += cjdns SUBDIR += cloud-init SUBDIR += cloud-init-azure SUBDIR += clusterit SUBDIR += cnd SUBDIR += coda6_client SUBDIR += coda6_server SUBDIR += concourse-fly SUBDIR += corkscrew SUBDIR += corosync SUBDIR += courier-authlib-ldap SUBDIR += crtmpserver SUBDIR += cryptcat SUBDIR += csocks SUBDIR += csync2 SUBDIR += ctrace SUBDIR += cvsup-static SUBDIR += cvsync SUBDIR += czmq SUBDIR += daemonlogger SUBDIR += dante SUBDIR += daq SUBDIR += datapipe SUBDIR += dbeacon SUBDIR += delegate SUBDIR += dgd SUBDIR += dgd-kernel SUBDIR += dgd-lpmud SUBDIR += dhcp6 SUBDIR += dhcpcd SUBDIR += dhcpd SUBDIR += dhcpd-pools SUBDIR += dhcpdump SUBDIR += dhcperf SUBDIR += dhcping SUBDIR += dhcprelay SUBDIR += dhcprelya SUBDIR += dictd SUBDIR += dictd-database SUBDIR += dimes SUBDIR += dpdk SUBDIR += dpinger SUBDIR += drawterm SUBDIR += drive SUBDIR += dropbox-api-command SUBDIR += dropbox-uploader SUBDIR += dshell SUBDIR += dtcp SUBDIR += dtcpclient SUBDIR += dual-dhclient SUBDIR += e169-stats SUBDIR += easysoap SUBDIR += echoping SUBDIR += elixir-kafka_ex SUBDIR += elixir-oauth2 SUBDIR += empty SUBDIR += enet SUBDIR += erlang-ranch SUBDIR += erlang-xmlrpc SUBDIR += etrace SUBDIR += exabgp SUBDIR += exaddos SUBDIR += fb SUBDIR += findmtu SUBDIR += flowgrep SUBDIR += fonulator SUBDIR += foreman-proxy SUBDIR += fpc-ldap SUBDIR += fpc-pcap SUBDIR += fping SUBDIR += freebsd-tftp SUBDIR += freebsd-uucp SUBDIR += freediameter SUBDIR += freenet6 SUBDIR += freeradius-client SUBDIR += freeradius3 SUBDIR += freerdp SUBDIR += freerdp1 SUBDIR += freeswitch SUBDIR += freevrrpd SUBDIR += frr SUBDIR += fspclient SUBDIR += fspd SUBDIR += fsplib SUBDIR += g2ipmsg SUBDIR += gdrive SUBDIR += geoclue SUBDIR += geocode-glib SUBDIR += geoipupdate SUBDIR += get_iplayer SUBDIR += gfbgraph SUBDIR += gini SUBDIR += gkrellmwireless2 SUBDIR += glflow SUBDIR += glib-networking SUBDIR += glusterfs SUBDIR += gnatsd SUBDIR += gnet2 SUBDIR += gnetcat SUBDIR += gnome-nettool SUBDIR += gnome-online-accounts SUBDIR += gnome-online-miners SUBDIR += gnu-dico SUBDIR += gnu-radius SUBDIR += go-amqp SUBDIR += go-bapu SUBDIR += go-cs SUBDIR += go-geoip SUBDIR += go-httppath SUBDIR += go-httptreemux SUBDIR += go-nats SUBDIR += go.net SUBDIR += gofish SUBDIR += gogoc SUBDIR += google-cloud-sdk SUBDIR += google-daemon SUBDIR += google-startup-scripts SUBDIR += googlecl SUBDIR += gopher SUBDIR += gotthard SUBDIR += gq SUBDIR += grdesktop SUBDIR += grilo SUBDIR += grilo-plugins SUBDIR += grilo-plugins2 SUBDIR += grilo2 SUBDIR += grive SUBDIR += grive2 SUBDIR += grsync SUBDIR += gsk SUBDIR += gspoof SUBDIR += gssdp SUBDIR += gstreamer-plugins-libmms SUBDIR += gstreamer1-plugins-libmms SUBDIR += gstreamer1-plugins-srtp SUBDIR += gtic SUBDIR += gtk-vnc SUBDIR += gtknetcat SUBDIR += guacamole-server SUBDIR += gupnp SUBDIR += gupnp-av SUBDIR += gupnp-dlna SUBDIR += gupnp-igd SUBDIR += gupnp-ui SUBDIR += gutenfetch SUBDIR += gwhois SUBDIR += h323plus SUBDIR += hanstunnel SUBDIR += haproxy SUBDIR += haproxy-devel SUBDIR += hexinject SUBDIR += hidentd SUBDIR += hinfo SUBDIR += hlmaster SUBDIR += honeyd SUBDIR += hostapd SUBDIR += howl SUBDIR += hping SUBDIR += hping-devel SUBDIR += hs-aws SUBDIR += hs-connection SUBDIR += hs-gsasl SUBDIR += hs-hoauth2 SUBDIR += hs-hostname SUBDIR += hs-iproute SUBDIR += hs-maccatcher SUBDIR += hs-network SUBDIR += hs-network-info SUBDIR += hs-network-multicast SUBDIR += hs-network-protocol-xmpp SUBDIR += hs-network-uri SUBDIR += hs-pcap SUBDIR += hs-publicsuffixlist SUBDIR += hs-sendfile SUBDIR += hs-simple-sendfile SUBDIR += hs-socks SUBDIR += hsflowd SUBDIR += htpdate SUBDIR += http_ping SUBDIR += httping SUBDIR += httpry SUBDIR += hupnp SUBDIR += iaxmodem SUBDIR += icmpinfo SUBDIR += icpld SUBDIR += ifdepd SUBDIR += iffinder SUBDIR += ifstat SUBDIR += ifstated SUBDIR += igmpproxy SUBDIR += iipsrv SUBDIR += ilbc SUBDIR += imapproxy SUBDIR += intel-em-kmod SUBDIR += intel-ixl-kmod SUBDIR += iodine SUBDIR += ip2location SUBDIR += ip6_int SUBDIR += ipdecap SUBDIR += ipgrab SUBDIR += iplog SUBDIR += ipsorc SUBDIR += ipsumdump SUBDIR += ipsvd SUBDIR += ipxe SUBDIR += irrd SUBDIR += isboot-kmod SUBDIR += isc-dhcp43-client SUBDIR += isc-dhcp43-relay SUBDIR += isc-dhcp43-server SUBDIR += istgt SUBDIR += jags SUBDIR += jakarta-commons-net SUBDIR += java-beepcore SUBDIR += jcifs SUBDIR += jgroups SUBDIR += jicmp SUBDIR += jicmp6 SUBDIR += jrdesktop SUBDIR += jsch SUBDIR += jumpgate SUBDIR += jwhois SUBDIR += kafkacat SUBDIR += kamailio SUBDIR += kdenetwork4 SUBDIR += kdenetwork4-filesharing SUBDIR += kdenetwork4-strigi-analyzers SUBDIR += kea SUBDIR += kf5-kxmlrpcclient SUBDIR += kget SUBDIR += kio-upnp-ms SUBDIR += kippo SUBDIR += kissd SUBDIR += knc SUBDIR += knemo-kde4 SUBDIR += krdc SUBDIR += krfb SUBDIR += kwooty SUBDIR += l2tpd SUBDIR += l4ip SUBDIR += ladvd SUBDIR += lambdamoo SUBDIR += latd SUBDIR += ldap-stats SUBDIR += ldap2dns SUBDIR += ldapbrowser SUBDIR += ldapdiff SUBDIR += ldapscripts SUBDIR += ldapsdk SUBDIR += ldapsh SUBDIR += lft SUBDIR += libarms SUBDIR += libbgpdump SUBDIR += libcapn SUBDIR += libcmis SUBDIR += libdmapsharing SUBDIR += libdnet SUBDIR += libexosip2 SUBDIR += libfb SUBDIR += libfixbuf SUBDIR += libgnetwork SUBDIR += libgweather SUBDIR += libilbc SUBDIR += libkfbapi SUBDIR += libkvkontakte SUBDIR += libmaia SUBDIR += libmateweather SUBDIR += libmaxminddb SUBDIR += libmdf SUBDIR += libmediawiki SUBDIR += libmms SUBDIR += libmxp SUBDIR += libnatpmp SUBDIR += libnet SUBDIR += libnetdude SUBDIR += libnfs SUBDIR += libnids SUBDIR += libnss-cache SUBDIR += libnss-mysql SUBDIR += libnss-pgsql SUBDIR += liboauth SUBDIR += libopennet SUBDIR += liboping SUBDIR += libosip2 SUBDIR += libp0f SUBDIR += libpcap SUBDIR += libpcapnav SUBDIR += libproxy SUBDIR += libproxy-gnome SUBDIR += libproxy-gnome3 SUBDIR += libproxy-kde SUBDIR += libproxy-mozjs SUBDIR += libproxy-perl SUBDIR += libproxy-python SUBDIR += libproxy-webkit SUBDIR += librdkafka SUBDIR += librouteros SUBDIR += librsync2 SUBDIR += libsocket++ SUBDIR += libsocketcpp SUBDIR += libsrtp SUBDIR += libtnl SUBDIR += libtrace SUBDIR += libunp SUBDIR += libutp SUBDIR += libvncserver SUBDIR += libwebsockets SUBDIR += libzapojit SUBDIR += libzmq2 SUBDIR += libzmq3 SUBDIR += libzmq4 SUBDIR += liferea SUBDIR += linknx SUBDIR += linphone SUBDIR += linux-c6-avahi-libs SUBDIR += linux-c6-openldap SUBDIR += linux-c6-tcp_wrappers-libs SUBDIR += linux-c7-avahi-libs SUBDIR += linux-c7-openldap SUBDIR += linux-c7-tcp_wrappers-libs SUBDIR += linuxigd SUBDIR += liveMedia SUBDIR += lla SUBDIR += ltm SUBDIR += lualdap SUBDIR += luasocket SUBDIR += luasocket-51 SUBDIR += lvwimax SUBDIR += mDNSResponder SUBDIR += macchanger SUBDIR += mad_fcl SUBDIR += madonctl SUBDIR += malo-firmware-kmod SUBDIR += mdns-repeater SUBDIR += mediastreamer SUBDIR += mediatomb SUBDIR += megatools SUBDIR += mgen SUBDIR += micro_inetd SUBDIR += micro_proxy SUBDIR += minidlna SUBDIR += minisapserver SUBDIR += minissdpd SUBDIR += miniupnpc SUBDIR += miniupnpd SUBDIR += miredo SUBDIR += miruo SUBDIR += mlvpn SUBDIR += mobile-broadband-provider-info SUBDIR += mono-zeroconf SUBDIR += mopd SUBDIR += morebalance SUBDIR += mosh SUBDIR += mosquitto SUBDIR += motsognir SUBDIR += mpd-l2tp-ipv6pd-client SUBDIR += mpd5 SUBDIR += mpich SUBDIR += mpich2 SUBDIR += mping SUBDIR += mrouted SUBDIR += msend SUBDIR += mtr SUBDIR += mtr-nox11 SUBDIR += multicat SUBDIR += nakenchat SUBDIR += nanomsg SUBDIR += nast SUBDIR += nats-streaming-server SUBDIR += nats-top SUBDIR += nbd-server SUBDIR += nc SUBDIR += ncp SUBDIR += ndisc6 SUBDIR += ndpi SUBDIR += ndproxy SUBDIR += nepenthes SUBDIR += nepim SUBDIR += net6 SUBDIR += netatalk SUBDIR += netatalk3 SUBDIR += netcat SUBDIR += netdude SUBDIR += netembryo SUBDIR += nethogs SUBDIR += netmap SUBDIR += netpipes SUBDIR += netscript SUBDIR += netsed SUBDIR += netselect SUBDIR += netstrain SUBDIR += nettest SUBDIR += netwib SUBDIR += neubot SUBDIR += nfsshell SUBDIR += ng_mikrotik_eoip SUBDIR += ngrep SUBDIR += nifmon SUBDIR += nload SUBDIR += nmsg SUBDIR += nocatsplash SUBDIR += norm SUBDIR += nph SUBDIR += ns3 SUBDIR += nsq SUBDIR += nss-pam-ldapd SUBDIR += nss-pam-ldapd-sasl SUBDIR += nss_ldap SUBDIR += nsscache SUBDIR += ntimed SUBDIR += ntlmaps SUBDIR += ntop SUBDIR += ntopng SUBDIR += ntp SUBDIR += ntp-devel SUBDIR += ntpa SUBDIR += ntraceroute SUBDIR += nusoap SUBDIR += nxproxy SUBDIR += nyancat SUBDIR += nylon SUBDIR += ocserv SUBDIR += ohphone SUBDIR += olsrd SUBDIR += omnitty SUBDIR += onenetd SUBDIR += onioncat SUBDIR += opal SUBDIR += open-isns SUBDIR += openafs SUBDIR += openbgpd SUBDIR += openbsc SUBDIR += openggsn SUBDIR += openh323 SUBDIR += openldap24-client SUBDIR += openldap24-sasl-client SUBDIR += openldap24-server SUBDIR += openmpi SUBDIR += openmpi2 SUBDIR += openmq SUBDIR += openmq-client SUBDIR += openntpd SUBDIR += opennx SUBDIR += openpgm SUBDIR += openradius SUBDIR += opensips SUBDIR += openslp SUBDIR += opentracker SUBDIR += openvswitch SUBDIR += ortp SUBDIR += osrtspproxy SUBDIR += ossp-sa SUBDIR += ostinato SUBDIR += owamp SUBDIR += p5-Acme-HTTP SUBDIR += p5-AddressBook SUBDIR += p5-Amazon-SQS-Simple SUBDIR += p5-AnyEvent-MPRPC SUBDIR += p5-AnyEvent-MQTT SUBDIR += p5-AnyEvent-RabbitMQ SUBDIR += p5-AnyEvent-Twitter SUBDIR += p5-AnyEvent-Twitter-Stream SUBDIR += p5-AnyMQ-AMQP SUBDIR += p5-Apache2-SOAP SUBDIR += p5-BBS-Client SUBDIR += p5-BBS-UserInfo SUBDIR += p5-BBS-UserInfo-Maple3 SUBDIR += p5-BBS-UserInfo-Maple3itoc SUBDIR += p5-BBS-UserInfo-Ptt SUBDIR += p5-BBS-UserInfo-SOB SUBDIR += p5-BBS-UserInfo-Wretch SUBDIR += p5-Beanstalk-Client SUBDIR += p5-Cisco-IPPhone SUBDIR += p5-Crypt-DH-GMP SUBDIR += p5-Daemon-Generic SUBDIR += p5-Data-IPV4-Range-Parse SUBDIR += p5-EasyTCP SUBDIR += p5-Event-tcp SUBDIR += p5-File-Rsync SUBDIR += p5-File-RsyncP SUBDIR += p5-Filesys-SmbClient SUBDIR += p5-Frontier-RPC SUBDIR += p5-Geo-IP SUBDIR += p5-Geo-IP-PurePerl SUBDIR += p5-Geo-IPfree SUBDIR += p5-GeoIP2 SUBDIR += p5-Google-SAML-Request SUBDIR += p5-Google-SAML-Response SUBDIR += p5-Growl-GNTP SUBDIR += p5-IO-Interface SUBDIR += p5-IO-Socket-INET6 SUBDIR += p5-IO-Socket-IP SUBDIR += p5-IO-Socket-Multicast SUBDIR += p5-IO-Socket-Multicast6 SUBDIR += p5-IO-Socket-Socks SUBDIR += p5-IO-Socket-Timeout SUBDIR += p5-IO-Socket-UNIX-Util SUBDIR += p5-IP-Anonymous SUBDIR += p5-IP-Country SUBDIR += p5-IPC-Session SUBDIR += p5-JavaScript-RPC SUBDIR += p5-Kafka SUBDIR += p5-MaxMind-DB-Common SUBDIR += p5-MaxMind-DB-Reader SUBDIR += p5-MaxMind-DB-Writer SUBDIR += p5-Net SUBDIR += p5-Net-AMQP SUBDIR += p5-Net-AMQP-RabbitMQ SUBDIR += p5-Net-APNS SUBDIR += p5-Net-APNs-Extended SUBDIR += p5-Net-ARP SUBDIR += p5-Net-Address-Ethernet SUBDIR += p5-Net-Address-IPv4-Local SUBDIR += p5-Net-Amazon SUBDIR += p5-Net-Amazon-AWSSign SUBDIR += p5-Net-Amazon-EC2 SUBDIR += p5-Net-Amazon-MechanicalTurk SUBDIR += p5-Net-Amazon-S3 SUBDIR += p5-Net-Amazon-Signature SUBDIR += p5-Net-Amazon-Signature-V3 SUBDIR += p5-Net-Amazon-Signature-V4 SUBDIR += p5-Net-Amazon-Thumbnail SUBDIR += p5-Net-Analysis SUBDIR += p5-Net-Appliance-Phrasebook SUBDIR += p5-Net-Appliance-Session SUBDIR += p5-Net-BGP SUBDIR += p5-Net-Blogger SUBDIR += p5-Net-CIDR-Lite SUBDIR += p5-Net-CIDR-MobileJP SUBDIR += p5-Net-CIDR-Set SUBDIR += p5-Net-CLI-Interact SUBDIR += p5-Net-CSTA SUBDIR += p5-Net-CascadeCopy SUBDIR += p5-Net-Cassandra SUBDIR += p5-Net-Cassandra-Easy SUBDIR += p5-Net-DAV-Server SUBDIR += p5-Net-DHCP SUBDIR += p5-Net-DHCP-Watch SUBDIR += p5-Net-DHCPClient SUBDIR += p5-Net-DLookup SUBDIR += p5-Net-Daemon SUBDIR += p5-Net-Delicious SUBDIR += p5-Net-Dict SUBDIR += p5-Net-Divert SUBDIR += p5-Net-Dropbox-API SUBDIR += p5-Net-EPP SUBDIR += p5-Net-EPP-Proxy SUBDIR += p5-Net-FS-Flickr SUBDIR += p5-Net-FS-Gmail SUBDIR += p5-Net-FTP-AutoReconnect SUBDIR += p5-Net-FTP-File SUBDIR += p5-Net-Finger SUBDIR += p5-Net-Flow SUBDIR += p5-Net-Frame SUBDIR += p5-Net-Frame-Device SUBDIR += p5-Net-Frame-Dump SUBDIR += p5-Net-Frame-Layer-ICMPv6 SUBDIR += p5-Net-Frame-Layer-IPv6 SUBDIR += p5-Net-Frame-Simple SUBDIR += p5-Net-GitHub SUBDIR += p5-Net-Gnats SUBDIR += p5-Net-Google SUBDIR += p5-Net-Google-Analytics SUBDIR += p5-Net-Google-AuthSub SUBDIR += p5-Net-Google-Calendar SUBDIR += p5-Net-Google-Code SUBDIR += p5-Net-Google-DataAPI SUBDIR += p5-Net-Google-PicasaWeb SUBDIR += p5-Net-Google-SafeBrowsing2 SUBDIR += p5-Net-Google-Spreadsheets SUBDIR += p5-Net-Growl SUBDIR += p5-Net-GrowlClient SUBDIR += p5-Net-HL7 SUBDIR += p5-Net-HTTP SUBDIR += p5-Net-HTTP-Spore SUBDIR += p5-Net-HTTP-Spore-Middleware-Header SUBDIR += p5-Net-HTTPS-Any SUBDIR += p5-Net-HTTPS-NB SUBDIR += p5-Net-Hiveminder SUBDIR += p5-Net-INET6Glue SUBDIR += p5-Net-IP-Minimal SUBDIR += p5-Net-IP-RangeCompare SUBDIR += p5-Net-IPTrie SUBDIR += p5-Net-IRR SUBDIR += p5-Net-Ident SUBDIR += p5-Net-Ifconfig-Wrapper SUBDIR += p5-Net-Interface SUBDIR += p5-Net-Jaiku SUBDIR += p5-Net-Jifty SUBDIR += p5-Net-LDAP-AutoDNs SUBDIR += p5-Net-LDAP-AutoServer SUBDIR += p5-Net-LDAP-Express SUBDIR += p5-Net-LDAP-FilterBuilder SUBDIR += p5-Net-LDAP-LDAPhash SUBDIR += p5-Net-LDAP-Makepath SUBDIR += p5-Net-LDAP-Server SUBDIR += p5-Net-LDAP-Server-Test SUBDIR += p5-Net-LDAP-posixAccount SUBDIR += p5-Net-LDAP-posixGroup SUBDIR += p5-Net-Libdnet SUBDIR += p5-Net-Libdnet6 SUBDIR += p5-Net-LimeLight-Purge SUBDIR += p5-Net-MAC SUBDIR += p5-Net-MAC-Vendor SUBDIR += p5-Net-MQTT SUBDIR += p5-Net-Mosso-CloudFiles SUBDIR += p5-Net-MovableType SUBDIR += p5-Net-NBName SUBDIR += p5-Net-NBsocket SUBDIR += p5-Net-NIS SUBDIR += p5-Net-NIS-Listgroup SUBDIR += p5-Net-NTP SUBDIR += p5-Net-Nessus-XMLRPC SUBDIR += p5-Net-Nmsg SUBDIR += p5-Net-OAuth SUBDIR += p5-Net-OAuth-Simple SUBDIR += p5-Net-OAuth2 SUBDIR += p5-Net-OpenID-Consumer SUBDIR += p5-Net-OpenSSH SUBDIR += p5-Net-OpenSSH-Parallel SUBDIR += p5-Net-OpenStack-Attack SUBDIR += p5-Net-Packet SUBDIR += p5-Net-Packet-Target SUBDIR += p5-Net-ParseWhois SUBDIR += p5-Net-Patricia SUBDIR += p5-Net-Pcap SUBDIR += p5-Net-PcapUtils SUBDIR += p5-Net-Ping-External SUBDIR += p5-Net-Proxy SUBDIR += p5-Net-PubSubHubbub-Publisher SUBDIR += p5-Net-RTP SUBDIR += p5-Net-RabbitFoot SUBDIR += p5-Net-RabbitMQ SUBDIR += p5-Net-Radius SUBDIR += p5-Net-Random SUBDIR += p5-Net-RawIP SUBDIR += p5-Net-RawSock SUBDIR += p5-Net-Rendezvous-Publish SUBDIR += p5-Net-Riak SUBDIR += p5-Net-Rsh SUBDIR += p5-Net-SAP SUBDIR += p5-Net-SCP SUBDIR += p5-Net-SCP-Expect SUBDIR += p5-Net-SDP SUBDIR += p5-Net-SFTP SUBDIR += p5-Net-SFTP-Foreign SUBDIR += p5-Net-SIP SUBDIR += p5-Net-SMPP SUBDIR += p5-Net-SMS-Clickatell SUBDIR += p5-Net-SMS-Mollie SUBDIR += p5-Net-SMS-PChome SUBDIR += p5-Net-SNPP SUBDIR += p5-Net-SPDY SUBDIR += p5-Net-SSH SUBDIR += p5-Net-SSH-Expect SUBDIR += p5-Net-SSH-Mechanize SUBDIR += p5-Net-SSH-Perl SUBDIR += p5-Net-SSH2 SUBDIR += p5-Net-STOMP-Client SUBDIR += p5-Net-Server SUBDIR += p5-Net-Server-Coro SUBDIR += p5-Net-Server-SS-PreFork SUBDIR += p5-Net-Subnet SUBDIR += p5-Net-Syslog SUBDIR += p5-Net-TCLink SUBDIR += p5-Net-TacacsPlus SUBDIR += p5-Net-TcpDumpLog SUBDIR += p5-Net-Telnet SUBDIR += p5-Net-Telnet-Netscreen SUBDIR += p5-Net-TiVo SUBDIR += p5-Net-Todoist SUBDIR += p5-Net-Traceroute SUBDIR += p5-Net-Traceroute-PurePerl SUBDIR += p5-Net-Traceroute6 SUBDIR += p5-Net-Trackback SUBDIR += p5-Net-Twitter SUBDIR += p5-Net-Twitter-Lite SUBDIR += p5-Net-VNC SUBDIR += p5-Net-Wake SUBDIR += p5-Net-WhitePages SUBDIR += p5-Net-Whois SUBDIR += p5-Net-Whois-ARIN SUBDIR += p5-Net-Whois-IP SUBDIR += p5-Net-Whois-RIPE SUBDIR += p5-Net-Whois-Raw SUBDIR += p5-Net-Works SUBDIR += p5-Net-Write SUBDIR += p5-Net-XWhois SUBDIR += p5-Net-Yadis SUBDIR += p5-Net-Z3950-SimpleServer SUBDIR += p5-Net-Z3950-ZOOM SUBDIR += p5-Net-ext SUBDIR += p5-Net-sFlow SUBDIR += p5-Net-uFTP SUBDIR += p5-NetAddr-IP-Count SUBDIR += p5-NetAddr-MAC SUBDIR += p5-NetPacket SUBDIR += p5-OAI-Harvester SUBDIR += p5-OurNet-BBS SUBDIR += p5-OurNet-BBSAgent SUBDIR += p5-POE-Component-Client-Ident SUBDIR += p5-POE-Component-Client-Keepalive SUBDIR += p5-POE-Component-Client-Ping SUBDIR += p5-POE-Component-Client-Telnet SUBDIR += p5-POE-Component-Client-Traceroute SUBDIR += p5-POE-Component-Client-Twitter SUBDIR += p5-POE-Component-Client-Whois SUBDIR += p5-POE-Component-ControlPort SUBDIR += p5-POE-Component-Generic SUBDIR += p5-POE-Component-Jabber SUBDIR += p5-POE-Component-Pcap SUBDIR += p5-POE-Component-PubSub SUBDIR += p5-POE-Component-Server-Twirc SUBDIR += p5-POEx-Role-TCPServer SUBDIR += p5-POSIX-Socket SUBDIR += p5-POSIX-getpeername SUBDIR += p5-Parallel-Pvm SUBDIR += p5-Phone-Info SUBDIR += p5-PlRPC SUBDIR += p5-Queue-Beanstalk SUBDIR += p5-REST-Application SUBDIR += p5-REST-Google SUBDIR += p5-RPC-EPC-Service SUBDIR += p5-RPC-Simple SUBDIR += p5-RPC-XML SUBDIR += p5-ResourcePool-Resource-Net-LDAP SUBDIR += p5-ResourcePool-Resource-SOAP-Lite SUBDIR += p5-Rose-URI SUBDIR += p5-S3 SUBDIR += p5-SOAP SUBDIR += p5-SOAP-Amazon-S3 SUBDIR += p5-SOAP-Data-Builder SUBDIR += p5-SOAP-Lite SUBDIR += p5-SOAP-MySOAP SUBDIR += p5-SOAP-XML-Client SUBDIR += p5-Samba-LDAP SUBDIR += p5-Server-Starter SUBDIR += p5-Socket SUBDIR += p5-Socket-Class SUBDIR += p5-Socket-GetAddrInfo SUBDIR += p5-Socket-Multicast6 SUBDIR += p5-Socket6 SUBDIR += p5-Socks SUBDIR += p5-Sort-Key-IPv4 SUBDIR += p5-TFTP SUBDIR += p5-Test-URI SUBDIR += p5-URI SUBDIR += p5-URI-FromHash SUBDIR += p5-URI-Match SUBDIR += p5-URI-Nested SUBDIR += p5-URI-OpenURL SUBDIR += p5-URI-Query SUBDIR += p5-URI-SmartURI SUBDIR += p5-URI-Template SUBDIR += p5-URI-Template-Restrict SUBDIR += p5-URI-db SUBDIR += p5-URI-ws SUBDIR += p5-VM-EC2 SUBDIR += p5-VM-EC2-Security-CredentialCache SUBDIR += p5-Validate-Net SUBDIR += p5-WebService-Dropbox SUBDIR += p5-WebService-Prowl SUBDIR += p5-What SUBDIR += p5-X500-DN SUBDIR += p5-XML-Compile-SOAP SUBDIR += p5-XML-Compile-SOAP-AnyEvent SUBDIR += p5-XML-Compile-SOAP-Daemon SUBDIR += p5-XML-Compile-SOAP-WSA SUBDIR += p5-XML-Compile-WSDL11 SUBDIR += p5-XML-Fast SUBDIR += p5-XML-RPC SUBDIR += p5-XML-RPC-Fast SUBDIR += p5-XMLRPC-Lite SUBDIR += p5-XPC SUBDIR += p5-ZConf SUBDIR += p5-ZConf-Bookmarks SUBDIR += p5-ZeroMQ SUBDIR += p5-ldap2pf SUBDIR += p5-ldap2pw SUBDIR += p5-perl-ldap SUBDIR += p5-srv2pf SUBDIR += pacemaker SUBDIR += packetdrill SUBDIR += packter-agent SUBDIR += panoptis SUBDIR += paris-traceroute SUBDIR += passlogd SUBDIR += pathneck SUBDIR += pbnc SUBDIR += pdb SUBDIR += pear-Auth_RADIUS SUBDIR += pear-File_Bittorrent2 SUBDIR += pear-Horde_Kolab_Server SUBDIR += pear-Horde_Kolab_Session SUBDIR += pear-Horde_Ldap SUBDIR += pear-Horde_Rpc SUBDIR += pear-Horde_Scribe SUBDIR += pear-Horde_Socket_Client SUBDIR += pear-Horde_Url SUBDIR += pear-Net_CDDB SUBDIR += pear-Net_CheckIP SUBDIR += pear-Net_DIME SUBDIR += pear-Net_DNSBL SUBDIR += pear-Net_Dict SUBDIR += pear-Net_Finger SUBDIR += pear-Net_Geo SUBDIR += pear-Net_GeoIP SUBDIR += pear-Net_Growl SUBDIR += pear-Net_IDNA SUBDIR += pear-Net_IPv4 SUBDIR += pear-Net_IPv6 SUBDIR += pear-Net_Ident SUBDIR += pear-Net_LDAP SUBDIR += pear-Net_LDAP2 SUBDIR += pear-Net_MAC SUBDIR += pear-Net_NNTP SUBDIR += pear-Net_Nmap SUBDIR += pear-Net_POP3 SUBDIR += pear-Net_Ping SUBDIR += pear-Net_SMS SUBDIR += pear-Net_SMTP SUBDIR += pear-Net_Server SUBDIR += pear-Net_Sieve SUBDIR += pear-Net_Socket SUBDIR += pear-Net_Traceroute SUBDIR += pear-Net_URL SUBDIR += pear-Net_URL2 SUBDIR += pear-Net_URL_Mapper SUBDIR += pear-Net_UserAgent_Detect SUBDIR += pear-Net_UserAgent_Mobile SUBDIR += pear-Net_Vpopmaild SUBDIR += pear-Net_Whois SUBDIR += pear-SOAP SUBDIR += pear-Services_Pingback SUBDIR += pear-Services_Twitter SUBDIR += pear-URI_Template SUBDIR += pear-XML_RPC SUBDIR += pear-XML_RPC2 SUBDIR += pecl-amqp SUBDIR += pecl-apn SUBDIR += pecl-geoip SUBDIR += pecl-gupnp SUBDIR += pecl-ip2location SUBDIR += pecl-mosquitto SUBDIR += pecl-oauth SUBDIR += pecl-oauth2 SUBDIR += pecl-radius SUBDIR += pecl-smbclient SUBDIR += pecl-yaz SUBDIR += pecl-yp SUBDIR += pecl-zmq SUBDIR += pen SUBDIR += pfinger SUBDIR += phamm SUBDIR += php56-ldap SUBDIR += php56-soap SUBDIR += php56-sockets SUBDIR += php56-xmlrpc SUBDIR += php70-ldap SUBDIR += php70-soap SUBDIR += php70-sockets SUBDIR += php70-xmlrpc SUBDIR += php71-ldap SUBDIR += php71-soap SUBDIR += php71-sockets SUBDIR += php71-xmlrpc SUBDIR += phpldapadmin SUBDIR += pim6-tools SUBDIR += pim6dd SUBDIR += pim6sd SUBDIR += pimd SUBDIR += pimdd SUBDIR += pipsecd SUBDIR += pjsip SUBDIR += pjsip-extsrtp + SUBDIR += pkt-gen SUBDIR += pktanon SUBDIR += pload SUBDIR += plugdaemon SUBDIR += pmf SUBDIR += polyorb SUBDIR += poptop SUBDIR += portfwd SUBDIR += pptpclient SUBDIR += proftpd-mod_ldap SUBDIR += prosearch SUBDIR += proxy-connect SUBDIR += proxy-suite SUBDIR += proxychains SUBDIR += proxychains-ng SUBDIR += prtunnel SUBDIR += ptpd2 SUBDIR += ptunnel SUBDIR += pure-sockets SUBDIR += pvm SUBDIR += pwhois SUBDIR += pxe SUBDIR += pxe-pdhcp SUBDIR += py-GeoIP SUBDIR += py-GeoIP2 SUBDIR += py-amqp SUBDIR += py-amqplib SUBDIR += py-avahi SUBDIR += py-beanstalkc SUBDIR += py-cjdns SUBDIR += py-cloudflare-scrape SUBDIR += py-coherence SUBDIR += py-cymruwhois SUBDIR += py-dpkt SUBDIR += py-dugong SUBDIR += py-ec2-cli-tools SUBDIR += py-eventlet SUBDIR += py-gntp SUBDIR += py-gspread SUBDIR += py-gspreadsheet SUBDIR += py-haproxy-log-analysis SUBDIR += py-httpstat SUBDIR += py-impacket SUBDIR += py-ipaddress SUBDIR += py-iplib SUBDIR += py-kafka-python SUBDIR += py-kombu SUBDIR += py-ldap SUBDIR += py-ldap3 SUBDIR += py-ldaptor SUBDIR += py-libcloud SUBDIR += py-libdnet SUBDIR += py-libnet SUBDIR += py-magic-wormhole SUBDIR += py-matrix-synapse-ldap3 SUBDIR += py-maxminddb SUBDIR += py-miniupnpc SUBDIR += py-msrplib SUBDIR += py-ndg_httpsclient SUBDIR += py-netaddr SUBDIR += py-netif SUBDIR += py-netifaces SUBDIR += py-netlib SUBDIR += py-netstring SUBDIR += py-nnpy SUBDIR += py-ntplib SUBDIR += py-oauth SUBDIR += py-oauth2 SUBDIR += py-paho-mqtt SUBDIR += py-pamqp SUBDIR += py-pcap SUBDIR += py-pcapy SUBDIR += py-pcs SUBDIR += py-port-for SUBDIR += py-pygeoip SUBDIR += py-pyldap SUBDIR += py-pynmsg SUBDIR += py-pynsq SUBDIR += py-pypcap SUBDIR += py-pysendfile SUBDIR += py-pyshark SUBDIR += py-pysmb SUBDIR += py-pysocks SUBDIR += py-pystun SUBDIR += py-python-barbicanclient SUBDIR += py-python-bitcoinrpc SUBDIR += py-python-ceilometerclient SUBDIR += py-python-cinderclient SUBDIR += py-python-cloudfiles SUBDIR += py-python-designateclient SUBDIR += py-python-glanceclient SUBDIR += py-python-heatclient SUBDIR += py-python-keystoneclient SUBDIR += py-python-neutronclient SUBDIR += py-python-novaclient SUBDIR += py-python-ntlm SUBDIR += py-python-openstackclient SUBDIR += py-python-twitter SUBDIR += py-pyvmomi SUBDIR += py-pyzmq SUBDIR += py-qt4-network SUBDIR += py-qt5-network SUBDIR += py-rabbitpy SUBDIR += py-radix SUBDIR += py-raet SUBDIR += py-rainbowstream SUBDIR += py-ripe.atlas.cousteau SUBDIR += py-ripe.atlas.sagan SUBDIR += py-ripe.atlas.tools SUBDIR += py-s3cmd SUBDIR += py-s3transfer SUBDIR += py-smbpasswd SUBDIR += py-soap2py SUBDIR += py-soappy SUBDIR += py-socketio-client SUBDIR += py-speedtest-cli SUBDIR += py-sshuttle SUBDIR += py-stomp.py SUBDIR += py-suds SUBDIR += py-suds-jurko SUBDIR += py-terminado SUBDIR += py-tofu SUBDIR += py-tweepy SUBDIR += py-twistedPair SUBDIR += py-twitter-tools SUBDIR += py-txamqp SUBDIR += py-txrestapi SUBDIR += py-upnp-inspector SUBDIR += py-uritemplate SUBDIR += py-urllib3 SUBDIR += py-wolframalpha SUBDIR += py-xmlrpc SUBDIR += py-zope.proxy SUBDIR += py-zsi SUBDIR += py3-netifaces SUBDIR += py3-pysocks SUBDIR += py3-urllib3 SUBDIR += pygopherd SUBDIR += pynids SUBDIR += pyrad SUBDIR += pythondirector SUBDIR += qadsl SUBDIR += qjsonrpc SUBDIR += qoauth SUBDIR += qoauth-qt5 SUBDIR += qt4-network SUBDIR += qt5-network SUBDIR += qtweetlib SUBDIR += quagga SUBDIR += queso SUBDIR += quiterss SUBDIR += quoted SUBDIR += rabbitmq SUBDIR += rabbitmq-c SUBDIR += rabbitmq-c-devel SUBDIR += radcli SUBDIR += raddump SUBDIR += radiator SUBDIR += radiusclient SUBDIR += radiusd-cistron SUBDIR += radreport SUBDIR += radsecproxy SUBDIR += radvd SUBDIR += raggle SUBDIR += rclone SUBDIR += rdapper SUBDIR += rdesktop SUBDIR += rdist6 SUBDIR += recvnet SUBDIR += redir SUBDIR += relayd SUBDIR += remmina SUBDIR += remmina-plugin-gnome SUBDIR += remmina-plugin-nx SUBDIR += remmina-plugin-rdp SUBDIR += remmina-plugin-telepathy SUBDIR += remmina-plugin-vnc SUBDIR += remmina-plugin-xdmcp SUBDIR += remmina-plugins SUBDIR += remotebox SUBDIR += remotedesk SUBDIR += repeater SUBDIR += reposado SUBDIR += rfbproxy SUBDIR += rinetd SUBDIR += ripe-whois SUBDIR += rp-pppoe SUBDIR += rsplib SUBDIR += rsync SUBDIR += rsync-bpc SUBDIR += rtg SUBDIR += rtpbreak SUBDIR += rtpproxy SUBDIR += rtptools SUBDIR += rubygem-amazon-ec2 SUBDIR += rubygem-amq-protocol SUBDIR += rubygem-amqp SUBDIR += rubygem-amqp-utils SUBDIR += rubygem-aws-s3 SUBDIR += rubygem-aws-ses SUBDIR += rubygem-azure SUBDIR += rubygem-azure-core SUBDIR += rubygem-bunny SUBDIR += rubygem-connection_pool SUBDIR += rubygem-dogapi SUBDIR += rubygem-domain_name SUBDIR += rubygem-dropbox-sdk SUBDIR += rubygem-epp-client-afnic SUBDIR += rubygem-epp-client-base SUBDIR += rubygem-epp-client-rgp SUBDIR += rubygem-epp-client-secdns SUBDIR += rubygem-epp-client-smallregistry SUBDIR += rubygem-fog-aliyun SUBDIR += rubygem-fog-atmos SUBDIR += rubygem-fog-aws SUBDIR += rubygem-fog-aws0 SUBDIR += rubygem-fog-azure SUBDIR += rubygem-fog-brightbox SUBDIR += rubygem-fog-cloudatcost SUBDIR += rubygem-fog-digitalocean SUBDIR += rubygem-fog-dnsimple SUBDIR += rubygem-fog-dynect SUBDIR += rubygem-fog-ecloud SUBDIR += rubygem-fog-google SUBDIR += rubygem-fog-internet-archive SUBDIR += rubygem-fog-joyent SUBDIR += rubygem-fog-local SUBDIR += rubygem-fog-openstack SUBDIR += rubygem-fog-powerdns SUBDIR += rubygem-fog-profitbricks SUBDIR += rubygem-fog-rackspace SUBDIR += rubygem-fog-radosgw SUBDIR += rubygem-fog-riakcs SUBDIR += rubygem-fog-sakuracloud SUBDIR += rubygem-fog-serverlove SUBDIR += rubygem-fog-softlayer SUBDIR += rubygem-fog-storm_on_demand SUBDIR += rubygem-fog-terremark SUBDIR += rubygem-fog-vmfusion SUBDIR += rubygem-fog-voxel SUBDIR += rubygem-fog-vsphere SUBDIR += rubygem-fog-xenserver SUBDIR += rubygem-geoip SUBDIR += rubygem-gitaly SUBDIR += rubygem-gitlab_omniauth-ldap SUBDIR += rubygem-gitlab_omniauth-ldap1 SUBDIR += rubygem-grpc SUBDIR += rubygem-http_parser.rb SUBDIR += rubygem-httpauth SUBDIR += rubygem-ipaddress SUBDIR += rubygem-iproto SUBDIR += rubygem-lita-gems SUBDIR += rubygem-macaddr SUBDIR += rubygem-net-ldap SUBDIR += rubygem-net-netrc SUBDIR += rubygem-net-ping SUBDIR += rubygem-netrc SUBDIR += rubygem-network_interface SUBDIR += rubygem-oauth SUBDIR += rubygem-oauth2 SUBDIR += rubygem-octokit SUBDIR += rubygem-octopress-deploy SUBDIR += rubygem-omniauth-auth0 SUBDIR += rubygem-omniauth-authentiq SUBDIR += rubygem-omniauth-azure-oauth2 SUBDIR += rubygem-omniauth-facebook SUBDIR += rubygem-omniauth-github SUBDIR += rubygem-omniauth-github-discourse SUBDIR += rubygem-omniauth-github11 SUBDIR += rubygem-omniauth-google-oauth2 SUBDIR += rubygem-omniauth-oauth SUBDIR += rubygem-omniauth-oauth2 SUBDIR += rubygem-omniauth-openid SUBDIR += rubygem-omniauth-twitter SUBDIR += rubygem-open-uri-cached SUBDIR += rubygem-opennebula SUBDIR += rubygem-packetfu SUBDIR += rubygem-pcaprub SUBDIR += rubygem-proxifier SUBDIR += rubygem-qiniu SUBDIR += rubygem-rabbiter SUBDIR += rubygem-rbvmomi SUBDIR += rubygem-right_aws SUBDIR += rubygem-right_flexiscale SUBDIR += rubygem-right_gogrid SUBDIR += rubygem-right_http_connection SUBDIR += rubygem-right_slicehost SUBDIR += rubygem-rsync SUBDIR += rubygem-ruby-growl SUBDIR += rubygem-ruby-openid SUBDIR += rubygem-ruby-yadis SUBDIR += rubygem-ruby_smb SUBDIR += rubygem-rubyntlm SUBDIR += rubygem-rubyntlm05 SUBDIR += rubygem-rubytter SUBDIR += rubygem-rudy SUBDIR += rubygem-rye SUBDIR += rubygem-simple_oauth SUBDIR += rubygem-stompserver SUBDIR += rubygem-t SUBDIR += rubygem-tweetstream SUBDIR += rubygem-twitter SUBDIR += rubygem-twitter-stream SUBDIR += rubygem-twitter4r SUBDIR += rubygem-u2f SUBDIR += rubygem-u2f0 SUBDIR += rubygem-uri-redis SUBDIR += rubygem-whois SUBDIR += rubygem-xmlrpc SUBDIR += rude SUBDIR += s3ql SUBDIR += samba44 SUBDIR += samba45 SUBDIR += samba46 SUBDIR += samplicator SUBDIR += sbd SUBDIR += sbm SUBDIR += scamper SUBDIR += scapy SUBDIR += scnc SUBDIR += scr_ipfm SUBDIR += scribe SUBDIR += sdl2_net SUBDIR += sdl_net SUBDIR += seda SUBDIR += self-service-password SUBDIR += sendemail SUBDIR += sendsms SUBDIR += sendsnpp SUBDIR += serveez SUBDIR += serviio SUBDIR += sflowtool SUBDIR += shadowsocks-libev SUBDIR += shelldap SUBDIR += shmux SUBDIR += sie-nmsg SUBDIR += simpleproxy SUBDIR += sip_scenario SUBDIR += sippy_b2bua SUBDIR += siproxd SUBDIR += sipsak SUBDIR += skstream SUBDIR += sl2tps SUBDIR += slurm SUBDIR += smb4k-kde4 SUBDIR += smbldap-tools SUBDIR += smcroute SUBDIR += smm++ SUBDIR += sngrep SUBDIR += sniffit SUBDIR += sntop SUBDIR += sobby SUBDIR += socat SUBDIR += sock SUBDIR += socketbind SUBDIR += socketpipe SUBDIR += socketw SUBDIR += sofia-sip SUBDIR += spideroak SUBDIR += splatd SUBDIR += spoofer SUBDIR += spread SUBDIR += spread-j SUBDIR += spread4 SUBDIR += sqtop SUBDIR += srelay SUBDIR += ss5 SUBDIR += sshping SUBDIR += ssldump SUBDIR += sslh SUBDIR += ssltunnel-client SUBDIR += ssltunnel-server SUBDIR += ssmping SUBDIR += ssspl SUBDIR += ssvnc SUBDIR += stf-6rd-kmod SUBDIR += stone SUBDIR += stund SUBDIR += subnetcalc SUBDIR += suckblow SUBDIR += sup SUBDIR += svnup SUBDIR += syncthing SUBDIR += syncthing-cli SUBDIR += syncthing-discosrv SUBDIR += syncthing-inotify SUBDIR += tableutil SUBDIR += tac_plus4 SUBDIR += tapidbus SUBDIR += tayga SUBDIR += tclsoap SUBDIR += tcludp SUBDIR += tcpcat SUBDIR += tcpdstat SUBDIR += tcpdump SUBDIR += tcpflow SUBDIR += tcpick SUBDIR += tcpillust SUBDIR += tcping SUBDIR += tcpkali SUBDIR += tcpmssd SUBDIR += tcpproxy SUBDIR += tcpreen SUBDIR += tcpsg SUBDIR += tcpshow SUBDIR += tcpslice SUBDIR += tcpsplit SUBDIR += tcpstat SUBDIR += tcptestsuite SUBDIR += tcptrace SUBDIR += tcptraceroute SUBDIR += tcptraceroute-devel SUBDIR += tcpview SUBDIR += tcpwatch SUBDIR += tcpxd SUBDIR += tcpxtract SUBDIR += tdetect SUBDIR += tftpgrab SUBDIR += thcrut SUBDIR += throttled SUBDIR += tigervnc SUBDIR += tigervnc-devel SUBDIR += tightvnc SUBDIR += tintin++ SUBDIR += tiny-network-utilities SUBDIR += tinyfugue SUBDIR += tinyldap SUBDIR += tn5250 SUBDIR += tn5250j SUBDIR += toonel SUBDIR += torsocks SUBDIR += traceroute SUBDIR += traff SUBDIR += trafshow SUBDIR += trafshow3 SUBDIR += tramp SUBDIR += trickle SUBDIR += tsclient SUBDIR += tshark SUBDIR += tshark-lite SUBDIR += tsocks SUBDIR += tucan SUBDIR += turnserver SUBDIR += turses SUBDIR += twitux SUBDIR += u6rd SUBDIR += ucarp SUBDIR += udptunnel SUBDIR += udpxy SUBDIR += udt SUBDIR += uget SUBDIR += uhttpmock SUBDIR += ulxmlrpcpp SUBDIR += unfs3 SUBDIR += unison SUBDIR += unison-devel SUBDIR += unison-nox11 SUBDIR += unison232 SUBDIR += unison240 SUBDIR += unix2tcp SUBDIR += uplog SUBDIR += urelay SUBDIR += uriparser SUBDIR += urlendec SUBDIR += usbredir SUBDIR += userfw SUBDIR += utftpd SUBDIR += vblade SUBDIR += vde SUBDIR += vde2 SUBDIR += vinagre SUBDIR += vino SUBDIR += vmware-vsphere-cli SUBDIR += vncreflector SUBDIR += vnstat SUBDIR += vortex SUBDIR += vtun SUBDIR += wackamole SUBDIR += wackford-squeers SUBDIR += wakeonlan SUBDIR += whois SUBDIR += widentd SUBDIR += wireshark SUBDIR += wireshark-lite SUBDIR += wireshark-qt5 SUBDIR += wizd SUBDIR += wlan2eth SUBDIR += wmlj SUBDIR += wmnd SUBDIR += wmnet SUBDIR += wmnet2 SUBDIR += wmnetload SUBDIR += wmnetmon SUBDIR += wmpiki SUBDIR += wmping SUBDIR += wmwave SUBDIR += wmwifi SUBDIR += wmwlmon SUBDIR += wol SUBDIR += wpa_gui SUBDIR += wping SUBDIR += x11vnc SUBDIR += x2goclient SUBDIR += x2goclient-cli SUBDIR += xferstats SUBDIR += xipmsg SUBDIR += xisp SUBDIR += xmlrpc-c SUBDIR += xmlrpc-epi SUBDIR += xorp SUBDIR += xprobe SUBDIR += xpvm SUBDIR += xrdesktop2 SUBDIR += xrdp SUBDIR += xrdp-devel SUBDIR += yami4 SUBDIR += yaph SUBDIR += yate SUBDIR += yaz SUBDIR += yaz++ SUBDIR += yazproxy SUBDIR += yconalyzer SUBDIR += yptransitd SUBDIR += zebra SUBDIR += zebra-server SUBDIR += zeroconf-ioslave SUBDIR += zerotier SUBDIR += zillion SUBDIR += zmap SUBDIR += zsync .include Index: head/net/pkt-gen/Makefile =================================================================== --- head/net/pkt-gen/Makefile (nonexistent) +++ head/net/pkt-gen/Makefile (revision 448752) @@ -0,0 +1,32 @@ +# $FreeBSD$ + +PORTNAME= pkt-gen +PORTVERSION= g2017.08.06 +CATEGORIES= net + +MAINTAINER= shurd@freebsd.org +COMMENT= Packet sink/source using the netmap API + +LICENSE= BSD2CLAUSE + +USES= gmake +USE_GITHUB= yes +GH_ACCOUNT= luigirizzo +GH_PROJECT= netmap +GH_TAGNAME= 3c3ab5faa2ab9c89db09cd8339d0e96a1a78c41a +MAKEFILE= GNUmakefile +WRKSRC_SUBDIR= apps/pkt-gen +PATCH_WRKSRC= ${WRKSRC}/.. + +OPTIONS_DEFINE= PCAP +PCAP_DESC= Support loading packets from pcap file +OPTIONS_DEFAULT=PCAP +PCAP_MAKE_ARGS= WITH_PCAP=1 + +PLIST_FILES= bin/pkt-gen + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/pkt-gen \ + ${STAGEDIR}${PREFIX}/bin + +.include Property changes on: head/net/pkt-gen/Makefile ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net/pkt-gen/distinfo =================================================================== --- head/net/pkt-gen/distinfo (nonexistent) +++ head/net/pkt-gen/distinfo (revision 448752) @@ -0,0 +1,3 @@ +TIMESTAMP = 1503651090 +SHA256 (luigirizzo-netmap-g2017.08.06-3c3ab5faa2ab9c89db09cd8339d0e96a1a78c41a_GH0.tar.gz) = 755f0b7d195cfdd7148591ef01ae4da569cae3e323ffded74dfbaa571dc267f3 +SIZE (luigirizzo-netmap-g2017.08.06-3c3ab5faa2ab9c89db09cd8339d0e96a1a78c41a_GH0.tar.gz) = 544000 Property changes on: head/net/pkt-gen/distinfo ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +on \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net/pkt-gen/files/patch-include_ctrs.h =================================================================== --- head/net/pkt-gen/files/patch-include_ctrs.h (nonexistent) +++ head/net/pkt-gen/files/patch-include_ctrs.h (revision 448752) @@ -0,0 +1,36 @@ +--- include/ctrs.h.orig 2017-08-06 18:26:36 UTC ++++ include/ctrs.h +@@ -16,21 +16,27 @@ struct my_ctrs { + * Caller has to make sure that the buffer is large enough. + */ + static const char * +-norm2(char *buf, double val, char *fmt) ++norm2(char *buf, double val, char *fmt, int normalize) + { + char *units[] = { "", "K", "M", "G", "T" }; + u_int i; +- +- for (i = 0; val >=1000 && i < sizeof(units)/sizeof(char *) - 1; i++) +- val /= 1000; ++ if (normalize) ++ for (i = 0; val >=1000 && i < sizeof(units)/sizeof(char *) - 1; i++) ++ val /= 1000; ++ else ++ i=0; + sprintf(buf, fmt, val, units[i]); + return buf; + } + + static __inline const char * +-norm(char *buf, double val) ++norm(char *buf, double val, int normalize) + { +- return norm2(buf, val, "%.3f %s"); ++ ++ if (normalize) ++ return norm2(buf, val, "%.3f %s", normalize); ++ else ++ return norm2(buf, val, "%.0f %s", normalize); + } + + static __inline int Property changes on: head/net/pkt-gen/files/patch-include_ctrs.h ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +on \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net/pkt-gen/files/patch-pkt-gen_pkt-gen.c =================================================================== --- head/net/pkt-gen/files/patch-pkt-gen_pkt-gen.c (nonexistent) +++ head/net/pkt-gen/files/patch-pkt-gen_pkt-gen.c (revision 448752) @@ -0,0 +1,562 @@ +--- pkt-gen/pkt-gen.c.orig 2017-08-06 18:26:36 UTC ++++ pkt-gen/pkt-gen.c +@@ -186,6 +186,7 @@ const char *indirect_payload="netmap pkt + "http://info.iet.unipi.it/~luigi/netmap/ "; + + int verbose = 0; ++int normalize = 1; + + #define VIRT_HDR_1 10 /* length of a base vnet-hdr */ + #define VIRT_HDR_2 12 /* length of the extenede vnet-hdr */ +@@ -204,12 +205,12 @@ struct pkt { + struct ip ip; + struct udphdr udp; + uint8_t body[MAX_BODYSIZE]; /* hardwired */ +- } ipv4; ++ } __attribute__((__packed__)) ipv4; + struct { + struct ip6_hdr ip; + struct udphdr udp; + uint8_t body[MAX_BODYSIZE]; /* hardwired */ +- } ipv6; ++ } __attribute__((__packed__)) ipv6; + }; + } __attribute__((__packed__)); + +@@ -752,39 +753,39 @@ dump_payload(const char *_p, int len, st + static void + update_ip(struct pkt *pkt, struct glob_arg *g) + { +- struct ip *ip; +- struct udphdr *udp; ++ struct ip ip; ++ struct udphdr udp; + uint32_t oaddr, naddr; + uint16_t oport, nport; + uint16_t ip_sum, udp_sum; + +- ip = &pkt->ipv4.ip; +- udp = &pkt->ipv4.udp; ++ memcpy(&ip, &pkt->ipv4.ip, sizeof(ip)); ++ memcpy(&udp, &pkt->ipv4.udp, sizeof(udp)); + do { + ip_sum = udp_sum = 0; +- naddr = oaddr = ntohl(ip->ip_src.s_addr); +- nport = oport = ntohs(udp->uh_sport); ++ naddr = oaddr = ntohl(ip.ip_src.s_addr); ++ nport = oport = ntohs(udp.uh_sport); + if (g->options & OPT_RANDOM_SRC) { +- ip->ip_src.s_addr = random(); +- udp->uh_sport = random(); +- naddr = ntohl(ip->ip_src.s_addr); +- nport = ntohs(udp->uh_sport); ++ ip.ip_src.s_addr = random(); ++ udp.uh_sport = random(); ++ naddr = ntohl(ip.ip_src.s_addr); ++ nport = ntohs(udp.uh_sport); + break; + } + if (oport < g->src_ip.port1) { + nport = oport + 1; +- udp->uh_sport = htons(nport); ++ udp.uh_sport = htons(nport); + break; + } + nport = g->src_ip.port0; +- udp->uh_sport = htons(nport); ++ udp.uh_sport = htons(nport); + if (oaddr < g->src_ip.ipv4.end) { + naddr = oaddr + 1; +- ip->ip_src.s_addr = htonl(naddr); ++ ip.ip_src.s_addr = htonl(naddr); + break; + } + naddr = g->src_ip.ipv4.start; +- ip->ip_src.s_addr = htonl(naddr); ++ ip.ip_src.s_addr = htonl(naddr); + } while (0); + /* update checksums if needed */ + if (oaddr != naddr) { +@@ -798,29 +799,29 @@ update_ip(struct pkt *pkt, struct glob_a + udp_sum = cksum_add(udp_sum, nport); + } + do { +- naddr = oaddr = ntohl(ip->ip_dst.s_addr); +- nport = oport = ntohs(udp->uh_dport); ++ naddr = oaddr = ntohl(ip.ip_dst.s_addr); ++ nport = oport = ntohs(udp.uh_dport); + if (g->options & OPT_RANDOM_DST) { +- ip->ip_dst.s_addr = random(); +- udp->uh_dport = random(); +- naddr = ntohl(ip->ip_dst.s_addr); +- nport = ntohs(udp->uh_dport); ++ ip.ip_dst.s_addr = random(); ++ udp.uh_dport = random(); ++ naddr = ntohl(ip.ip_dst.s_addr); ++ nport = ntohs(udp.uh_dport); + break; + } + if (oport < g->dst_ip.port1) { + nport = oport + 1; +- udp->uh_dport = htons(nport); ++ udp.uh_dport = htons(nport); + break; + } + nport = g->dst_ip.port0; +- udp->uh_dport = htons(nport); ++ udp.uh_dport = htons(nport); + if (oaddr < g->dst_ip.ipv4.end) { + naddr = oaddr + 1; +- ip->ip_dst.s_addr = htonl(naddr); ++ ip.ip_dst.s_addr = htonl(naddr); + break; + } + naddr = g->dst_ip.ipv4.start; +- ip->ip_dst.s_addr = htonl(naddr); ++ ip.ip_dst.s_addr = htonl(naddr); + } while (0); + /* update checksums */ + if (oaddr != naddr) { +@@ -834,11 +835,13 @@ update_ip(struct pkt *pkt, struct glob_a + udp_sum = cksum_add(udp_sum, nport); + } + if (udp_sum != 0) +- udp->uh_sum = ~cksum_add(~udp->uh_sum, htons(udp_sum)); ++ udp.uh_sum = ~cksum_add(~udp.uh_sum, htons(udp_sum)); + if (ip_sum != 0) { +- ip->ip_sum = ~cksum_add(~ip->ip_sum, htons(ip_sum)); +- udp->uh_sum = ~cksum_add(~udp->uh_sum, htons(ip_sum)); ++ ip.ip_sum = ~cksum_add(~ip.ip_sum, htons(ip_sum)); ++ udp.uh_sum = ~cksum_add(~udp.uh_sum, htons(ip_sum)); + } ++ memcpy(&pkt->ipv4.ip, &ip, sizeof(ip)); ++ memcpy(&pkt->ipv4.udp, &udp, sizeof(udp)); + } + + #ifndef s6_addr16 +@@ -847,41 +850,41 @@ update_ip(struct pkt *pkt, struct glob_a + static void + update_ip6(struct pkt *pkt, struct glob_arg *g) + { +- struct ip6_hdr *ip6; +- struct udphdr *udp; ++ struct ip6_hdr ip6; ++ struct udphdr udp; + uint16_t udp_sum; + uint16_t oaddr, naddr; + uint16_t oport, nport; + uint8_t group; + +- ip6 = &pkt->ipv6.ip; +- udp = &pkt->ipv6.udp; ++ memcpy(&ip6, &pkt->ipv6.ip, sizeof(ip6)); ++ memcpy(&udp, &pkt->ipv6.udp, sizeof(udp)); + do { + udp_sum = 0; + group = g->src_ip.ipv6.sgroup; +- naddr = oaddr = ntohs(ip6->ip6_src.s6_addr16[group]); +- nport = oport = ntohs(udp->uh_sport); ++ naddr = oaddr = ntohs(ip6.ip6_src.s6_addr16[group]); ++ nport = oport = ntohs(udp.uh_sport); + if (g->options & OPT_RANDOM_SRC) { +- ip6->ip6_src.s6_addr16[group] = random(); +- udp->uh_sport = random(); +- naddr = ntohs(ip6->ip6_src.s6_addr16[group]); +- nport = ntohs(udp->uh_sport); ++ ip6.ip6_src.s6_addr16[group] = random(); ++ udp.uh_sport = random(); ++ naddr = ntohs(ip6.ip6_src.s6_addr16[group]); ++ nport = ntohs(udp.uh_sport); + break; + } + if (oport < g->src_ip.port1) { + nport = oport + 1; +- udp->uh_sport = htons(nport); ++ udp.uh_sport = htons(nport); + break; + } + nport = g->src_ip.port0; +- udp->uh_sport = htons(nport); ++ udp.uh_sport = htons(nport); + if (oaddr < ntohs(g->src_ip.ipv6.end.s6_addr16[group])) { + naddr = oaddr + 1; +- ip6->ip6_src.s6_addr16[group] = htons(naddr); ++ ip6.ip6_src.s6_addr16[group] = htons(naddr); + break; + } + naddr = ntohs(g->src_ip.ipv6.start.s6_addr16[group]); +- ip6->ip6_src.s6_addr16[group] = htons(naddr); ++ ip6.ip6_src.s6_addr16[group] = htons(naddr); + } while (0); + /* update checksums if needed */ + if (oaddr != naddr) +@@ -891,29 +894,29 @@ update_ip6(struct pkt *pkt, struct glob_ + cksum_add(~oport, nport)); + do { + group = g->dst_ip.ipv6.egroup; +- naddr = oaddr = ntohs(ip6->ip6_dst.s6_addr16[group]); +- nport = oport = ntohs(udp->uh_dport); ++ naddr = oaddr = ntohs(ip6.ip6_dst.s6_addr16[group]); ++ nport = oport = ntohs(udp.uh_dport); + if (g->options & OPT_RANDOM_DST) { +- ip6->ip6_dst.s6_addr16[group] = random(); +- udp->uh_dport = random(); +- naddr = ntohs(ip6->ip6_dst.s6_addr16[group]); +- nport = ntohs(udp->uh_dport); ++ ip6.ip6_dst.s6_addr16[group] = random(); ++ udp.uh_dport = random(); ++ naddr = ntohs(ip6.ip6_dst.s6_addr16[group]); ++ nport = ntohs(udp.uh_dport); + break; + } + if (oport < g->dst_ip.port1) { + nport = oport + 1; +- udp->uh_dport = htons(nport); ++ udp.uh_dport = htons(nport); + break; + } + nport = g->dst_ip.port0; +- udp->uh_dport = htons(nport); ++ udp.uh_dport = htons(nport); + if (oaddr < ntohs(g->dst_ip.ipv6.end.s6_addr16[group])) { + naddr = oaddr + 1; +- ip6->ip6_dst.s6_addr16[group] = htons(naddr); ++ ip6.ip6_dst.s6_addr16[group] = htons(naddr); + break; + } + naddr = ntohs(g->dst_ip.ipv6.start.s6_addr16[group]); +- ip6->ip6_dst.s6_addr16[group] = htons(naddr); ++ ip6.ip6_dst.s6_addr16[group] = htons(naddr); + } while (0); + /* update checksums */ + if (oaddr != naddr) +@@ -923,7 +926,9 @@ update_ip6(struct pkt *pkt, struct glob_ + udp_sum = cksum_add(udp_sum, + cksum_add(~oport, nport)); + if (udp_sum != 0) +- udp->uh_sum = ~cksum_add(~udp->uh_sum, udp_sum); ++ udp.uh_sum = ~cksum_add(~udp.uh_sum, udp_sum); ++ memcpy(&pkt->ipv6.ip, &ip6, sizeof(ip6)); ++ memcpy(&pkt->ipv6.udp, &udp, sizeof(udp)); + } + + static void +@@ -944,9 +949,10 @@ initialize_packet(struct targ *targ) + { + struct pkt *pkt = &targ->pkt; + struct ether_header *eh; +- struct ip6_hdr *ip6; +- struct ip *ip; +- struct udphdr *udp; ++ struct ip6_hdr ip6; ++ struct ip ip; ++ struct udphdr udp; ++ void *udp_ptr; + uint16_t paylen; + uint32_t csum; + const char *payload = targ->g->options & OPT_INDIRECT ? +@@ -978,7 +984,7 @@ initialize_packet(struct targ *targ) + #endif + + paylen = targ->g->pkt_size - sizeof(*eh) - +- (targ->g->af == AF_INET ? sizeof(*ip): sizeof(*ip6)); ++ (targ->g->af == AF_INET ? sizeof(ip): sizeof(ip6)); + + /* create a nice NUL-terminated string */ + for (i = 0; i < paylen; i += l0) { +@@ -995,56 +1001,61 @@ initialize_packet(struct targ *targ) + + if (targ->g->af == AF_INET) { + eh->ether_type = htons(ETHERTYPE_IP); +- ip = &pkt->ipv4.ip; +- udp = &pkt->ipv4.udp; +- ip->ip_v = IPVERSION; +- ip->ip_hl = sizeof(*ip) >> 2; +- ip->ip_id = 0; +- ip->ip_tos = IPTOS_LOWDELAY; +- ip->ip_len = htons(targ->g->pkt_size - sizeof(*eh)); +- ip->ip_id = 0; +- ip->ip_off = htons(IP_DF); /* Don't fragment */ +- ip->ip_ttl = IPDEFTTL; +- ip->ip_p = IPPROTO_UDP; +- ip->ip_dst.s_addr = htonl(targ->g->dst_ip.ipv4.start); +- ip->ip_src.s_addr = htonl(targ->g->src_ip.ipv4.start); +- ip->ip_sum = wrapsum(checksum(ip, sizeof(*ip), 0)); ++ memcpy(&ip, &pkt->ipv4.ip, sizeof(ip)); ++ udp_ptr = &pkt->ipv4.udp; ++ ip.ip_v = IPVERSION; ++ ip.ip_hl = sizeof(ip) >> 2; ++ ip.ip_id = 0; ++ ip.ip_tos = IPTOS_LOWDELAY; ++ ip.ip_len = htons(targ->g->pkt_size - sizeof(*eh)); ++ ip.ip_id = 0; ++ ip.ip_off = htons(IP_DF); /* Don't fragment */ ++ ip.ip_ttl = IPDEFTTL; ++ ip.ip_p = IPPROTO_UDP; ++ ip.ip_dst.s_addr = htonl(targ->g->dst_ip.ipv4.start); ++ ip.ip_src.s_addr = htonl(targ->g->src_ip.ipv4.start); ++ ip.ip_sum = wrapsum(checksum(&ip, sizeof(ip), 0)); ++ memcpy(&pkt->ipv4.ip, &ip, sizeof(ip)); + } else { + eh->ether_type = htons(ETHERTYPE_IPV6); +- ip6 = &pkt->ipv6.ip; +- udp = &pkt->ipv6.udp; +- ip6->ip6_flow = 0; +- ip6->ip6_plen = htons(paylen); +- ip6->ip6_vfc = IPV6_VERSION; +- ip6->ip6_nxt = IPPROTO_UDP; +- ip6->ip6_hlim = IPV6_DEFHLIM; +- ip6->ip6_src = targ->g->src_ip.ipv6.start; +- ip6->ip6_dst = targ->g->dst_ip.ipv6.start; ++ memcpy(&ip6, &pkt->ipv4.ip, sizeof(ip6)); ++ udp_ptr = &pkt->ipv6.udp; ++ ip6.ip6_flow = 0; ++ ip6.ip6_plen = htons(paylen); ++ ip6.ip6_vfc = IPV6_VERSION; ++ ip6.ip6_nxt = IPPROTO_UDP; ++ ip6.ip6_hlim = IPV6_DEFHLIM; ++ ip6.ip6_src = targ->g->src_ip.ipv6.start; ++ ip6.ip6_dst = targ->g->dst_ip.ipv6.start; + } ++ memcpy(&udp, udp_ptr, sizeof(udp)); + +- udp->uh_sport = htons(targ->g->src_ip.port0); +- udp->uh_dport = htons(targ->g->dst_ip.port0); +- udp->uh_ulen = htons(paylen); ++ udp.uh_sport = htons(targ->g->src_ip.port0); ++ udp.uh_dport = htons(targ->g->dst_ip.port0); ++ udp.uh_ulen = htons(paylen); + if (targ->g->af == AF_INET) { + /* Magic: taken from sbin/dhclient/packet.c */ +- udp->uh_sum = wrapsum( +- checksum(udp, sizeof(*udp), /* udp header */ ++ udp.uh_sum = wrapsum( ++ checksum(&udp, sizeof(udp), /* udp header */ + checksum(pkt->ipv4.body, /* udp payload */ +- paylen - sizeof(*udp), ++ paylen - sizeof(udp), + checksum(&pkt->ipv4.ip.ip_src, /* pseudo header */ + 2 * sizeof(pkt->ipv4.ip.ip_src), +- IPPROTO_UDP + (u_int32_t)ntohs(udp->uh_ulen))))); ++ IPPROTO_UDP + (u_int32_t)ntohs(udp.uh_ulen))))); ++ memcpy(&pkt->ipv4.ip, &ip, sizeof(ip)); + } else { + /* Save part of pseudo header checksum into csum */ + csum = IPPROTO_UDP << 24; + csum = checksum(&csum, sizeof(csum), paylen); +- udp->uh_sum = wrapsum( +- checksum(udp, sizeof(*udp), /* udp header */ ++ udp.uh_sum = wrapsum( ++ checksum(udp_ptr, sizeof(udp), /* udp header */ + checksum(pkt->ipv6.body, /* udp payload */ +- paylen - sizeof(*udp), ++ paylen - sizeof(udp), + checksum(&pkt->ipv6.ip.ip6_src, /* pseudo header */ + 2 * sizeof(pkt->ipv6.ip.ip6_src), csum)))); ++ memcpy(&pkt->ipv6.ip, &ip6, sizeof(ip6)); + } ++ memcpy(udp_ptr, &udp, sizeof(udp)); + + bzero(&pkt->vh, sizeof(pkt->vh)); + // dump_payload((void *)pkt, targ->g->pkt_size, NULL, 0); +@@ -1864,6 +1875,7 @@ txseq_body(void *data) + unsigned int space; + unsigned int head; + int fcnt; ++ uint16_t sum; + + if (!rate_limit) { + budget = targ->g->burst; +@@ -1910,19 +1922,19 @@ txseq_body(void *data) + sent < limit; sent++, sequence++) { + struct netmap_slot *slot = &ring->slot[head]; + char *p = NETMAP_BUF(ring, slot->buf_idx); +- uint16_t *w = (uint16_t *)PKT(pkt, body, targ->g->af), t, +- *sum = (uint16_t *)(targ->g->af == AF_INET ? +- &pkt->ipv4.udp.uh_sum : &pkt->ipv6.udp.uh_sum); ++ uint16_t *w = (uint16_t *)PKT(pkt, body, targ->g->af), t; ++ ++ memcpy(&sum, targ->g->af == AF_INET ? &pkt->ipv4.udp.uh_sum : &pkt->ipv6.udp.uh_sum, sizeof(sum)); + + slot->flags = 0; + t = *w; + PKT(pkt, body, targ->g->af)[0] = sequence >> 24; + PKT(pkt, body, targ->g->af)[1] = (sequence >> 16) & 0xff; +- *sum = ~cksum_add(~*sum, cksum_add(~t, *w)); ++ sum = ~cksum_add(~sum, cksum_add(~t, *w)); + t = *++w; + PKT(pkt, body, targ->g->af)[2] = (sequence >> 8) & 0xff; + PKT(pkt, body, targ->g->af)[3] = sequence & 0xff; +- *sum = ~cksum_add(~*sum, cksum_add(~t, *w)); ++ sum = ~cksum_add(~sum, cksum_add(~t, *w)); + nm_pkt_copy(frame, p, size); + if (fcnt == frags) { + update_addresses(pkt, targ->g); +@@ -1952,6 +1964,7 @@ txseq_body(void *data) + budget--; + } + } ++ memcpy(targ->g->af == AF_INET ? &pkt->ipv4.udp.uh_sum : &pkt->ipv6.udp.uh_sum, &sum, sizeof(sum)); + + ring->cur = ring->head = head; + +@@ -2209,7 +2222,7 @@ tx_output(struct my_ctrs *cur, double de + abs = cur->pkts / (double)(cur->events); + + printf("Speed: %spps Bandwidth: %sbps (raw %sbps). Average batch: %.2f pkts\n", +- norm(b1, pps), norm(b2, bw), norm(b3, raw_bw), abs); ++ norm(b1, pps, normalize), norm(b2, bw, normalize), norm(b3, raw_bw, normalize), abs); + } + + static void +@@ -2219,38 +2232,72 @@ usage(void) + fprintf(stderr, + "Usage:\n" + "%s arguments\n" +- "\t-i interface interface name\n" +- "\t-f function tx rx ping pong txseq rxseq\n" +- "\t-n count number of iterations (can be 0)\n" +- "\t-t pkts_to_send also forces tx mode\n" +- "\t-r pkts_to_receive also forces rx mode\n" +- "\t-l pkt_size in bytes excluding CRC\n" +- "\t (if passed a second time, use random sizes\n" +- "\t bigger than the second one and lower than\n" +- "\t the first one)\n" +- "\t-d dst_ip[:port[-dst_ip:port]] single or range\n" +- "\t-s src_ip[:port[-src_ip:port]] single or range\n" +- "\t-D dst-mac\n" +- "\t-S src-mac\n" +- "\t-a cpu_id use setaffinity\n" +- "\t-b burst size testing, mostly\n" +- "\t-c cores cores to use\n" +- "\t-p threads processes/threads to use\n" +- "\t-T report_ms milliseconds between reports\n" +- "\t-w wait_for_link_time in seconds\n" +- "\t-R rate in packets per second\n" +- "\t-X dump payload\n" +- "\t-H len add empty virtio-net-header with size 'len'\n" +- "\t-E pipes allocate extra space for a number of pipes\n" +- "\t-r do not touch the buffers (send rubbish)\n" +- "\t-P file load packet from pcap file\n" +- "\t-z use random IPv4 src address/port\n" +- "\t-Z use random IPv4 dst address/port\n" +- "\t-F num_frags send multi-slot packets\n" +- "\t-A activate pps stats on receiver\n" +- "", ++ "\t-i interface interface name\n" ++ "\t-f function tx rx ping pong txseq rxseq\n" ++ "\t-n count number of iterations (can be 0)\n" ++#ifdef notyet ++ "\t-t pkts_to_send also forces tx mode\n" ++ "\t-r pkts_to_receive also forces rx mode\n" ++#endif ++ "\t-l pkt_size in bytes excluding CRC\n" ++ "\t (if passed a second time, use random sizes\n" ++ "\t bigger than the second one and lower than\n" ++ "\t the first one)\n" ++ "\t-d dst_ip[:port[-dst_ip:port]] single or range\n" ++ "\t-s src_ip[:port[-src_ip:port]] single or range\n" ++ "\t-D dst-mac\n" ++ "\t-S src-mac\n" ++ "\t-a cpu_id use setaffinity\n" ++ "\t-b burst size testing, mostly\n" ++ "\t-c cores cores to use\n" ++ "\t-p threads processes/threads to use\n" ++ "\t-T report_ms milliseconds between reports\n" ++ "\t-w wait_for_link_time in seconds\n" ++ "\t-R rate in packets per second\n" ++ "\t-X dump payload\n" ++ "\t-H len add empty virtio-net-header with size 'len'\n" ++ "\t-E pipes allocate extra space for a number of pipes\n" ++ "\t-r do not touch the buffers (send rubbish)\n" ++ "\t-P file load packet from pcap file\n" ++ "\t-z use random IPv4 src address/port\n" ++ "\t-Z use random IPv4 dst address/port\n" ++ "\t-F num_frags send multi-slot packets\n" ++ "\t-A activate pps stats on receiver\n" ++ "\t-4 IPv4\n" ++ "\t-6 IPv6\n" ++ "\t-N don't normalize units (Kbps/Mbps/etc)\n" ++ "\t-I use indirect buffers, tx only\n" ++ "\t-o options data generation options (parsed using atoi)\n" ++ "\t OPT_PREFETCH 1\n" ++ "\t OPT_ACCESS 2\n" ++ "\t OPT_COPY 4\n" ++ "\t OPT_MEMCPY 8\n" ++ "\t OPT_TS 16 (add a timestamp)\n" ++ "\t OPT_INDIRECT 32 (use indirect buffers)\n" ++ "\t OPT_DUMP 64 (dump rx/tx traffic)\n" ++ "\t OPT_RUBBISH 256\n" ++ "\t (send wathever the buffers contain)\n" ++ "\t OPT_RANDOM_SRC 512\n" ++ "\t OPT_RANDOM_DST 1024\n" ++ "\t OPT_PPS_STATS 2048\n" ++ "\t-W exit RX with no traffic\n" ++ "\t-v verbose (more v = more verbose)\n" ++ "\t-C vale-config specify a vale config\n" ++#ifdef notyet ++ "\t The configuration may consist of 0 to 4\n" ++ "\t numbers separated by commas:\n" ++ "\t #tx-slots,#rx-slots,#tx-rings,#rx-rings.\n" ++ "\t Missing numbers or zeroes stand for default\n" ++ "\t values. As an additional convenience, if\n" ++ "\t exactly one number is specified, then this\n" ++ "\t is assigned to both #tx-slots and #rx-slots.\n" ++ "\t If there is no 4th number, then the 3rd is\n" ++ "\t assigned to both #tx-rings and #rx-rings.\n" ++#endif ++ "\t-e extra-bufs extra_bufs - goes in nr_arg3\n" ++ "\t-m ignored\n" ++ "", + cmd); +- + exit(0); + } + +@@ -2405,13 +2452,13 @@ main_thread(struct glob_arg *g) + ppsdev = sqrt(ppsdev); + + snprintf(b4, sizeof(b4), "[avg/std %s/%s pps]", +- norm(b1, ppsavg), norm(b2, ppsdev)); ++ norm(b1, ppsavg, normalize), norm(b2, ppsdev, normalize)); + } + + D("%spps %s(%spkts %sbps in %llu usec) %.2f avg_batch %d min_space", +- norm(b1, pps), b4, +- norm(b2, (double)x.pkts), +- norm(b3, (double)x.bytes*8), ++ norm(b1, pps, normalize), b4, ++ norm(b2, (double)x.pkts, normalize), ++ norm(b3, (double)x.bytes*8, normalize), + (unsigned long long)usec, + abs, (int)cur.min_space); + prev = cur; +@@ -2589,7 +2636,7 @@ main(int arc, char **argv) + g.virt_header = 0; + g.wait_link = 2; + +- while ((ch = getopt(arc, argv, "46a:f:F:n:i:Il:d:s:D:S:b:c:o:p:" ++ while ((ch = getopt(arc, argv, "46a:f:F:Nn:i:Il:d:s:D:S:b:c:o:p:" + "T:w:WvR:XC:H:e:E:m:rP:zZA")) != -1) { + + switch(ch) { +@@ -2606,6 +2653,10 @@ main(int arc, char **argv) + g.af = AF_INET6; + break; + ++ case 'N': ++ normalize = 0; ++ break; ++ + case 'n': + g.npackets = strtoull(optarg, NULL, 10); + break; +@@ -2633,7 +2684,7 @@ main(int arc, char **argv) + break; + + case 'o': /* data generation options */ +- g.options = atoi(optarg); ++ g.options |= atoi(optarg); + break; + + case 'a': /* force affinity */ Property changes on: head/net/pkt-gen/files/patch-pkt-gen_pkt-gen.c ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +on \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net/pkt-gen/pkg-descr =================================================================== --- head/net/pkt-gen/pkg-descr (nonexistent) +++ head/net/pkt-gen/pkg-descr (revision 448752) @@ -0,0 +1,5 @@ +Packet sink/source using the netmap API useful for perforamce testing +networks. This is the upstream version of the program by the same name +that lives in /usr/src/tools/tools/netmap, maintained by Luigi Rizzo. + +WWW: https://github.com/luigirizzo/netmap Property changes on: head/net/pkt-gen/pkg-descr ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +on \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property