hdr_info
print_hdr(struct hdr_info *hdr_info)
struct col_info *col_info = &hdr_info->cols[i];
init_hdr_cols(enum be_fmt be_fmt, struct hdr_info *hdr)
count_widths(enum be_fmt be_fmt, struct hdr_info *hdr, be_node_list_t *be_nodes)
print_be_nodes(const char *be_name, boolean_t parsable, struct hdr_info *hdr,
print_be_snapshots(be_node_list_t *be, struct hdr_info *hdr, boolean_t parsable)
struct hdr_info *hdr, be_node_list_t *nodes)
struct hdr_info hdr;
update_header(mblk_t *mp, mac_header_info_t *hdr_info, boolean_t striphdr)
if (hdr_info->mhi_bindsap == ETHERTYPE_VLAN) {
hdr_info->mhi_istagged = B_TRUE;
hdr_info->mhi_tci = ntohs(evhp->ether_tci);
hdr_info->mhi_origsap = ether_type;
hdr_info->mhi_bindsap = (ether_type > ETHERMTU) ?
hdr_info->mhi_istagged = B_FALSE;
hdr_info->mhi_tci = VLAN_ID_NONE;
bridge_forward(bridge_link_t *blp, mac_header_info_t *hdr_info, mblk_t *mp,
const uint8_t *daddr = hdr_info->mhi_daddr;
update_header(mp, hdr_info, B_FALSE);
trill_encap_fn(tdp, blp, hdr_info, mp,
hdr_info, B_FALSE);
hdr_info, mpsend,
if (hdr_info->mhi_dsttype == MAC_ADDRTYPE_UNICAST)
bridge_get_vlan(bridge_link_t *blp, mac_header_info_t *hdr_info, mblk_t *mp,
if (hdr_info->mhi_bindsap == ETHERTYPE_VLAN) {
mac_header_info_t hdr_info;
&hdr_info) != 0) {
if (hdr_info.mhi_dsttype ==
if (memcmp(hdr_info.mhi_daddr,
else if (memcmp(hdr_info.mhi_daddr,
hdr_info.mhi_bindsap != ETHERTYPE_TRILL &&
(hdr_info.mhi_bindsap != ETHERTYPE_VLAN ||
update_header(mp, &hdr_info, B_TRUE);
if (msglen > hdr_info.mhi_origsap) {
hdr_info.mhi_origsap -
hdr_info.mhi_origsap) {
trill_recv_fn(tdp, blp, rsrc, mp, &hdr_info);
if (mac_header_info(blp->bl_mh, mp, &hdr_info) != 0 ||
(hdr_info.mhi_saddr[0] & 1) != 0) {
if (!bridge_get_vlan(blp, &hdr_info, mp, &vlanid, &tci) ||
if (memcmp(hdr_info.mhi_daddr, all_esadi_rbridges,
bridge_learn(blp, hdr_info.mhi_saddr, RBRIDGE_NICKNAME_NONE,
mp = bridge_forward(blp, &hdr_info, mp, vlanid, tci,
mac_header_info_t hdr_info;
if (mac_header_info(blp->bl_mh, mp, &hdr_info) != 0) {
if (!bridge_get_vlan(blp, &hdr_info, mp, &vlanid, &tci) ||
bridge_learn(blp, hdr_info.mhi_saddr, RBRIDGE_NICKNAME_NONE,
mp = bridge_forward(blp, &hdr_info, mp, vlanid, tci,
mac_header_info_t hdr_info;
if (mac_header_info(blp->bl_mh, mp, &hdr_info) != 0) {
if (hdr_info.mhi_bindsap == ETHERTYPE_VLAN) {
bridge_learn(blp, hdr_info.mhi_saddr, ingress_nick, vlanid);
mp = bridge_forward(blp, &hdr_info, mp, vlanid, tci, B_TRUE, B_TRUE);
__le16 hdr_info;
u16 hdr_info;
__le16 hdr_info;
__le16 hdr_info; /* Splithdr, hdrlen */
mac_header_info_t hdr_info;
if (mac_header_info((mac_handle_t)mip, mp, &hdr_info) != 0)
return ((hdr_info.mhi_dsttype == MAC_ADDRTYPE_BROADCAST) ||
(hdr_info.mhi_dsttype == MAC_ADDRTYPE_MULTICAST));
mac_ether_header_info(mblk_t *mp, void *mac_pdata, mac_header_info_t *hdr_info)
hdr_info->mhi_hdrsize = sizeof (struct ether_header);
hdr_info->mhi_daddr = (const uint8_t *)&(ehp->ether_dhost);
hdr_info->mhi_saddr = (const uint8_t *)&(ehp->ether_shost);
hdr_info->mhi_origsap = ether_type;
hdr_info->mhi_bindsap = (ether_type > ETHERMTU) ?
hdr_info->mhi_pktsize = (hdr_info->mhi_bindsap == DLS_SAP_LLC) ?
hdr_info->mhi_hdrsize + ether_type : 0;
if (mac_ether_unicst_verify(hdr_info->mhi_daddr, NULL) == 0)
hdr_info->mhi_dsttype = MAC_ADDRTYPE_UNICAST;
else if (mac_ether_multicst_verify(hdr_info->mhi_daddr, NULL) == 0)
hdr_info->mhi_dsttype = MAC_ADDRTYPE_MULTICAST;
hdr_info->mhi_dsttype = MAC_ADDRTYPE_BROADCAST;
mac_ib_header_info(mblk_t *mp, void *mac_pdata, mac_header_info_t *hdr_info)
hdr_info->mhi_hdrsize = sizeof (ib_header_info_t);
hdr_info->mhi_daddr = (const uint8_t *)&(ibhp->ib_dst);
hdr_info->mhi_saddr = (const uint8_t *)&(ibhp->ib_src);
hdr_info->mhi_saddr = NULL;
if (mac_ib_unicst_verify(hdr_info->mhi_daddr, mac_pdata) == 0) {
hdr_info->mhi_dsttype = MAC_ADDRTYPE_UNICAST;
} else if (mac_ib_multicst_verify(hdr_info->mhi_daddr,
hdr_info->mhi_dsttype = MAC_ADDRTYPE_MULTICAST;
hdr_info->mhi_dsttype = MAC_ADDRTYPE_BROADCAST;
hdr_info->mhi_origsap = hdr_info->mhi_bindsap = sap;
hdr_info->mhi_pktsize = 0;
mac_ipv4_header_info(mblk_t *mp, void *pdata, mac_header_info_t *hdr_info)
hdr_info->mhi_hdrsize = iphp->ip_hl * sizeof (uint32_t);
hdr_info->mhi_pktsize = 0;
hdr_info->mhi_daddr = (const uint8_t *)&(iphp->ip_dst);
hdr_info->mhi_saddr = (const uint8_t *)&(iphp->ip_src);
hdr_info->mhi_origsap = hdr_info->mhi_bindsap = iphp->ip_p;
hdr_info->mhi_dsttype = MAC_ADDRTYPE_UNICAST;
mac_ipv6_header_info(mblk_t *mp, void *pdata, mac_header_info_t *hdr_info)
hdr_info->mhi_hdrsize = whereptr - mp->b_rptr;
hdr_info->mhi_pktsize = 0;
hdr_info->mhi_daddr = (const uint8_t *)&(ip6hp->ip6_dst);
hdr_info->mhi_saddr = (const uint8_t *)&(ip6hp->ip6_src);
hdr_info->mhi_bindsap = hdr_info->mhi_origsap = nexthdr;
hdr_info->mhi_dsttype = MAC_ADDRTYPE_UNICAST;
mac_header_info_t hdr_info;
if (mac_header_info(sdev->sd_mh, mp, &hdr_info) != 0) {
hdr_info.mhi_dsttype != MAC_ADDRTYPE_BROADCAST) {
if (hdr_info.mhi_dsttype == MAC_ADDRTYPE_UNICAST &&
bcmp(hdr_info.mhi_daddr, sdev->sd_mac_addr,
} else if (hdr_info.mhi_dsttype == MAC_ADDRTYPE_MULTICAST) {
if (mcastaddr_lookup(sdev, hdr_info.mhi_daddr) ==
mblk_t *mp, mac_header_info_t *hdr_info)
if (hdr_info->mhi_saddr[0] & 1)
if (bcmp(hdr_info->mhi_saddr, blp->bl_local_mac, ETHERADDRL) == 0)
if (hdr_info->mhi_dsttype == MAC_ADDRTYPE_UNICAST &&
bcmp(hdr_info->mhi_daddr, blp->bl_local_mac, ETHERADDRL) != 0)
if (hdr_info->mhi_bindsap == ETHERTYPE_TRILL) {
trill_recv(tsock, mp, hdr_info->mhi_saddr);
trill_ctrl_input(tsock, mp, hdr_info->mhi_saddr,
hdr_info->mhi_daddr[4] == all_isis_rbridges[4] ?
hdr_info->mhi_tci : TRILL_TCI_BPDU);
trill_encap_pkt_cb(void *lptr, bridge_link_t *blp, mac_header_info_t *hdr_info,
ASSERT(hdr_info->mhi_bindsap != ETHERTYPE_TRILL);
if (hdr_info->mhi_istagged) {
vlan = VLAN_ID(hdr_info->mhi_tci);
DTRACE_PROBE2(trill__fwd__packet, mac_header_info_t *, hdr_info,
mac_header_info_t hdr_info;
if (mac_header_info(xnbop->o_mh, mp, &hdr_info) != 0) {
if ((hdr_info.mhi_dsttype == MAC_ADDRTYPE_BROADCAST) ||
(hdr_info.mhi_dsttype == MAC_ADDRTYPE_MULTICAST)) {
if (bcmp(hdr_info.mhi_daddr, xnbp->xnb_mac_addr,