From a91876c4306e72765ab6f87c2adab986ab4f1193 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Tue, 4 Dec 2018 15:25:08 +0100 Subject: [PATCH] docs: remove again, moved to the netsniff-ng.github.io If we want to use https://netsniff-ng.github.io instead of https://netsniff-ng.github.io/netsniff-ng the source apparently have to live in a separate repository. Signed-off-by: Tobias Klauser --- docs/faq.html | 485 ------------------------------------------------ docs/img/bp.png | Bin 70023 -> 0 bytes docs/img/logo.png | Bin 3897 -> 0 bytes docs/img/logo2.png | Bin 7349 -> 0 bytes docs/img/logo_small.png | Bin 6779 -> 0 bytes docs/img/tiny-logo.png | Bin 449 -> 0 bytes docs/index.html | 179 ------------------ docs/style.css | 167 ----------------- 8 files changed, 831 deletions(-) delete mode 100644 docs/faq.html delete mode 100644 docs/img/bp.png delete mode 100644 docs/img/logo.png delete mode 100644 docs/img/logo2.png delete mode 100644 docs/img/logo_small.png delete mode 100644 docs/img/tiny-logo.png delete mode 100644 docs/index.html delete mode 100644 docs/style.css diff --git a/docs/faq.html b/docs/faq.html deleted file mode 100644 index 11a34a3b..00000000 --- a/docs/faq.html +++ /dev/null @@ -1,485 +0,0 @@ - - - - -netsniff-ng toolkit faq - - - - - - - - - - - -

netsniff-ng toolkit

-

Frequently asked questions (FAQ)

-

-If your question is not answered here, please consult our mailing list. -

General questions

- - -

Usage questions

- - -

Licensing questions

- - -

Development questions

- - -

Misc questions

- - -
-

What is netsniff-ng?

-
-

-netsniff-ng is a high performance Linux networking toolkit. The project started during my B. Sc. thesis at the Max Planck Institute (actually just by accident and out of curiosity), and continued to grow into a useful toolkit ever since. At the time of its initial development, the famous libpcap library did not support zero-copy extensions of the Linux kernel. Therefore, we closed this gap by developing an analyzer and further tools around it, which had a significantly better performance than existing ones that used libpcap at that time. To be fair, later on zero-copy support was added to libpcap. However, we had/have a lot of fun with this project, so it grew and is on a good way to become mature. Nowadays, it's used by many professionals, it runs on quite a lot of servers or routers on production systems, and even is as a backend for Linux network security distributions. It really got quite serious. ;-) -

-
- -
-

What are the main goals?

-
-

-netsniff-ngs main goal is to be a high performance network toolkit that focuses on usability, robustness and functionality. Its aim is to support the daily work of networking engineers, developers, administrators or Linux users by providing support with or in network monitoring, protocol analysis, reverse engineering, network debugging, traffic generation, measurement and penetration testing. -

-
- -
-

I like your project. Can I donate something?

-
-

-Sure, we're always happy to hear that. If you think this software is good, then please consider sending / buying us hardware like high-end 10Gbit/s capable servers, switches, routers, or access points, wireless cards or other (also exotic) kind of embedded systems in order to do research, test our software and integrate new features. You are welcome to leave us an email to . -

-
- -
-

How can I be notified of new releases?

-
-

-New releases will be announced on our homepage, mailing list and Freshmeat. We have a project page at Freshmeat where you can subscribe. -

-
- -
-

Is there a mailing list?

-
-

-Yes, of course there is. It's a moderated, spam-free mailing list on Google where you can post your questions to . -

-
- -
-

Is there an IRC channel?

-
-

-Nope, there is no offical one. -

-
- -
-

Do you have a blog? Is there a RSS feed for your blog?

-
-

-Nope, sorry. We rather like spending our time hacking the code. (I know, in the past, we had one.) -

-
- -
-

Can you change the design of your blog?

-
-

-What blog? No, sorry. ;-) -

-
- -
-

Why can't I post comments to your blog?

-
-

-Because we like HTML too much. ;-) Moderating all those comments costs too much time that we could also spend on development. If you'd like to discuss certain issues, then please use our mailing list. -

