31 #ifndef __LIBNET_FUNCTIONS_H
32 #define __LIBNET_FUNCTIONS_H
64 libnet_init(
int injection_type,
const char *device,
char *err_buf);
113 libnet_setfd_max_sndbuf(libnet_t *l,
int max_bytes);
259 extern const struct libnet_in6_addr in6addr_error;
285 struct libnet_in6_addr
306 char *host_name,
int host_name_len);
469 uint8_t priority, uint8_t cfi, uint16_t vlan_id, uint16_t len_proto,
470 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
487 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
504 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
523 uint8_t *oui, uint16_t type,
const uint8_t* payload, uint32_t payload_s,
524 libnet_t *l, libnet_ptag_t ptag);
545 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
566 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
603 libnet_build_fddi(uint8_t fc,
const uint8_t *dst,
const uint8_t *src, uint8_t dsap,
604 uint8_t ssap, uint8_t cf,
const uint8_t *oui, uint16_t type,
const uint8_t* payload,
605 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
623 uint8_t cf,
const uint8_t *oui, uint16_t type, libnet_t *l);
648 uint16_t op,
const uint8_t *sha,
const uint8_t *spa,
const uint8_t *tha,
const uint8_t *tpa,
649 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
667 const uint8_t *tpa, libnet_t *l);
690 uint8_t control, uint16_t win, uint16_t sum, uint16_t urg, uint16_t len,
691 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
730 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
755 uint16_t value_s,
const uint8_t *value,
const uint8_t* payload, uint32_t payload_s,
756 libnet_t *l, libnet_ptag_t ptag);
770 const uint8_t *value,
const uint8_t value_s,
771 libnet_t *l, libnet_ptag_t ptag);
785 const uint8_t *value,
const uint8_t value_s,
786 libnet_t *l, libnet_ptag_t ptag);
798 libnet_t *l, libnet_ptag_t ptag);
823 const uint16_t value_s, libnet_t *l, libnet_ptag_t ptag);
851 uint16_t
id, uint16_t seq,
const uint8_t* payload, uint32_t payload_s,
852 libnet_t *l, libnet_ptag_t ptag);
873 uint16_t
id, uint16_t seq, uint32_t mask,
const uint8_t* payload,
874 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
893 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
913 uint32_t gateway,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
934 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
958 uint16_t
id, uint16_t seq, uint32_t otime, uint32_t rtime, uint32_t ttime,
959 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
979 sum, uint16_t
id, uint16_t seq, uint8_t *payload, uint32_t payload_s,
980 libnet_t *l, libnet_ptag_t ptag);
1000 uint8_t *payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1019 uint16_t sum,
struct libnet_in6_addr target, uint8_t *payload, uint32_t
1020 payload_s, libnet_t* l, libnet_ptag_t ptag);
1040 uint16_t sum, uint32_t flags,
struct libnet_in6_addr target, uint8_t
1041 *payload, uint32_t payload_s, libnet_t* l, libnet_ptag_t ptag);
1055 uint32_t option_s, libnet_t* l, libnet_ptag_t ptag);
1075 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1100 uint8_t ttl, uint8_t prot, uint16_t sum, uint32_t src, uint32_t dst,
1101 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1125 libnet_ptag_t ptag);
1164 uint8_t hl,
struct libnet_in6_addr src,
struct libnet_in6_addr dst,
1165 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1183 uint32_t
id,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1184 libnet_ptag_t ptag);
1207 uint8_t segments,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1208 libnet_ptag_t ptag);
1227 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1247 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1269 libnet_t *l, libnet_ptag_t ptag);
1292 uint8_t *shost, uint16_t len,
const uint8_t *snap, uint16_t vid,
1293 uint16_t portindex, uint16_t reserved,
const uint8_t* payload,
1294 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1311 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1328 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1348 uint32_t spi, uint32_t seq, uint32_t auth,
const uint8_t* payload,
1349 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1371 uint16_t num_q, uint16_t num_anws_rr, uint16_t num_auth_rr,
1372 uint16_t num_addi_rr,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1373 libnet_ptag_t ptag);
1396 uint16_t rt, uint32_t addr, uint32_t mask, uint32_t next_hop,
1397 uint32_t metric,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1398 libnet_ptag_t ptag);
1426 uint32_t prog_vers, uint32_t procedure, uint32_t cflavor, uint32_t clength,
1427 uint8_t *cdata, uint32_t vflavor, uint32_t vlength,
const uint8_t *vdata,
1428 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1456 uint8_t flags,
const uint8_t *root_id, uint32_t root_pc,
const uint8_t *bridge_id,
1457 uint16_t port_id, uint16_t message_age, uint16_t max_age,
1458 uint16_t hello_time, uint16_t f_delay,
const uint8_t* payload,
1459 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1478 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1498 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1512 libnet_t *l, libnet_ptag_t ptag);
1526 libnet_t *l, libnet_ptag_t ptag);
1540 libnet_t *l, libnet_ptag_t ptag);
1553 libnet_ptag_t ptag);
1566 libnet_ptag_t ptag);
1580 libnet_t *l, libnet_ptag_t ptag);
1593 libnet_ptag_t ptag);
1616 uint8_t dsap, uint8_t ssap, uint8_t cf,
const uint8_t *oui, uint16_t type,
1617 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1636 uint8_t dsap, uint8_t ssap, uint8_t cf,
const uint8_t *oui, uint16_t type,
1662 uint8_t priority, uint8_t ip_count, uint8_t auth_type, uint8_t advert_int,
1663 uint16_t sum,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1664 libnet_ptag_t ptag);
1682 uint8_t ttl,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1683 libnet_ptag_t ptag);
1716 uint8_t stratum, uint8_t poll, uint8_t precision, uint16_t delay_int,
1717 uint16_t delay_frac, uint16_t dispersion_int, uint16_t dispersion_frac,
1718 uint32_t reference_id, uint32_t ref_ts_int, uint32_t ref_ts_frac,
1719 uint32_t orig_ts_int, uint32_t orig_ts_frac, uint32_t rec_ts_int,
1720 uint32_t rec_ts_frac, uint32_t xmt_ts_int, uint32_t xmt_ts_frac,
1721 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1740 uint32_t area_id, uint16_t sum, uint16_t autype,
const uint8_t* payload,
1741 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1761 uint8_t priority, uint32_t dead_int, uint32_t des_rtr, uint32_t bkup_rtr,
1762 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1782 uint8_t priority, uint32_t dead_int, uint32_t des_rtr, uint32_t bkup_rtr, uint32_t neighbor,
1783 const uint8_t *payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1800 uint32_t seqnum,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1801 libnet_ptag_t ptag);
1817 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1831 libnet_t *l, libnet_ptag_t ptag);
1852 uint32_t lsid, uint32_t advrtr, uint32_t seqnum, uint16_t sum, uint16_t len,
1853 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1873 uint32_t data, uint8_t type, uint8_t tos, uint16_t metric,
const uint8_t* payload,
1874 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1889 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1905 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1922 uint32_t tag,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1923 libnet_ptag_t ptag);
1940 libnet_ptag_t ptag);
1967 uint8_t hopcount, uint32_t xid, uint16_t secs, uint16_t flags,
1968 uint32_t cip, uint32_t yip, uint32_t sip, uint32_t gip,
const uint8_t *chaddr,
1969 const char *sname,
const char *file,
const uint8_t* payload, uint32_t payload_s,
1970 libnet_t *l, libnet_ptag_t ptag);
1997 uint8_t hopcount, uint32_t xid, uint16_t secs, uint16_t flags,
1998 uint32_t cip, uint32_t yip, uint32_t sip, uint32_t gip,
const uint8_t *chaddr,
1999 const char *sname,
const char *file,
const uint8_t* payload, uint32_t payload_s,
2000 libnet_t *l, libnet_ptag_t ptag);
2037 uint16_t offset, uint32_t key, uint32_t seq, uint16_t len,
2038 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
2065 uint16_t offset, uint32_t key, uint32_t seq, uint16_t len,
2066 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
2083 uint8_t *routing,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
2084 libnet_ptag_t ptag);
2121 uint16_t len, uint8_t type,
const uint8_t* payload, uint32_t payload_s,
2122 libnet_t *l, libnet_ptag_t ptag);
2144 uint32_t bgp_id, uint8_t opt_len,
const uint8_t* payload, uint32_t payload_s,
2145 libnet_t *l, libnet_ptag_t ptag);
2166 uint16_t total_path_attr_len,
const uint8_t *path_attributes, uint16_t info_len,
2167 uint8_t *reachability_info,
const uint8_t* payload, uint32_t payload_s,
2168 libnet_t *l, libnet_ptag_t ptag);
2186 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
2213 uint32_t counter, uint32_t time_sec, uint32_t time_usec, uint32_t pid,
2214 uint32_t uid, uint32_t fd, uint8_t cmd[SEBEK_CMD_LENGTH], uint32_t length,
2215 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
2240 uint8_t hello_time, uint8_t hold_time, uint8_t priority, uint8_t group,
2241 uint8_t reserved, uint8_t authdata[HSRP_AUTHDATA_LENGTH], uint32_t virtual_ip,
2242 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
2261 libnet_build_link(
const uint8_t *dst,
const uint8_t *src,
const uint8_t *oui, uint16_t type,
2262 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
2320 struct libnet_in6_addr
2332 struct libnet_ether_addr *
2392 uint32_t *header_s);
2633 libnet_write_raw_ipv4(libnet_t *l,
const uint8_t *packet, uint32_t size);
2640 libnet_write_raw_ipv6(libnet_t *l,
const uint8_t *packet, uint32_t size);
2647 libnet_write_link(libnet_t *l,
const uint8_t *packet, uint32_t size);
2653 libnet_open_raw4(libnet_t *l);
2660 libnet_close_raw4(libnet_t *l);
2666 libnet_open_raw6(libnet_t *l);
2672 libnet_close_raw6(libnet_t *l);
2678 libnet_select_device(libnet_t *l);
2684 libnet_open_link(libnet_t *l);
2690 libnet_close_link(libnet_t *l);
2699 libnet_do_checksum(libnet_t *l, uint8_t *iphdr,
int protocol,
int h_len);
2720 libnet_inet_checksum(libnet_t *l, uint8_t *iphdr,
int protocol,
int h_len,
const uint8_t *beg,
const uint8_t * end);
2727 libnet_compute_crc(uint8_t *buf, uint32_t len);
2734 libnet_ip_check(uint16_t *addr,
int len);
2741 libnet_in_cksum(uint16_t *addr,
int len);
2752 libnet_pblock_probe(libnet_t *l, libnet_ptag_t ptag, uint32_t b_len,
2762 libnet_pblock_new(libnet_t *l, uint32_t b_len);
2770 libnet_pblock_swap(libnet_t *l, libnet_ptag_t ptag1, libnet_ptag_t ptag2);
2778 libnet_pblock_insert_before(libnet_t *l, libnet_ptag_t ptag1,
2779 libnet_ptag_t ptag2);
2787 libnet_pblock_delete(libnet_t *l, libnet_pblock_t *p);
2797 libnet_pblock_update(libnet_t *l, libnet_pblock_t *p, uint32_t h, uint8_t type);
2806 libnet_pblock_find(libnet_t *l, libnet_ptag_t ptag);
2814 libnet_pblock_append(libnet_t *l, libnet_pblock_t *p,
const void *buf, uint32_t len);
2822 libnet_pblock_setflags(libnet_pblock_t *p, uint8_t flags);
2831 libnet_pblock_p2p(uint8_t type);
2840 libnet_pblock_coalesce(libnet_t *l, uint8_t **packet, uint32_t *size);
2849 libnet_check_iface(libnet_t *l);
2852 #if defined(__WIN32__)
2857 libnet_win32_get_remote_mac(libnet_t *l, DWORD IP);
2863 libnet_close_link_interface(libnet_t *l);
2869 libnet_win32_read_arp_table(DWORD IP);