summaryrefslogtreecommitdiffstats
path: root/src/include/gpxe/tcpip.h
Commit message (Collapse)AuthorAgeFilesLines
* [tables] Incorporate table data type information into table definitionMichael Brown2009-03-131-6/+5Star
| | | | | | | Eliminate the potential for mismatches between table names and the table entry data type by incorporating the data type into the definition of the table, rather than specifying it explicitly in each table accessor method.
* [tables] Redefine methods for accessing linker tablesMichael Brown2009-03-131-2/+8
| | | | | | | | | | | | | | | Intel's C compiler (icc) chokes on the zero-length arrays that we currently use as part of the mechanism for accessing linker table entries. Abstract away the zero-length arrays, to make a port to icc easier. Introduce macros such as for_each_table_entry() to simplify the common case of iterating over all entries in a linker table. Represent table names as #defined string constants rather than unquoted literals; this avoids visual confusion between table names and C variable or type names, and also allows us to force a compilation error in the event of incorrect table names.
* [tcpip] Allow for transmission to multicast IPv4 addressesMichael Brown2009-01-211-1/+4
| | | | | | | | | | | When sending to a multicast address, it may be necessary to specify the source address explicitly, since the multicast destination address does not provide enough information to deduce the source address via the miniroute table. Allow the source address specified via the data-xfer metadata to be passed down through the TCP/IP stack to the IPv4 layer, which can use it as a default source address.
* [build] Avoid strict-aliasing warnings when building with gcc 4.4Michael Brown2009-01-061-1/+1
| | | | | | | Conventional usage of the various struct sockaddr_xxx types involves liberal use of casting, which tends to trigger strict-aliasing warnings from gcc. Avoid these now and in future by marking all the relevant types with __attribute__((may_alias)).
* pkbuff->iobuf changeoverMichael Brown2007-05-191-9/+9
| | | | | | | | Achieved via Perl using: perl -pi -e 's/pk_buff/io_buffer/g; s/Packet buffer/I\/O buffer/ig; ' \ -e 's/pkbuff\.h/iobuf.h/g; s/pkb_/iob_/g; s/_pkb/_iob/g; ' \ -e 's/pkb/iobuf/g; s/PKB/IOB/g;'
* Ensure that struct sockaddr is long enough...Michael Brown2007-01-181-4/+2Star
|
* Add "name" field to struct device to allow human-readable hardware deviceMichael Brown2007-01-101-2/+4
| | | | | | | | | | | names. Add "dev" pointer in struct net_device to tie network interfaces back to a hardware device. Force natural alignment of data types in __table() macros. This seems to prevent gcc from taking the unilateral decision to occasionally increase their alignment (which screws up the table packing).
* Allow an explicit network device to be specified for IP-layerMichael Brown2007-01-101-2/+8
| | | | transmissions.
* Verify checksums on the RX datapath.Michael Brown2007-01-031-20/+20
| | | | Simplify checksum generation on the TX datapath.
* Remove _PROTOCOL macros for gcc 3.2 compatibilityMarty Connor2006-08-091-14/+4Star
|
* Added features that will be required for PXE UDP support.Michael Brown2006-08-021-37/+58
| | | | | | | Introduced struct sockaddr_tcpip, to simplify code that deals with both IPv4 and IPv6 addresses. Reorganised parts of tcpip.c and udp.c.
* Minor changes to the network layer rx() functionsNikhil Chandru Rao2006-08-011-3/+14
|
* Remove unused functions.Michael Brown2006-08-011-6/+3Star
|
* Renamed trans_{rx,tx}() to tcpip_{rx,tx}(), since they are specific toMichael Brown2006-08-011-2/+2
| | | | | the TCP/IP protocol suite (rather than being general transport-layer functions).
* Renamed tcpip_if.[ch] to tcpip.[ch]Michael Brown2006-08-011-0/+93