-
- -
-

Is there a commercial support?

-
-

-Actually yes, if you have a Red Hat Enterprise Linux subscription, just open a bugzilla ticket there. -

-
- -
-

How good is the throughput of RX_RING/TX_RING?

-
-

-For instance, on commodity hardware with Gigabit-Ethernet, you can reach wirespeed with trafgen (64 Byte, 1.34 Mio pps). Measurement results on 10GBit/s will come soon. -

-
- -
-

Are the statistics generated by ifpps 'reliable'?

-
-

-Yes. The statistics are extracted from the kernel directly (procfs), so this is what the NICs device driver gets to see. There is no sniffing or the like involved to generate these figures, such as iptraf does. -

-
- -
-

What's a primer document and why should I read it first?

-
-

-It's netsniff-ng's Documentation folder in the repository. Everything that needs to be known for using the toolkit is documented there. There are more general documents to get an overview and tool specific ones with a higher degree of details. -

-
- -
-

What platforms are supported?

-
-

-Currently only operating systems running on Linux kernels with CONFIG_PACKET_MMAP enabled. This feature can be found even back to the days of 2.4 kernels. Most operating systems ship pre-compiled kernels that have this config option enabled and even the latest kernel versions got rid of this option and have this functionality built-in. However, we recommend using a kernel >= 2.6.31, because the TX_RING support has been added since then. Ideally, you compile a kernel on your own from the latest Git tree. -

-
- -
-

What libraries are required?

-
-

-Look at INSTALL in the repository. -

-
- -
-

What version of netsniff-ng should I use?

-
-

-The latest one from our Git tree, if possible. -

-
- -
-

Can netsniff-ng read network dumps of Wireshark or others and vice versa?

-
-

-Yes, if the dumps are formatted as pcap files. This is default on Wireshark, for instance. Vice versa, Wireshark can also read netsniff-ng dumps. -

-
- -
-

How can I create Berkeley Packet Filters?

-
-

-If you want to run netsniff-ng in combination with -f or --filter <file> you need to build a so called Berkeley Packet Filter program within a plaintext file (here, marked as: <file>). The Berkeley Packet Filters language description can be obtained from netsniff-ngs documentation section. One way to create a custom filter for the non-lazy people is to hack the opcodes by hand according to the specification. In this case you have all the freedom to build your filters for your needs. The alternative way is to use tcpdumps -dd option. Simply pipe the output into a textfile and pass this to netsniff-ng. -

-Furthermore, we already ship some common filters and we are planning our own filter compiler! Most distributions put these files into /etc/netsniff-ng/rules/. -

-
- -
-

I've created a custom Berkeley Packet Filter program with tcpdump, but netsniff-ng cuts off the packet payload?

-
-

-If you try to create custom socket filters with tcpdump -dd, you have to edit the ret opcode (0x6) of the resulting filter, otherwise your payload will be cut off: -

-0x6, 0, 0, 0xFFFFFFFF instead of 0x6, 0, 0, 0x00000060 -

-The Linux kernel now takes skb->len instead of 0xFFFFFFFF. If you do not change it, the kernel will take 0x00000060 as buffer length and packets larger than 96 Byte will be cut off (filled with zero Bytes)! It's a bug in libpcaps filter compiler. Detailed information about this issue can be found on our blog post. -

-
- -
-

How do I sniff in a switched environment?

-
-

-I rudely refer to the dSniff documentation that says: -

-The easiest route is simply to impersonate the local gateway, stealing client traffic en route to some remote destination. Of course, the traffic must be forwarded by your attacking machine, either by enabling kernel IP forwarding or with a userland program that acccomplishes the same (fragrouter -B1). -

-Several people have reportedly destroyed connectivity on their LAN to the outside world by arpspoof'ing the gateway, and forgetting to enable IP forwarding on the attacking machine. Don't do this. You have been warned. -

-
- -
-

Can I run netsniff-ng as a normal user?

-
-

-Yep, again, look at INSTALL. -

-
- -
-

What's the license of netsniff-ng?

-
-

