""" Display ifconfig-like output for the ifnet
"""
iface = Cast(ifnet, 'ifnet *')
+ dlifnet = Cast(ifnet, 'dlil_ifnet *')
out_string = ""
format_string = "{0: <s}: flags={1: <x} <{2: <s}> index {3: <d} mtu {4: <d}"
if iface :
out_string += format_string.format(iface.if_xname, (iface.if_flags & 0xffff), GetIfFlagsAsString(iface.if_flags), iface.if_index, iface.if_data.ifi_mtu)
out_string += "\n\t(struct ifnet *)" + hex(ifnet)
+ if iface.if_snd.ifcq_len :
+ out_string += "\n\t" + str(iface.if_snd.ifcq_len)
+ if dlifnet.dl_if_inpstorage.rcvq_pkts.qlen :
+ out_string += "\n\t" + str(dlifnet.dl_if_inpstorage.rcvq_pkts.qlen)
print out_string
def GetIfConfiguration(ifname):
print out_string
# EndMacro: rtentry_trash
+# Macro: show_rtentry
+@lldb_command('show_rtentry')
+def ShRtEntry(cmd_args=None):
+ """ Print rtentry.
+ """
+ out_string = ""
+ rt = kern.GetValueFromAddress(cmd_args[0], 'rtentry *')
+ out_string += GetRtEntryPrDetailsAsString(rt) + "\n"
+ print out_string
+# EndMacro: show_rtentry
+
# Macro: inifa_trash
@lldb_command('inifa_trash')
def InIfaTrash(cmd_args=None):
out_string += "timewait "
if (pcb.inp_flags2 & INP2_IN_FCTREE):
out_string += "in_fctree "
- if (pcb.inp_flags2 & INP2_WANT_FLOW_DIVERT):
- out_string += "want_flow_divert "
+ if (pcb.inp_flags2 & INP2_WANT_APP_POLICY):
+ out_string += "want_app_policy "
so = pcb.inp_socket
if (so != 0):
while mp != 0:
snd_buf += 256
if (mp.m_hdr.mh_flags & 0x01):
- snd_buf = mp.M_dat.MH.MH_dat.MH_ext.ext_size
+ snd_buf += mp.M_dat.MH.MH_dat.MH_ext.ext_size
mp = mp.m_hdr.mh_next
rcv_cc += so.so_rcv.sb_cc
mp = so.so_rcv.sb_mb
out_string += GetSourceInformationForAddress(pru.pru_disconnect) + "\n"
out_string += "\t listen:\t"
out_string += GetSourceInformationForAddress(pru.pru_listen) + "\n"
- out_string += "\t peeloff:\t"
- out_string += GetSourceInformationForAddress(pru.pru_peeloff) + "\n"
out_string += "\t peeraddr:\t"
out_string += GetSourceInformationForAddress(pru.pru_peeraddr) + "\n"
out_string += "\t rcvd:\t"