ssp/knockwake: majority of knockwake engine

this commit does NOT include the relevant changes needed.
check later commits for the rest.