-It's the GNU GPL, version 2.0. Here's the licensing text. -

-
- -
-

Can you change your license e.g. to BSD or have you ever considered it?

-
-

-Nope, it's the GPL version 2.0 and this is not negotiable. -

-
- -
-

Can I use netsniff-ng commercially?

-
-

-Yes, if you mean "I work for a commercial organization and I'd like to use netsniff-ng for capturing and analyzing network traffic in our company's networks or in our customer's networks.". -

-It depends, if you mean "Can I use netsniff-ng as a part of my commercial product?". See below. -

-
- -
-

Can I use netsniff-ng as a part of my commercial product?

-
-

-As long as your commercial product then stays compatible with the GNU GPL, version 2.0, then it should be no problem. Have a look at the frequently asked questions of gnu.org in order to clarify your questions. -

-
- -
-

How much does netsniff-ng cost?

-
-

-netsniff-ng is "free software"; you can download it without paying any license fee. The version of netsniff-ng you download isn't a "demo" version, with limitations not present in a "full" version; it is the full version. And the good thing is: it will always stay that way! -

-netsniff-ng is licensed under the GNU GPL, version 2.0. Read more about this here. -

-
- -
-

Really, then why are you doing this?

-
-

-For the fun of hacking on great software and contributing to the open source community. And also, to fill the gap with some useful missing tools that can replace expensive commerical ones with even better features. -

-
- -
-

Do you have release cycles?

-
-

-No, actually we don't. We should. Well, we used to, but since netsniff-ng is a spare time project and sometimes there's lots of other stuff to do and sometimes not, we are more flexible and independant this way without making hard deadline promises. Nevertheless, netsniff-ng is a long-term project, so even if there's hard times for weeks of not pushing to Git, there will be others with the opposite situation. We think netsniff-ng is useful for our daily network engineering work and research and we will do our best that it stays this way! This should be your take-home message! ;-) -

-
- -
-

Can you add feature xy to netsniff-ng?

-
-

-Well, that depends. If it's a good feature and you make us think that adding this would make sense, then why not. You are also free to discuss this specific feature with us and post patches or pull requests. -

-
- -
-

Are there other source repositories than on your homepage?

-
-

-Nope. -

-
- -
-

Is your GoogleCode page still up to date?

-
-

-Nope, consider it as dead. -

-
- -
-

Can I participate in the development of netsniff-ng?

-
-

-Sure, we'd be happy about that. Send us your ideas or code and we're going to evaluate and probably integrate it. Have a look at the HACKING file. The release Git repository is located at http://repo.or.cz/w/netsniff-ng.git, so you are free to clone and hack. -

-
- -
-

How do I post a patch?

-
-

-Have a look at the Documentation folder of netsniff-ng's source for further instructions. -

-
- -
-

How do I use Git?

-
-

-Have a look at the Git documentation at http://www.kernel.org/pub/software/scm/git/docs/. -

-
- -
-

Will you ship a GUI like Wireshark?

-
-

-Nope, GUIs suck. -

-
- -
-

Will you support the future pcapng (so called 'PCAP Next Generation Dump File Format') format?

-
-

-Not sure yet. -

-
- -
-

Do you plan some fancy version other than kernelspace RX_RING/TX_RING?

-
-

-Probably not, because a vanilla kernel must be enough to run the toolkit. -

-
- -
-

Will you support the PF_RING from the ntop project?

-
-

-Well, no. There are two reasons for this: First reason is, that it's not part of the mainline kernel. A interesting discussion about getting PF_RING into the kernel can be found at the netdev lists (http://lists.openwall.net/netdev/2009/10/14/37) and obviously there are no further efforts (browse the netdev/LKML, also netfilter) from the ntop project to merge both architectures or add features to PF_PACKET. Second reason is that we've evaluated the PF_RING (without the commercial Direct NIC Access [DNA]) regarding its performance and came to the conclusion, that there is no significant performance enhancement on our IBM HS21 Bladeserver test system. ntopi's DNA ships its own versions of some modified device drivers like Broadcoms tg3 and NetXtreme, Intels e1000(e), igb and ixgbe. Since these modifications are not official, neither to the kernel, nor to the vendors and cover only a small amout of what is out there, we're not doing further investigations at the moment. Also, netsniff-ng users have reported similar observations. A benchmark with PF_RING in transparent_mode 0 and 1 is even slower than netsniff-ng and in transparent_mode 2 both have the same performance. The test was done on a Dell PowerEdge 2850. Nevertheless, ntop is a very interesting project you definately should check out! -

