32 #ifndef __LIBNET_FUNCTIONS_H
33 #define __LIBNET_FUNCTIONS_H
65 libnet_init(
int injection_type,
const char *device,
char *err_buf);
248 extern const struct libnet_in6_addr in6addr_error;
274 struct libnet_in6_addr
283 char *host_name,
int host_name_len);
446 uint8_t priority, uint8_t cfi, uint16_t vlan_id, uint16_t len_proto,
447 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
464 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
481 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
500 uint8_t *oui, uint16_t type,
const uint8_t* payload, uint32_t payload_s,
501 libnet_t *l, libnet_ptag_t ptag);
522 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
543 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
580 libnet_build_fddi(uint8_t fc,
const uint8_t *dst,
const uint8_t *src, uint8_t dsap,
581 uint8_t ssap, uint8_t cf,
const uint8_t *oui, uint16_t type,
const uint8_t* payload,
582 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
600 uint8_t cf,
const uint8_t *oui, uint16_t type, libnet_t *l);
625 uint16_t op,
const uint8_t *sha,
const uint8_t *spa,
const uint8_t *tha,
const uint8_t *tpa,
626 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
644 uint8_t *tpa, libnet_t *l);
667 uint8_t control, uint16_t win, uint16_t sum, uint16_t urg, uint16_t len,
668 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
707 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
732 uint16_t value_s,
const uint8_t *value,
const uint8_t* payload, uint32_t payload_s,
733 libnet_t *l, libnet_ptag_t ptag);
753 uint16_t
id, uint16_t seq,
const uint8_t* payload, uint32_t payload_s,
754 libnet_t *l, libnet_ptag_t ptag);
775 uint16_t
id, uint16_t seq, uint32_t mask,
const uint8_t* payload,
776 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
795 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
815 uint32_t gateway,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
836 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
859 uint16_t
id, uint16_t seq, uint32_t otime, uint32_t rtime, uint32_t ttime,
860 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
879 sum, uint16_t
id, uint16_t seq, uint8_t *payload, uint32_t payload_s,
880 libnet_t *l, libnet_ptag_t ptag);
899 uint8_t *payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
918 uint16_t sum,
struct libnet_in6_addr target, uint8_t *payload, uint32_t
919 payload_s, libnet_t* l, libnet_ptag_t ptag);
939 uint16_t sum, uint32_t flags,
struct libnet_in6_addr target, uint8_t
940 *payload, uint32_t payload_s, libnet_t* l, libnet_ptag_t ptag);
954 uint32_t option_s, libnet_t* l, libnet_ptag_t ptag);
974 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
999 uint8_t ttl, uint8_t prot, uint16_t sum, uint32_t src, uint32_t dst,
1000 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1024 libnet_ptag_t ptag);
1063 uint8_t hl,
struct libnet_in6_addr src,
struct libnet_in6_addr dst,
1064 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1082 uint32_t
id,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1083 libnet_ptag_t ptag);
1106 uint8_t segments,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1107 libnet_ptag_t ptag);
1126 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1146 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1168 libnet_t *l, libnet_ptag_t ptag);
1191 uint8_t *shost, uint16_t len,
const uint8_t *snap, uint16_t vid,
1192 uint16_t portindex, uint16_t reserved,
const uint8_t* payload,
1193 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1210 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1227 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1247 uint32_t spi, uint32_t seq, uint32_t auth,
const uint8_t* payload,
1248 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1270 uint16_t num_q, uint16_t num_anws_rr, uint16_t num_auth_rr,
1271 uint16_t num_addi_rr,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1272 libnet_ptag_t ptag);
1295 uint16_t rt, uint32_t addr, uint32_t mask, uint32_t next_hop,
1296 uint32_t metric,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1297 libnet_ptag_t ptag);
1325 uint32_t prog_vers, uint32_t procedure, uint32_t cflavor, uint32_t clength,
1326 uint8_t *cdata, uint32_t vflavor, uint32_t vlength,
const uint8_t *vdata,
1327 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1355 uint8_t flags,
const uint8_t *root_id, uint32_t root_pc,
const uint8_t *bridge_id,
1356 uint16_t port_id, uint16_t message_age, uint16_t max_age,
1357 uint16_t hello_time, uint16_t f_delay,
const uint8_t* payload,
1358 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1377 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1400 uint8_t dsap, uint8_t ssap, uint8_t cf,
const uint8_t *oui, uint16_t type,
1401 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1420 uint8_t dsap, uint8_t ssap, uint8_t cf,
const uint8_t *oui, uint16_t type,
1446 uint8_t priority, uint8_t ip_count, uint8_t auth_type, uint8_t advert_int,
1447 uint16_t sum,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1448 libnet_ptag_t ptag);
1466 uint8_t ttl,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1467 libnet_ptag_t ptag);
1500 uint8_t stratum, uint8_t poll, uint8_t precision, uint16_t delay_int,
1501 uint16_t delay_frac, uint16_t dispersion_int, uint16_t dispersion_frac,
1502 uint32_t reference_id, uint32_t ref_ts_int, uint32_t ref_ts_frac,
1503 uint32_t orig_ts_int, uint32_t orig_ts_frac, uint32_t rec_ts_int,
1504 uint32_t rec_ts_frac, uint32_t xmt_ts_int, uint32_t xmt_ts_frac,
1505 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1524 uint32_t area_id, uint16_t sum, uint16_t autype,
const uint8_t* payload,
1525 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1545 uint8_t priority, uint32_t dead_int, uint32_t des_rtr, uint32_t bkup_rtr,
1546 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1563 uint32_t seqnum,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1564 libnet_ptag_t ptag);
1580 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1594 libnet_t *l, libnet_ptag_t ptag);
1615 uint32_t lsid, uint32_t advrtr, uint32_t seqnum, uint16_t sum, uint16_t len,
1616 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1636 uint32_t data, uint8_t type, uint8_t tos, uint16_t metric,
const uint8_t* payload,
1637 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1652 uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1668 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1685 uint32_t tag,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1686 libnet_ptag_t ptag);
1703 libnet_ptag_t ptag);
1730 uint8_t hopcount, uint32_t xid, uint16_t secs, uint16_t flags,
1731 uint32_t cip, uint32_t yip, uint32_t sip, uint32_t gip,
const uint8_t *chaddr,
1732 const char *sname,
const char *file,
const uint8_t* payload, uint32_t payload_s,
1733 libnet_t *l, libnet_ptag_t ptag);
1760 uint8_t hopcount, uint32_t xid, uint16_t secs, uint16_t flags,
1761 uint32_t cip, uint32_t yip, uint32_t sip, uint32_t gip,
const uint8_t *chaddr,
1762 const char *sname,
const char *file,
const uint8_t* payload, uint32_t payload_s,
1763 libnet_t *l, libnet_ptag_t ptag);
1800 uint16_t offset, uint32_t key, uint32_t seq, uint16_t len,
1801 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1828 uint16_t offset, uint32_t key, uint32_t seq, uint16_t len,
1829 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1846 uint8_t *routing,
const uint8_t* payload, uint32_t payload_s, libnet_t *l,
1847 libnet_ptag_t ptag);
1884 uint16_t len, uint8_t type,
const uint8_t* payload, uint32_t payload_s,
1885 libnet_t *l, libnet_ptag_t ptag);
1907 uint32_t bgp_id, uint8_t opt_len,
const uint8_t* payload, uint32_t payload_s,
1908 libnet_t *l, libnet_ptag_t ptag);
1929 uint16_t total_path_attr_len,
const uint8_t *path_attributes, uint16_t info_len,
1930 uint8_t *reachability_info,
const uint8_t* payload, uint32_t payload_s,
1931 libnet_t *l, libnet_ptag_t ptag);
1949 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
1976 uint32_t counter, uint32_t time_sec, uint32_t time_usec, uint32_t pid,
1977 uint32_t uid, uint32_t fd, uint8_t cmd[SEBEK_CMD_LENGTH], uint32_t length,
1978 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
2003 uint8_t hello_time, uint8_t hold_time, uint8_t priority, uint8_t group,
2004 uint8_t reserved, uint8_t authdata[HSRP_AUTHDATA_LENGTH], uint32_t virtual_ip,
2005 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
2024 libnet_build_link(
const uint8_t *dst,
const uint8_t *src,
const uint8_t *oui, uint16_t type,
2025 const uint8_t* payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
2083 struct libnet_in6_addr
2095 struct libnet_ether_addr *
2155 uint32_t *header_s);
2393 libnet_write_raw_ipv4(libnet_t *l,
const uint8_t *packet, uint32_t size);
2400 libnet_write_raw_ipv6(libnet_t *l,
const uint8_t *packet, uint32_t size);
2407 libnet_write_link(libnet_t *l,
const uint8_t *packet, uint32_t size);
2413 libnet_open_raw4(libnet_t *l);
2420 libnet_close_raw4(libnet_t *l);
2426 libnet_open_raw6(libnet_t *l);
2432 libnet_close_raw6(libnet_t *l);
2438 libnet_select_device(libnet_t *l);
2444 libnet_open_link(libnet_t *l);
2450 libnet_close_link(libnet_t *l);
2459 libnet_do_checksum(libnet_t *l, uint8_t *iphdr,
int protocol,
int h_len);
2480 libnet_inet_checksum(libnet_t *l, uint8_t *iphdr,
int protocol,
int h_len,
const uint8_t *beg,
const uint8_t * end);
2487 libnet_compute_crc(uint8_t *buf, uint32_t len);
2494 libnet_ip_check(uint16_t *addr,
int len);
2501 libnet_in_cksum(uint16_t *addr,
int len);
2512 libnet_pblock_probe(libnet_t *l, libnet_ptag_t ptag, uint32_t b_len,
2522 libnet_pblock_new(libnet_t *l, uint32_t b_len);
2530 libnet_pblock_swap(libnet_t *l, libnet_ptag_t ptag1, libnet_ptag_t ptag2);
2538 libnet_pblock_insert_before(libnet_t *l, libnet_ptag_t ptag1,
2539 libnet_ptag_t ptag2);
2547 libnet_pblock_delete(libnet_t *l, libnet_pblock_t *p);
2557 libnet_pblock_update(libnet_t *l, libnet_pblock_t *p, uint32_t h, uint8_t type);
2566 libnet_pblock_find(libnet_t *l, libnet_ptag_t ptag);
2574 libnet_pblock_append(libnet_t *l, libnet_pblock_t *p,
const void *buf, uint32_t len);
2582 libnet_pblock_setflags(libnet_pblock_t *p, uint8_t flags);
2591 libnet_pblock_p2p(uint8_t type);
2600 libnet_pblock_coalesce(libnet_t *l, uint8_t **packet, uint32_t *size);
2609 libnet_check_iface(libnet_t *l);
2612 #if defined(__WIN32__)
2617 libnet_win32_get_remote_mac(libnet_t *l, DWORD IP);
2623 libnet_close_link_interface(libnet_t *l);
2629 libnet_win32_read_arp_table(DWORD IP);