Page MenuHomeFreeBSD

D15040.id.diff
No OneTemporary

D15040.id.diff

Index: head/sys/net/if_ethersubr.c
===================================================================
--- head/sys/net/if_ethersubr.c
+++ head/sys/net/if_ethersubr.c
@@ -1128,10 +1128,13 @@
if (error != 0)
break;
if (ifr->ifr_lan_pcp > 7 &&
- ifr->ifr_lan_pcp != IFNET_PCP_NONE)
+ ifr->ifr_lan_pcp != IFNET_PCP_NONE) {
error = EINVAL;
- else
+ } else {
ifp->if_pcp = ifr->ifr_lan_pcp;
+ /* broadcast event about PCP change */
+ EVENTHANDLER_INVOKE(ifnet_event, ifp, IFNET_EVENT_PCP);
+ }
break;
case SIOCGLANPCP:
Index: head/sys/net/if_var.h
===================================================================
--- head/sys/net/if_var.h
+++ head/sys/net/if_var.h
@@ -421,6 +421,8 @@
/* Interface up/down event */
#define IFNET_EVENT_UP 0
#define IFNET_EVENT_DOWN 1
+#define IFNET_EVENT_PCP 2 /* priority code point, PCP */
+
typedef void (*ifnet_event_fn)(void *, struct ifnet *ifp, int event);
EVENTHANDLER_DECLARE(ifnet_event, ifnet_event_fn);
#endif /* _SYS_EVENTHANDLER_H_ */
Index: head/sys/net/if_vlan.c
===================================================================
--- head/sys/net/if_vlan.c
+++ head/sys/net/if_vlan.c
@@ -1947,6 +1947,8 @@
}
ifv->ifv_pcp = ifr->ifr_vlan_pcp;
vlan_tag_recalculate(ifv);
+ /* broadcast event about PCP change */
+ EVENTHANDLER_INVOKE(ifnet_event, ifp, IFNET_EVENT_PCP);
break;
case SIOCSIFCAP:

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 22, 10:32 PM (3 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30142871
Default Alt Text
D15040.id.diff (1 KB)

Event Timeline