-
- -
-

Are you also maintaining distribution specific packages?

-
-

-Yes, but only for Red Hat and Debian GNU/Linux, which then automatically gets updated in some other distros like GRML. People that maintain netsniff-ng in other distributions are listed within the MAINTAINERS file. -

-
- -
-

Will you port netsniff-ng to Windows?

-
-

-Nope, what a question. It runs only on real operating systems. -

-
- -
-

Will you port netsniff-ng to *BSD?

-
-

-Could be possible for the future. If you have something we can merge, let us know. -

-
- -
-

Do you have your own personal devel trees? Which one should I patch against?

-
-

-Nope. Always patch against the official upstream repository. -

-
- -
-

Are you adding more tools to the toolkit?

-
-

-No, 8 tools (netsniff-ng, trafgen, mausezahn, bpfc, ifpps, flowtop, curvetun, astraceroute) are enough. We now rather focus on improving them and their features, clean up the code and fix bugs. -

-
- -
-

Why don't you answer my mails? Isn't that rude?

-
-

-No, it isn't rude. We're focusing on answering every mail, but in some rare cases it's mostly because of sheer lack of time to answer each email that gets sent to us. Furthermore, some hints for writing good e-mails can be found in rfc2635 and rfc1855. -

-
- -
-

How do you pronounce netsniff-ng?

-
-

-$ flite -o play -t "netsniff n g" -

-
- -
-

Do you have netsniff-ng t-shirts, ...?

-
-

-Yes, here (note: we do not take any commission for the products). -

-
- -
-

I've got some artwork for you!?

-
-

-Great! We'd very much like to see it. Please mail it to us ;-) -

