The conditions under which a switch will filter outbound packets on particular ports are fairly well established in many basic training materials, including those for CCNA. However, input discards are typically less well-documented. Some reasons I've found include:
- Mismatched VLANs: http://forums.networkinfrastructure.info/nortel-ethernet-switching/packet-discards/
- Frame did not need to be switched because the MAC was already on that port, or because it is the only port in the VLAN: http://www.cisco.com/c/en/us/support/docs/switches/catalyst-6500-series-switches/12027-53.html
- The SNMP MIBs seem to indicate that buffer space can also be a reason: http://www.net-snmp.org/docs/mibs/interfaces.html#ifInDiscards http://tools.cisco.com/Support/SNMP/do/BrowseOID.do?local=en&translate=Translate&objectInput=1.3.6.1.2.1.2.2.1.13
Are there any other common reasons? How would one decide between these possibilities?