Lines Matching refs:pptr

489 decode_prefix4(const u_char *pptr, u_int itemlen, char *buf, u_int buflen)
494 TCHECK(pptr[0]);
496 plen = pptr[0];
503 TCHECK2(pptr[1], plenbytes);
505 memcpy(&addr, &pptr[1], plenbytes);
521 decode_labeled_prefix4(const u_char *pptr, u_int itemlen, char *buf, u_int buflen)
527 TCHECK2(pptr[0], 4);
529 plen = pptr[0]; /* get prefix length */
550 TCHECK2(pptr[4], plenbytes);
552 memcpy(&addr, &pptr[4], plenbytes);
561 EXTRACT_24BITS(pptr+1)>>4,
562 ((pptr[3]&1)==0) ? "(BOGUS: Bottom of Stack NOT set!)" : "(bottom)" );
579 bgp_vpn_ip_print (const u_char *pptr, u_int addr_length) {
587 TCHECK2(pptr[0], sizeof(struct in_addr));
588 snprintf(pos, sizeof(addr), "%s", ipaddr_string(pptr));
592 TCHECK2(pptr[0], sizeof(struct in6_addr));
593 snprintf(pos, sizeof(addr), "%s", ip6addr_string(pptr));
626 bgp_vpn_sg_print (const u_char *pptr, char *buf, u_int buflen) {
634 TCHECK2(pptr[0], 1);
635 addr_length = *pptr++;
638 TCHECK2(pptr[0], (addr_length >> 3));
643 bgp_vpn_ip_print(pptr, addr_length));
644 pptr += (addr_length >> 3);
648 TCHECK2(pptr[0], 1);
649 addr_length = *pptr++;
652 TCHECK2(pptr[0], (addr_length >> 3));
657 bgp_vpn_ip_print(pptr, addr_length));
658 pptr += (addr_length >> 3);
670 bgp_vpn_rd_print (const u_char *pptr) {
677 switch (EXTRACT_16BITS(pptr)) {
682 EXTRACT_16BITS(pptr+2),
683 EXTRACT_32BITS(pptr+4),
684 *(pptr+4), *(pptr+5), *(pptr+6), *(pptr+7));
690 *(pptr+2), *(pptr+3), *(pptr+4), *(pptr+5), EXTRACT_16BITS(pptr+6));
696 as_printf(astostr, sizeof(astostr), EXTRACT_32BITS(pptr+2)),
697 EXTRACT_16BITS(pptr+6), *(pptr+2), *(pptr+3), *(pptr+4),
698 *(pptr+5), EXTRACT_16BITS(pptr+6));
710 decode_rt_routing_info(const u_char *pptr, char *buf, u_int buflen)
715 TCHECK(pptr[0]);
716 plen = pptr[0]; /* get prefix length */
730 TCHECK2(pptr[1], (plen + 7) / 8);
731 memcpy(&route_target, &pptr[1], (plen + 7) / 8);
737 as_printf(astostr, sizeof(astostr), EXTRACT_32BITS(pptr+1)),
747 decode_labeled_vpn_prefix4(const u_char *pptr, char *buf, u_int buflen)
752 TCHECK(pptr[0]);
753 plen = pptr[0]; /* get prefix length */
764 TCHECK2(pptr[12], (plen + 7) / 8);
765 memcpy(&addr, &pptr[12], (plen + 7) / 8);
772 bgp_vpn_rd_print(pptr+4),
775 EXTRACT_24BITS(pptr+1)>>4,
776 ((pptr[3]&1)==0) ? "(BOGUS: Bottom of Stack NOT set!)" : "(bottom)" );
797 decode_mdt_vpn_nlri(const u_char *pptr, char *buf, u_int buflen)
803 TCHECK(pptr[0]);
806 if (*pptr != MDT_VPN_NLRI_LEN * NBBY)
808 pptr++;
811 TCHECK2(pptr[0], 8);
812 rd = pptr;
813 pptr+=8;
816 TCHECK2(pptr[0], sizeof(struct in_addr));
817 vpn_ip = pptr;
818 pptr+=sizeof(struct in_addr);
821 TCHECK2(pptr[0], sizeof(struct in_addr));
824 bgp_vpn_rd_print(rd), ipaddr_string(vpn_ip), ipaddr_string(pptr));
852 decode_multicast_vpn(const u_char *pptr, char *buf, u_int buflen)
857 TCHECK2(pptr[0], 2);
858 route_type = *pptr++;
859 route_length = *pptr++;
868 TCHECK2(pptr[0], BGP_VPN_RD_LEN);
871 bgp_vpn_rd_print(pptr),
872 bgp_vpn_ip_print(pptr + BGP_VPN_RD_LEN,
876 TCHECK2(pptr[0], BGP_VPN_RD_LEN + 4);
879 bgp_vpn_rd_print(pptr),
881 EXTRACT_32BITS(pptr + BGP_VPN_RD_LEN)));
885 TCHECK2(pptr[0], BGP_VPN_RD_LEN);
888 bgp_vpn_rd_print(pptr));
889 pptr += BGP_VPN_RD_LEN;
891 sg_length = bgp_vpn_sg_print(pptr, buf, buflen);
894 TCHECK2(pptr[0], addr_length);
897 bgp_vpn_ip_print(pptr, addr_length << 3));
901 TCHECK2(pptr[0], BGP_VPN_RD_LEN);
904 bgp_vpn_rd_print(pptr));
905 pptr += BGP_VPN_RD_LEN;
907 bgp_vpn_sg_print(pptr, buf, buflen);
912 TCHECK2(pptr[0], BGP_VPN_RD_LEN);
915 bgp_vpn_rd_print(pptr),
917 EXTRACT_32BITS(pptr + BGP_VPN_RD_LEN)));
918 pptr += BGP_VPN_RD_LEN;
920 bgp_vpn_sg_print(pptr, buf, buflen);
958 decode_labeled_vpn_l2(const u_char *pptr, char *buf, u_int buflen)
962 TCHECK2(pptr[0], 2);
963 plen=EXTRACT_16BITS(pptr);
965 pptr+=2;
972 TCHECK2(pptr[0],12);
975 bgp_vpn_rd_print(pptr),
977 getname(pptr+8)
980 pptr+=12;
987 TCHECK2(pptr[0],15);
990 bgp_vpn_rd_print(pptr),
991 EXTRACT_16BITS(pptr+8),
992 EXTRACT_16BITS(pptr+10),
993 EXTRACT_24BITS(pptr+12)>>4); /* the label is offsetted by 4 bits so lets shift it right */
995 pptr+=15;
1002 TCHECK2(pptr[0], 3);
1003 tlv_type=*pptr++;
1004 tlv_len=EXTRACT_16BITS(pptr);
1006 pptr+=2;
1018 TCHECK(pptr[0]);
1020 strlen=snprintf(buf,buflen, "%02x",*pptr++);
1083 decode_labeled_prefix6(const u_char *pptr, u_int itemlen, char *buf, u_int buflen)
1089 TCHECK2(pptr[0], 4);
1091 plen = pptr[0]; /* get prefix length */
1104 TCHECK2(pptr[4], plenbytes);
1105 memcpy(&addr, &pptr[4], plenbytes);
1114 EXTRACT_24BITS(pptr+1)>>4,
1115 ((pptr[3]&1)==0) ? "(BOGUS: Bottom of Stack NOT set!)" : "(bottom)" );
1127 decode_labeled_vpn_prefix6(const u_char *pptr, char *buf, u_int buflen)
1132 TCHECK(pptr[0]);
1133 plen = pptr[0]; /* get prefix length */
1144 TCHECK2(pptr[12], (plen + 7) / 8);
1145 memcpy(&addr, &pptr[12], (plen + 7) / 8);
1152 bgp_vpn_rd_print(pptr+4),
1155 EXTRACT_24BITS(pptr+1)>>4,
1156 ((pptr[3]&1)==0) ? "(BOGUS: Bottom of Stack NOT set!)" : "(bottom)" );
1166 decode_clnp_prefix(const u_char *pptr, char *buf, u_int buflen)
1171 TCHECK(pptr[0]);
1172 plen = pptr[0]; /* get prefix length */
1178 TCHECK2(pptr[4], (plen + 7) / 8);
1179 memcpy(&addr, &pptr[4], (plen + 7) / 8);
1195 decode_labeled_vpn_clnp_prefix(const u_char *pptr, char *buf, u_int buflen)
1200 TCHECK(pptr[0]);
1201 plen = pptr[0]; /* get prefix length */
1212 TCHECK2(pptr[12], (plen + 7) / 8);
1213 memcpy(&addr, &pptr[12], (plen + 7) / 8);
1220 bgp_vpn_rd_print(pptr+4),
1223 EXTRACT_24BITS(pptr+1)>>4,
1224 ((pptr[3]&1)==0) ? "(BOGUS: Bottom of Stack NOT set!)" : "(bottom)" );
1240 bgp_attr_get_as_size (u_int8_t bgpa_type, const u_char *pptr, int len)
1242 const u_char *tptr = pptr;
1257 while (tptr < pptr + len) {
1274 if (tptr == pptr + len) {
1290 bgp_attr_print(u_int atype, const u_char *pptr, u_int len)
1306 tptr = pptr;
1345 as_size = bgp_attr_get_as_size(atype, pptr, len);
1347 while (tptr < pptr + len) {
1680 while (len - (tptr - pptr) > 0) {
1823 tptr = pptr + len;
1852 while (len - (tptr - pptr) > 0) {
1985 tptr = pptr + len;
2193 TCHECK2(*pptr,len);
2196 print_unknown_data(pptr,"\n\t ",len);
2200 TCHECK2(*pptr,len);
2201 print_unknown_data(pptr,"\n\t ",len);
2603 bgp_route_refresh_print(const u_char *pptr, int len) {
2609 TCHECK2(pptr[0], BGP_ROUTE_REFRESH_SIZE);
2615 bgp_route_refresh_header = (const struct bgp_route_refresh *)pptr;
2630 TCHECK2(*pptr, len);
2631 print_unknown_data(pptr,"\n\t ", len);