-
- - diff --git a/docs/img/bp.png b/docs/img/bp.png deleted file mode 100644 index 73b0d18863d72644dc44ee3414b3d687047a5a70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 70023 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 QbN~PV07*qoM6N<$f-o^1@Bjb+ diff --git a/docs/img/logo.png b/docs/img/logo.png deleted file mode 100644 index 89b7d8da4b28b43949bf58f7666ed5fc238cfba3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 3897 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 diff --git a/docs/img/logo_small.png b/docs/img/logo_small.png deleted file mode 100644 index a86ed50d665d91a5f5a9337e63f93dd99a9efdff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 6779 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 diff --git a/docs/img/tiny-logo.png b/docs/img/tiny-logo.png deleted file mode 100644 index 43779dee38cd98d0d5b6323226da051f3100073c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 449 zcwPa)0Y3hTP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igi7 z4jVh5dQxHl00BWsL_t(I%cYY&O9Md^MbBhSb_|P%5=ev*M8Xz96brFitkU@dghYsl zl@{8^DuunIR~svB0%`LXEW~y!v=kA9MKRB27uF=2#ay@y4D-&sJ0Fmc)y5%(lIt>w z$wgp~bUOV3u-Yi#5>P1tRjW-s*+CF_DkZ=HnpPVX1J`nOx_-|M59ke3qRn0o5q#Bk&qimDQ$ewUM4%5(UBtZ)RMv+KAPrZ?)MOY;F1~ zSLoCnZ)7nb3Z$K#m#$mf{VifkYc1`gV{uVZDK3cTd9viq$X1~wjYcDe`EkL}sfS_6 zn|yIw+vj~_m1g^#o5K@co}Q^+UyQw;79ft}NDu^)&*udY-}j|lE+^yoe*#k2A9~9F r)kFZR&BPt3!OxS8JWe6dx7w(0ce!peiz-j@00000NkvXXu0mjf;83+_ diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 6fdc6f83..00000000 --- a/docs/index.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - -netsniff-ng toolkit - - - - - - - -

netsniff-ng toolkit

-

Summary

-

-netsniff-ng is a free Linux networking toolkit, a Swiss army knife for your daily Linux network plumbing if you will. -

-

-Its gain of performance is reached by zero-copy mechanisms, so that on packet reception and transmission the kernel does not need to copy packets from kernel space to user space and vice versa. -

-Our toolkit can be used for network development and analysis, debugging, auditing or network reconnaissance. -

-The netsniff-ng toolkit consists of the following utilities: -

    -
  • netsniff-ng, a fast zero-copy analyzer, pcap capturing and replaying tool
  • -
  • trafgen, a multithreaded low-level zero-copy network packet generator
  • -
  • mausezahn, high-level packet generator for HW/SW appliances with Cisco-CLI*
  • -
  • bpfc, a Berkeley Packet Filter compiler, Linux BPF JIT disassembler
  • -
  • ifpps, a top-like kernel networking statistics tool
  • -
  • flowtop, a top-like netfilter connection tracking tool
  • -
  • curvetun, a lightweight curve25519-based IP tunnel
  • -
  • astraceroute, an autonomous system (AS) trace route utility
  • -
-Get it via Git:   git clone git://github.com/netsniff-ng/netsniff-ng.git

-Note (*): We took over further maintenance and development of mausezahn. -

Download and Release Notes

-

-In general, the latest Git development version from our repository can be used as it is considered as quite stable and includes new features. -

-

-From time to time we also do stable snapshots from our Git tree and announce it on our mailing list. The current stable release is netsniff-ng 0.6.5. -

-

-It can be downloaded from our public directory, from the mirror at distanz.ch, or via Git:

-

-  git clone git://github.com/netsniff-ng/netsniff-ng.git
-  cd netsniff-ng
-  git checkout v0.6.5
-

-Older releases can also be found in our public directory (mirror) and we also have a source code cross referencer for netsniff-ng's Git tree. -

-

-netsniff-ng is open source and released under the GPL version 2.0. -

-

-

Release Notes

-

-All release notes can be found on Github. -

- -

Tools

-

-netsniff-ng is a fast network analyzer based on packet mmap(2) mechanisms. It can record pcap files to disc, replay them and also do an offline and online analysis. Capturing, analysis or replay of raw 802.11 frames are supported as well. pcap files are also compatible with tcpdump or Wireshark traces. netsniff-ng processes those pcap traces either in scatter-gather I/O or by mmap(2) I/O. -

-trafgen is a multi-threaded network traffic generator based on packet mmap(2) mechanisms. It has its own flexible, macro-based low-level packet configuration language. Injection of raw 802.11 frames are supported as well. trafgen has a significantly higher speed than mausezahn and comes very close to pktgen, but runs from user space. pcap traces can also be converted into a trafgen packet configuration. -

-mausezahn is a high-level packet generator that can run on a hardware-software appliance and comes with a Cisco-like CLI. It can craft nearly every possible or impossible packet. Thus, it can be used, for example, to test network behaviour under strange circumstances (stress test, malformed packets) or to test hardware-software appliances for several kind of attacks. -

-bpfc is a Berkeley Packet Filter (BPF) compiler that understands the original BPF language developed by McCanne and Jacobson. It accepts BPF mnemonics and converts them into kernel/netsniff-ng readable BPF ``opcodes''. It also supports undocumented Linux filter extensions. This can especially be useful for more complicated filters, that high-level filters fail to support. -

-ifpps is a tool which periodically provides top-like networking and system statistics from the Linux kernel. It gathers statistical data directly from procfs files and does not apply any user space traffic monitoring that would falsify statistics on high packet rates. For wireless, data about link connectivity is provided as well. -

-flowtop is a top-like connection tracking tool that can run on an end host or router. It is able to present TCP or UDP flows that have been collected by the kernel's netfilter framework. GeoIP and TCP state machine information is displayed. Also, on end hosts flowtop can show PIDs and application names that flows relate to. No user space traffic monitoring is done, thus all data is gathered by the kernel. -

-curvetun is a lightweight, high-speed ECDH multiuser tunnel for Linux. curvetun uses the Linux TUN/TAP interface and supports {IPv4,IPv6} over {IPv4,IPv6} with UDP or TCP as carrier protocols. Packets are encrypted end-to-end by a symmetric stream cipher (Salsa20) and authenticated by a MAC (Poly1305), where keys have previously been computed with the ECDH key agreement protocol (Curve25519). -

-astraceroute is an autonomous system (AS) trace route utility. Unlike traceroute or tcptraceroute, it not only display hops, but also their AS information they belong to as well as GeoIP information and other interesting things. On default, it uses a TCP probe packet and falls back to ICMP probes in case no ICMP answer has been received. -

-Concluding, the toolkit is split into small, useful utilities that are or are not necessarily related to each other. Each program for itself fills a gap as a helper in your daily network debugging, development or audit. - -

Mailing List

-

-Please post questions and patches to the netsniff-ng mailing list netsniff-ng@googlegroups.com (list on Google Groups, archive) -

- -

Documentation

-

-The best way to get a good overview of what it is all about and how the tools work is to look into the individual man pages of the toolkit, found in the source code repository. This covers everything you need to know. -

-If you start each tool with ``--help'', minimal usage examples are provided, too. We also have a frequently asked question page. Moreover, see the Wikipedia article people wrote about netsniff-ng. If all of this is not enough, you can write your question to netsniff-ng@googlegroups.com, or google for it on third party sites or blogs. -

-Various conference slides from netsniff-ng talks can be found here:

-2013: -

-2012: - -netsniff-ng toolkit partially covered in books:

-

- -To dig into the inner workings of the Berkeley Packet Filter architecture, have a look at this. Documentation about the ``packet_mmap'' architecture with ``pf_packet'' sockets for the Linux kernel can be downloaded from kernel.org under packet_mmap.txt. - -

Development

-

-Source control -

-There's a public Git repository at Github where you can check out the entire code base. For tamper resistant downloading, clone the Git repository and checkout the corresponding version tag. It can be verified with GPG. -

-Maintenance: -

-The Git repository of the toolkit is maintained by Tobias Klauser and Daniel Borkmann. -

-Testing: -

-Especially for testing netsniff-ng's protocol dissectors, we have a public archive maintained by Markus Amend with a lot of example pcap files for raw 802.11 frames, VLAN, ICMP, IPv6, MPLS and many other protocols. There's also a dissector fuzzing script in the source repository to test broken or half-broken pcap files. Some usage examples for testing can also be found here. -

-

-Documents -

-There is a netsniff-ng frequently asked question site and for participating in development have a look at the documentation and man-page files within the source code. Here is also a FAQ about the GNU GPL version 2, under which netsniff-ng is licensed. For reporting bugs please use our bug tracking system or preferably write an e-mail to our mailing list. -

-Contribute -

-Currently, netsniff-ng is only available for Linux platforms. If you have a port for *BSD, let us know for merging your port into the main source tree. However, please do not port netsniff-ng to Windows or other proprietary junk software! Here is a nice explanation why; we share Felix von Leitner's point of view. -

-If you think this software is great, then please consider to contribute in one of the following ways: -

    -
  • Review and contribute to the source code
  • -
  • Add or improve documentation, man-pages
  • -
  • Mention us in your talks at conferences
  • -
  • Maintain distribution specific packages
  • -
  • Test netsniff-ng on your specific platform
  • -
- -

Support

-

-A mailing list for netsniff-ng moderated, spam free user discussions is open to the public. Simply mail to netsniff-ng@googlegroups.com. -

-

-There's also an archive at gmane and a searchable archive. We usually track (and then fix) bugs through our mailing list. But we also accept bug reports through our bug tracker. -

-Before posting questions, have a look at our FAQ. - -

Git Tree

-

The netsniff-ng project is always looking for community members interested in contributing. For versioning control, the natural choice is Git. -

-

-The patch submission process is similar to the one of the Linux kernel. So please respect the kernel's coding guidelines and patch submission procedure. -

-

-Send your patches e.g. via git-send-email(1) to netsniff-ng@googlegroups.com with ``[PATCH]'' as a subject prefix for further review and inclusion.

-
-
git://
-
-
git://github.com/netsniff-ng/netsniff-ng.git
-
-
http://
-
https://github.com/netsniff-ng/netsniff-ng
-
mirror
-
http://git.distanz.ch/cgit.cgi/netsniff-ng.git/
-
- -
netsniff-ng
-

Thanks

-

-netsniff-ng is free software and provided in the hope that it is found useful for your daily network plumbing. Suggestions for new features or patch contributions are very welcome and appreciated, drop us a short mail.

- - diff --git a/docs/style.css b/docs/style.css deleted file mode 100644 index 32c47ffb..00000000 --- a/docs/style.css +++ /dev/null @@ -1,167 +0,0 @@ -/* Sans-serif font. */ -h1, h2, h3, h4, h5, h6, -div.title, caption.title, -thead, p.table.header, -div#toctitle, -span#author, span#revnumber, span#revdate, span#revremark, -div#footer, -th { - font-family: "Lucida Grande", "Luxi Sans", "Trebuchet MS", "Bitstream Vera Sans", helvetica, verdana, arial, sans-serif; -} - -p, td { - font-family: inherit; -} - -div.overview_img { - float: right; - margin-top: 10px; - margin-left: 20px; - margin-bottom: 10px; -} - -th { - text-align: left; - background: #F0F0F0; - padding: 5px; -} - -th.sub { - background: none; -} - -tr.current { - background: #90EE90; -} - -tt { - font-size: inherit; -} - -body { - margin: 1em 5% 1em 5%; -} - -a { - color: #000000; - text-decoration: underline; -} -a:visited { - color: #000000; -} - -.dg { color: #000000; } - -em { - font-style: italic; - /* color: navy; */ -} - -strong { - font-weight: bold; - color: black; - /* color: #083194; */ -} - -tt { - font-size: inherit; - color: navy; -} - -h1, h2, h3, h4, h5, h6 { - color: #000000; - margin-left: -1.0em; - margin-top: 0.5em; - margin-bottom: 0.1em; - line-height: 1.3; -} - -h1 { - color: #000000; -} -h2 { - padding-top: 0.5em; -} -h3 { - float: left; - margin-bottom: 0.7em; -} -h3 + * { - clear: left; -} - -hr { - border: 1px solid; - color: #000000; - width: 100%; -} - -p { - margin-top: 0.5em; - margin-bottom: 0.5em; -} - -ul, ol, li > p { - margin-top: 0; -} -/* ul > li { color: #aaa; } */ -ul > li > * { color: black; } - -pre { - padding: 0; - margin: 0; -} - -dl { - margin-top: 0.8em; - margin-bottom: 0.8em; -} -dt { - margin-top: 0.5em; - margin-bottom: 0; - font-weight: bold; - color: #000000; -} -dd > *:first-child { - margin-top: 0.1em; -} - -ul, ol { - list-style-position: outside; -} -span.aqua { color: aqua; } -span.black { color: black; } -span.blue { color: blue; } -span.fuchsia { color: fuchsia; } -span.gray { color: gray; } -span.green { color: green; } -span.lime { color: lime; } -span.maroon { color: maroon; } -span.navy { color: navy; } -span.olive { color: olive; } -span.purple { color: purple; } -span.red { color: red; } -span.silver { color: silver; } -span.teal { color: teal; } -span.white { color: white; } -span.yellow { color: yellow; } - -span.aqua-background { background: aqua; } -span.black-background { background: black; } -span.blue-background { background: blue; } -span.fuchsia-background { background: fuchsia; } -span.gray-background { background: gray; } -span.green-background { background: green; } -span.lime-background { background: lime; } -span.maroon-background { background: maroon; } -span.navy-background { background: navy; } -span.olive-background { background: olive; } -span.purple-background { background: purple; } -span.red-background { background: red; } -span.silver-background { background: silver; } -span.teal-background { background: teal; } -span.white-background { background: white; } -span.yellow-background { background: yellow; } - -span.big { font-size: 2em; } -span.small { font-size: 0.6em; } -- 2.11.4.GIT